На сайте разрешены стандартные средства.
Если вы отобразите <? Php echo get_current_user_id ()?>
На странице будет выведен авторизованный пользователь (id)
Но если через AJAX
:
$.ajax({
url: url,
method: 'POST',
processData: false,
data : $formInfo.serialize(),
cache: true,
xhrFields: {
withCredentials: true
},
То, что с сервера возвращает 0, т.е. не авторизовано.Я попытался включить отправку файлов cookie, withCredentials: true
, но это не сработало.Как правильно отправить AJAX-запрос от авторизованного клиента
На сервере я создал свой собственный плагин для приема AJAX-запросов.Уже и авторизация, и регистрация работают.
register_rest_route('wc/v2', 'users/set-info', array(
'methods' => 'POST',
'callback' => 'pl_user_endpoint_set_info',
));
function pl_user_endpoint_set_info($request = null) {
$response = array();
$parameters = $request->get_body_params();
$response['response'] = $parameters;
$response['message'] = get_current_user_id();
$response['cookie'] = $_COOKIE;// for test cookie
return new WP_REST_Response($response, 200);
}
Плагин зарегистрирован на действие rest_api_init
add_action('rest_api_init', 'pl_wp_rest_endpoints');
Код отправляется клиенту из формы, но пока параметры не обработаныСначала я узнаю, как это сделать, чтобы сервер понимал, что клиент авторизован.
Ответ от сервера:
введите описание изображения здесь