Last active
April 18, 2020 19:13
-
-
Save scottopolis/52d00e2095d1e959d2ef to your computer and use it in GitHub Desktop.
Add user meta to the WP-API
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/* Adds all user meta to the /wp-json/wp/v2/user/[id] endpoint */ | |
function sb_user_meta( $data, $field_name, $request ) { | |
if( $data['id'] ){ | |
$user_meta = get_user_meta( $data['id'] ); | |
} | |
if ( !$user_meta ) { | |
return new WP_Error( 'No user meta found', 'No user meta found', array( 'status' => 404 ) ); | |
} | |
foreach ($user_meta as $key => $value) { | |
$data[$key] = $value; | |
} | |
return $data; | |
} | |
add_action( 'rest_api_init', function () { | |
register_api_field( 'user', | |
'meta', | |
array( | |
'get_callback' => 'sb_user_meta', | |
'update_callback' => null, // add callback here for POST/PUT requests to update user meta | |
'schema' => null, | |
) | |
); | |
} ); |
How will I update the user meta?
@Wohlfath great ! Could you provide your functions.php please ?
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Works great thanks @scottopolis . I added it in the functions.php file as is and testing GET /wp-json/wp/v2/users/2 in Postman returns all the meta fields.