Create a new user using WP REST API and declare meta object

Just found the solution in another question of Stack Overflow. Using the function register_meta():

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

Now I can make a request using:

{
    "username" : "johndoe",
    "email": "[email protected]",
    "password": "qwerty",
    "meta": {
        "icq": "11223344"
    }

}

And the response are:

{
    "id": 49,
    "username": "johndoe",
    "name": "johndoe",
    "first_name": "",
    "last_name": "",
    "email": "[email protected]",
    "url": "",
    "description": "",
    "link": "http://localhost/author/johndoe/",
    "locale": "en_US",
    "nickname": "johndoe",
    "slug": "johndoe",
    "roles": [
        "subscriber"
    ],
    "registered_date": "2018-01-13T11:53:57+00:00",
    "capabilities": {
        "read": true,
        "level_0": true,
        "subscriber": true
    },
    "extra_capabilities": {
        "subscriber": true
    },
    "avatar_urls": {
        "24": "http://2.gravatar.com/avatar/29a1df4646cb3417c19994a59a3e022a?s=24&d=mm&r=g",
        "48": "http://2.gravatar.com/avatar/29a1df4646cb3417c19994a59a3e022a?s=48&d=mm&r=g",
        "96": "http://2.gravatar.com/avatar/29a1df4646cb3417c19994a59a3e022a?s=96&d=mm&r=g"
    },
    "meta": {
        "icq": [
            "11223344"
        ]
    },
    "_links": {
        "self": [
            {
                "href": "http://localhost/wp-json/wp/v2/users/49"
            }
        ],
        "collection": [
            {
                "href": "http://localhost/wp-json/wp/v2/users"
            }
        ]
    }
}

And if I want to show/edit in /wp-admin/ I just use this function too:

function more_contactmethods( $contactmethods ) {
    $contactmethods['icq'] = 'ICQ';
    return $contactmethods;
}

add_filter( 'user_contactmethods', 'more_contactmethods' );

Leave a Comment