简体   繁体   中英

Update User Meta with spaces using REST API - WordPress

I'm trying to update the user meta with spaces registered on my website. I am using register_meta hook to register user meta. And for updating users using WordPress REST API I use wp_remote_post but the problem is when I tried to update a user meta with spaces it will add as array in response then it will add as new user meta.

For example the value of user meta is - community test

Sample Response:

[meta] => Array
          (               
          [agent_community] => Array
                            (
                                [0] => community
                                [1] => test
                            )
           )

Sample Code for registering user meta.

register_meta('user', 'agent_community', array(
  "type" => "string",
  "show_in_rest" => true
));

Update using wp_remote_post

$update_data = array('email'=> 'test@mail.com', 'meta[agent_community]' => 'community test');
$args = array(
        'headers' => array(
                    'Authorization' => 'Basic ' . base64_encode( 'username:password' ),
            ),
            'body' => array_filter($update_data));
$update_url = 'https://test-url.com/wp-json/wp/v2/users/17';
$response = wp_remote_post( $update_url, $args);    

Database: 在此处输入图片说明

Is there a way that can merge the array on user meta?

implode() might help you. And you can change spaces with HTML entities. Or use function like urledncode() / urlendecode() or something like this.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM