Я хочу отобразить зарегистрированный в WordPress идентификатор пользователя и адрес электронной почты на другом веб-сайте, поэтому я использую WordPressjson-api
Плагин для создания API, но он не работает.
Когда я нажимаю на прямую ссылку, она отображает данные в виде:
"{\"id\":1,\"email\":\"[email protected]\"}"
Но когда я использую json_decode
и распечатать данные, он отображает:
string(22) "{"id":0,"email":false}"
API-код
public function get_loggedin_user_details() {
global $user;
global $wpdb, $json_api;
$current_user = wp_get_current_user();
$myObj->id = $current_user->ID;
$myObj->email = $current_user->user_email;
$logedin_userid = json_encode($myObj);
return $logedin_userid;
}
Вы не аутентифицируете свой запрос, поэтому запрос не регистрируется, в результате ID 0 и отсутствие адреса электронной почты.
WP rest api предоставляет метод проверки подлинности cookie, но есть также плагины, о которых вы можете прочитать здесь:
https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/
Я собираюсь указать на то, что, возможно, было просто упущено.
Ваше начальное значение экранировано … «{\» id \ «: 1, \» email \ «: \» [email protected] \ «}» и имеет кавычки снаружи. Это не правильная строка JSON.
Должно быть: {«id»: 1, «email»: «[email protected]»}
Вот процесс, чтобы получить зарегистрированный идентификатор пользователя на WP:
передать маркер входа, который вы получаете от плагина к
маршрут, который вы создали как Заголовок: Авторизация
создайте свой собственный маршрут Rest-API следующим образом:
add_action( 'rest_api_init', function () {
register_rest_route( 'your_custom_route/v2', '/(?P<slug>[a-zA-Z0-9-]+)', array(
'methods' => 'POST',
'callback' => 'rest_api_custom_func',
) );
} );
function rest_api_custom_func(){
global $user;
global $wpdb;
$current_user = wp_get_current_user();
$myObj->id = $current_user->ID;
$myObj->email = $current_user->user_email;
$logedin_userid = json_encode($myObj);
return $logedin_userid; }
написать свою собственную функцию в качестве функции обратного вызова на маршруте rest-api
:rest_api_custom_func
вы можете делать все, что вы хотите с вашей пользовательской функцией обратного вызова
примечание: нет необходимости в каком-либо другом плагине, используйте встроенный WordPress Rest API