WordPress $ _POST пуст в запросе admin-post.php - PullRequest
0 голосов
/ 30 августа 2018

Я использую /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 в какой-то момент, прежде чем они перейдут к действию администратора-поста. Есть идеи?

1 Ответ

0 голосов
/ 30 августа 2018

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...