Git Product home page Git Product logo

acf-to-rest-api-example's People

Contributors

airesvsg avatar e-vance avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

acf-to-rest-api-example's Issues

Can't add new repeater field

Hi,

First of all, I'd like to say thanks for this really great plugin, have been using it a lot lately! :)

I have an issue though, trying to add a new field to a repeater vith angulajs: http://prntscr.com/h3uoy6
Here I have a few fields added already to the repeater: http://dev.imok.biz/mikulas/wp-json/acf/v3/pages/5/mikulas

Would like to add more, like so:
$http({ method: 'POST', url: CONFIG.site_url + 'wp-json/acf/v3/pages/5/', data: dataa, headers: { Accept: "application/json", Authorization: 'Bearer ' + user.token } }).then(function (response) { console.log('created ', response); }, function (error) { console.log('error udpated ', error); });

For the dataa I have tried:
var dataa = form.mikulas: { user: 'na', email: '[email protected]' }
or just simply
var dataa = { user: 'na', email: '[email protected]' }

Also tried to change the URL to ... pages/5/mikulas

Whatever I do, I get this response (the login process is OK, I can create new POSTs, etc):
code: "cant_update_item"
status: 500
statusText: "Internal Server Error"

Thanks a bunch!

Problem with posting date with jquary date- piker .

Hello.
I explain the problem better . I created a custom field with a repeater inside a date- picker field ..

<?php
$f_r1a = get_field_object( 'field_xxxxx', $u_id );
$f_r1 = get_field( 'field_xxxxxx', $u_id );
if ( ! $f_r1 ):
    $f_r1 = array(
        'nome' => "",
        'cognome' => "",
        'sesso' => "",
        'relazione' => "",
        'carico' => "",
        'd_nascita' => "",
    );
endif; ?>

       <div class="repeater">
       <?php foreach ( $f_r1 as $k => $v ) : ?>
         <div class="item">
            <div class="form-group">
            <div class="col-md-2">
            <input type="text" name="fields[<?php echo $f_r1a['name']; ?>][<?php echo absint( $k ); ?>][nome]" class="form-control" value="<?php echo esc_attr( $v['nome'] ); ?>">
            </div>
            <div class="col-md-2">
            <input type="text" name="fields[<?php echo $f_r1a['name']; ?>][<?php echo absint( $k ); ?>][cognome]" class="form-control" value="<?php echo esc_attr( $v['cognome'] ); ?>">
            </div>
            <div class="col-md-2">
                <select class="form-control input-sm" name="fields[<?php echo $f_r1a['name']; ?>][<?php echo absint( $k ); ?>][sesso]">
                        <option value="m" <?php selected( $v['sesso'], 'M' ); ?>>Maschio</option>
                        <option value="f" <?php selected( $v['sesso'], 'F' ); ?>>Femmina</option>
                </select>
            </div>
            <div class="col-md-2">
                <select class="form-control input-sm" name="fields[<?php echo $f_r1a['name']; ?>][<?php echo absint( $k ); ?>][relazione]">
                        <option value="Capofamiglia" <?php selected( $v['relazione'], 'Capofamiglia' ); ?>>Capofamiglia</option>
                        <option value="Coniuge" <?php selected( $v['relazione'], 'Coniuge' ); ?>>Coniuge</option>
                        <option value="Figlio/a" <?php selected( $v['relazione'], 'Figlio/a' ); ?>>Figlio/a</option>
                        <option value="Altro Convinente" <?php selected( $v['relazione'], 'Altro Convinente' ); ?>>Altro Convinente</option>
                </select>
            </div>
            <div class="col-md-2">
                <select class="form-control input-sm" name="fields[<?php echo $f_r1a['name']; ?>][<?php echo absint( $k ); ?>][carico]">
                        <option value="si" <?php selected( $v['carico'], 'Si' ); ?>>Si</option>
                        <option value="no" <?php selected( $v['carico'], 'No' ); ?>>No</option>
                </select>
            </div>
            <div class="col-md-2">
                                <input type="text" name="fields[<?php echo $f_r1a['name']; ?>][<?php echo absint( $k ); ?>][d_nascita]" value="<?php echo esc_attr( $v['d_nascita'] ); ?>" class="form-control datepicker" id="acf-date-picker">
            </div>
                <button type="button" class="btn btn-danger remove-row" style="float: right; z-index: 1000; position: absolute;"><i class="fa fa-times" aria-hidden="true"></i></button>
                <div class="clearfix"></div>
                <hr>
            </div>
         </div>
       <?php endforeach; ?>
        <button type="button" class="btn btn-primary add-row">Aggiungi Componente</button>
       </div>
