WordPress $ _POST пуст в запросе admin-post.php

я использую /wp-admin/admin-post.php в качестве конечной точки для получения ajax-запросов от моего приложения Angular. Вот настройка для регистрации конечной точки в моем плагине WordPress:

function _admin_post_myaction() {
// Just to see what's there
wp_send_json( array(
'$_POST' => $_POST,
'$_GET' => $_GET,
'$_REQUEST' => $_REQUEST
) );
}
add_action( 'admin_post_myaction', '_admin_post_myaction' );
add_action( 'admin_post_nopriv_myaction', '_admin_post_myaction' );

В Angular я отправляю запрос сообщений с использованием HttpClient:

this.http
.post(this.config.adminURL + '?action=order_ingredients', {
action: 'order_ingredients',
data: this.data
})
.subscribe({
next: value => {
console.log('Next', value);
},
error: err => {
console.error('Error', err);
},
complete: () => {
console.log('Complete');
}
});

Я получаю следующий результат:

{action: "myaction", $_POST: [], $_REQUEST: {action: "myaction"}

Похоже, что данные POST стираются WordPress в какой-то момент, прежде чем они перейдут к действию администратора после публикации. Есть идеи?

0

Решение

Вам нужно получить содержимое запроса и json декодировать его, используя что-то вроде:

$data = json_decode(file_get_contents('php://input'));

0

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

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector