wordpress wp_get_current_user данные не отображаются в jason-api

Я хочу отобразить зарегистрированный в 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;
}

3

Решение

Вы не аутентифицируете свой запрос, поэтому запрос не регистрируется, в результате ID 0 и отсутствие адреса электронной почты.

WP rest api предоставляет метод проверки подлинности cookie, но есть также плагины, о которых вы можете прочитать здесь:

https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/

0

Другие решения

Я собираюсь указать на то, что, возможно, было просто упущено.

Ваше начальное значение экранировано … «{\» id \ «: 1, \» email \ «: \» [email protected] \ «}» и имеет кавычки снаружи. Это не правильная строка JSON.

Должно быть: {«id»: 1, «email»: «[email protected]»}

0

Вот процесс, чтобы получить зарегистрированный идентификатор пользователя на WP:

  1. устанавливать Аутентификация JWT для WP REST API плагин для аутентификации rest-API (читать описание плагина)
    введите описание изображения здесь
  2. передать маркер входа, который вы получаете от плагина к
    маршрут, который вы создали как Заголовок: Авторизация
    введите описание изображения здесь

  3. создайте свой собственный маршрут 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;     }
    
  4. написать свою собственную функцию в качестве функции обратного вызова на маршруте rest-api
    :rest_api_custom_func

  5. вы можете делать все, что вы хотите с вашей пользовательской функцией обратного вызова

примечание: нет необходимости в каком-либо другом плагине, используйте встроенный WordPress Rest API

0
По вопросам рекламы [email protected]