</div>
if ( $.isFunction( $( '.datepicker' ).datepicker ) ) {
    $( '.datepicker' ).datepicker( {
        format: 'dd/mm/yyyy',
        autoclose: true
    } );        
}

The problem is that when I go to update data from frontend date is sent in dd / mm / yyyy format and not as it should be yyyymmdd for aggioranre the acf date fields .

Returning "cant_update_item" error when editing Media field

I'm trying to update a media ACF field. I know that I'm properly authenticated because I'm able to update post fields in my other ajax calls. For some reason, I cannot get my media field to update. I continue to get the 500 Internal Server error with a response of cant_update_item.

Here is my call:

var data = {
   "fields": {
        name: value,
      },
};

var url = document.location.origin + '/wp-json/acf/v2/media/' + mediaId + '/' + name;

return $.ajax({
            method: 'PUT',
            data: data,
            dataType: 'json',
            url: url,
            beforeSend: function(xhr) { xhr.setRequestHeader('X-WP-Nonce', WP_API_Settings.nonce);},
});

I'm using ACF to REST API version 2.2.1 and ACF PRO version 5.5.9.

Any thoughts?

Add more data without deleting old one

Hello, love you plugin, great job! I have one question - how can I add more rows to repeater field without having to delete old ones. In your demo file now what happends is that you first take the data from db, push to this data array new values and send to API updated array. Is there i way just to add data without sendig huge array each time? Thank you!

Missing example with POST/CREATE new cpt

The example only shows PUT how to modify an exiting element.
The line
<form action="<?php echo esc_url( $url ); ?>" method="<?php echo $edit ? 'PUT' : 'POST'; ?>">
I modified the $edit variable to false (POST).
It does not seem to work.

acf is false when data is imported into wordpress

This is kind of a strange occurrence. I have a custom post type in Wordpress that has a group of custom fields associated to it.

I have a custom importer that I made that utilized wp_insert_post() function to insert values from a web service (json) into the custom post type.

When I run the importer, ACF is storing the data in a certain but it does seem that all connections are there. When I go into the wp-admin, edit my custom post type, i see all of the data listed there when i edit a post.

When I look at the REST API endpoint the value "{acf: false}" is displayed so I can't get the values from the ACF fields. This contunues to happen after I export the database and import it into another system, like my localdev environment. So it seems moving the database can re-create the issue.

One way to fix the issue is to go run through and resave every post. There are thousands of entries so we can't keep doing that.

Do you have any ideas what might be causing this?

Help With Post Data

WP version: 4.9.8
ACF version: 5.7.2

Could someone, please, help me?
I've tried for days update custom fields but I'm getting the following error:

Console Log:

jquery.js:9600 POST http://vendedor-confiavel.local/wp-json/acf/v3/vendedor/128 500 (Internal Server Error)
send @ jquery.js:9600
ajax @ jquery.js:9206
updateProfile @ LoginScreenForm.js:51
dispatch @ jquery.js:5183
elemData.handle @ jquery.js:4991

I've also installed the Basic Auth plugin.

If I replace the url with http://vendedor-confiavel.local/wp-json/wp/v2/vendedor/128 only the title is updated, not the field "whatsapp".

Console Log:

http://vendedor-confiavel.local/wp-json/wp/v2/vendedor/128
LoginScreenForm.js:61 {id: 128, date: "2018-08-24T01:28:09", date_gmt: "2018-08-24T01:28:09", guid: {…}, modified: "2018-08-28T15:32:15", …}acf: facebook: nullwhatsapp: null__proto__: Objectcontent: {raw: "", rendered: "", protected: false}date: "2018-08-24T01:28:09"date_gmt: "2018-08-24T01:28:09"guid: {rendered: "http://vendedor-confiavel.local/vendedor/128/", raw: "http://vendedor-confiavel.local/vendedor/128/"}id: 128link: "http://vendedor-confiavel.local/vendedor/128/"modified: "2018-08-28T15:32:15"modified_gmt: "2018-08-28T15:32:15"password: ""slug: "128"status: "publish"template: ""title: {raw: "Alex Silva", rendered: "Alex Silva"}type: "vendedor"_links: {self: Array(1), collection: Array(1), about: Array(1), wp:attachment: Array(1), wp:action-publish: Array(1), …}proto: Object
LoginScreenForm.js:62 Updated

