1

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": "[email protected]",
    "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.

1 Answer 1

1

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' );
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.