Как получить текущего зарегистрированного пользователя из WordPress через пользовательские конечные точки? - PullRequest
0 голосов
/ 22 января 2019

У меня есть конечная точка в моем плагине WordPress, и я его использую. Я хочу получить пользователя, который в настоящее время вошел в WordPress. Моя конечная точка выглядит так:

add_action( 'rest_api_init', function () {
register_rest_route( 't2mchat/v2', '/get_curr_user', array(
    'methods' => 'GET',
    'callback' => 'get_curr_user'
    ));
});

Функция обратного вызова:

function get_curr_user(WP_REST_Request $request){    
  $user = wp_get_current_user();
  return $user;
}

Это возвращает мне идентификатор пользователя как 0.

Я прочитал статью на официальном сайте WordPress о Аутентификация и узнал, что мне нужно пройти nonces, но, поскольку я новичок в этом, я не мог понять все, что там написано.

Кроме того, я называю эту конечную точку в своем приложении React следующим образом:

loadData() {
return fetch(`/wordpress/wp-json/t2mchat/v2/get_curr_user`)
  .then(response => response.json())
  .then(responseJson => {
    this.setState({ curr_user: responseJson });
    //console.log(this.state.curr_user, "curr user role");
  })
  .catch(error => {
    console.error(error);
  });
}

Я не уверен, как передать nonces в запросе, чтобы я мог получить зарегистрированного пользователя.

Может кто-нибудь с опытом / идеей предложить, какие изменения мне нужно внести в мой код?

Пример будет высоко оценен.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 12 апреля 2019

Я использовал хранилище сеансов для хранения пользовательских данных, когда WordPress инициализируется и извлекается из моей конечной точки.У меня это сработало.

0 голосов
/ 22 января 2019

в вашем PHP-файле включает wp-load.php

include_once("wp-load.php");

, тогда вы можете получить доступ ко всем собственным функциям Wordpress, просто вызвав их.Таким образом, вы должны иметь возможность получить текущего зарегистрированного пользователя с помощью wp_get_current_user ();

...