Code:

my.js

class LoginScreenForm{
constructor(){
this.events();
}

events(){
	$(".save-button").on("click", this.updateProfile);
}

    updateProfile(e){
	var thisProfile = $(e.target);

	var ourUpdatedPost = {
		"title" : "Alex Silva",
		"acf" : {
			"whatsapp" : "12988998591"
		}
	};
	var myUrl =  vcData.root_url + '/wp-json/acf/v3/vendedor/' + thisProfile.data('id');
	console.log(myUrl);
	$.ajax({
		beforeSend: (xhr) => {
			xhr.setRequestHeader('X-WP-Nonce', vcData.nonce);
		},
		url: myUrl 	,
		type: 'POST',
		data: ourUpdatedPost,
		success: (response) => {
			console.log(response);
			console.log("Updated");
		},
		error: (response) => {
			console.log(response);
			console.log("Error");
		}
	});

}

}

functions.php
// Enable the option show in rest
add_filter( 'acf/rest_api/field_settings/show_in_rest', '__return_true' );

// Enable the option edit in rest
add_filter( 'acf/rest_api/field_settings/edit_in_rest', '__return_true' );

add_filter( 'acf/rest_api/item_permissions/get', function( $permission ) {
return current_user_can( 'edit_posts' );
} );

add_filter( 'acf/location/rule_match/options_page', function(){
return true;
} );

add_filter( 'acf/rest_api/option/prepare_item', function( $item ){
if ( isset( $item['id'] ) ) {
$item['id'] = 'options';
}

return $item;

});

Leading underscore at _checked-function?

Hey! This is not an issue, but a question out of interest:

You defined the function _checked() in functions.php and use it multiple times in index.php.
But sometimes you use it with leading underscore and sometimes without.

I didn't even know you could do that and wanted to ask why you did it! :)

First thing I found was this stackoverflow-discussion where they said it's for private methods and shouldn't be used...

Don't want to discuss here - just interested in why you used it and why once with and once without the underscore! :)

Can't update user custom field

Hello tried using the same user (id = 4) and also an Admin

using end point
POST or PUT
/wp-json/acf/v2/user/4
payload sended (ragione is the custom field associated to the user):

 fields: {
        ragione: "pippo" 
      }

I'm sending also the nonce

I always got this error
(it works good updating post acf fields)

{
code: "rest_forbidden",
data : { 
 status: 403
},
message: "You don't have permission to do this."
}

thank you very much!

Solution: display in RTL

Just add the following to style.css to have RTL support:

<style>
.rtl .nav{padding-right:0;}
.rtl .nav-tabs>li {
    float: right;
}
.rtl .radio-inline input[type="radio"],
.rtl .checkbox-inline input[type="checkbox"] {
    margin: 4px -20px 0 0;
}
.rtl .checkbox-inline+.checkbox-inline {
    margin-right: 10px;
}
.rtl .input-group { direction:ltr; }
</style>

and on line #39 use pull-left
<ul class="nav nav-pills pull-left">

PUT request not working using Oauth2 and acf Pro

Hello ,I'm having problems using PUT methods to update the option fields , my function is like below :
image

I'm getting this error:
[code] => cant_update_item
[message] => Cannot update item
[data] => stdClass Object
(
[status] => 500
)

I used GET Method and everything is OK , All other API call are all right .
Regards.

Theme options is now in all post types pages.

This spinet

add_filter( 'acf/location/rule_match/options_page', function(){
    return true;
} );

add_filter( 'acf/rest_api/option/prepare_item', function( $item ){
    if ( isset( $item['id'] ) ) {
        $item['id'] = 'options';
    }

    return $item;
});

is adding the theme options in all pages . How to fix it please .

I have add a coment in this issues
PUT request not working using Oauth2 and acf Pro

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.