I'm struggling here with a question. I'm sending a POST
to http://localhost/wp-json/v2/wp/users/
with this JSON
data:
{
"username" : "johndoe",
"email": "jondoe@gmail.com",
"password": "qwerty",
"meta": {
"icq": "11223344"
}
}
But when I go to see the result, the meta
object is blank. I accomplished the goal using a plug-in, but this plug-in authenticates with cookie
and I have another plug-in who uses JWT
to authenticate, so I think is to much plug-ins to one single task.
Someone have the same problem? Not even in official docs from the plug-in I found a solution.
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": "jondoe@gmail.com",
"password": "qwerty",
"meta": {
"icq": "11223344"
}
}
And the response are:
{
"id": 49,
"username": "johndoe",
"name": "johndoe",
"first_name": "",
"last_name": "",
"email": "johndoe@gmail.com",
"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' );