Вызов функции php из js в плагине WordPress - PullRequest
0 голосов
/ 16 марта 2020

Я пытаюсь передать некоторые данные из js в PHP функцию в плагине WordPress, который я сейчас разрабатываю, но я не уверен, так ли это. По сути, я хочу добиться следующего:

  1. Отправить сообщение или получить через js при нажатии кнопки.
  2. В PHP, если это сообщение / получить имеет нет ошибки, вызовите функцию. и показать ответное сообщение «ОК».
  3. Имеется ошибка. Показать ответное сообщение «ошибка».

Как это работает сейчас, так это то, что он всегда возвращает 0, а я не знаю, как правильно получить доступ к ответу. Может ли кто-нибудь помочь мне здесь? Все это происходит в области wp-admin, если это имеет значение. Ниже приведен код.

функций. php:

add_action('wp_ajax_post_type_search_callback', 'my_callback');

function my_callback() {
  $data= $_POST['variable'];

  $output= 'i was returned with ajax';
  //need to echo output and exit here ?
  echo $output;
  exit();
}

JS:

$('#import_posts').on('click', function(e) {
  $.ajax({
    type: "POST",
    url: "/wp-admin/admin-ajax.php",
    data: {
      action: 'my_callback',
      variable: 45
    },
    success: function (output) {
     $('.response').html(output);
    }
  });
});

HTML:

  <button id="import_posts" class="button button-primary button-large">Submit</button>
  <div class="response">
    response
  </div>

1 Ответ

0 голосов
/ 16 марта 2020

Надеюсь, это сработает для вас.

Вы передаете действие в JS файле "my_callback", но в PHP файле такое действие недоступно. Вам необходимо изменить эту строку.

add_action('wp_ajax_search_callback', array($this, 'my_action_post_type_search_callback'));

Также, если возможно, передайте Dynami c путь к файлу admin- ajax. php, чтобы вы могли использовать этот файл со страницы любого сайта. Текущая интеграция будет работать только для домашней страницы. Вы можете получить путь администратора- ajax. php через функцию wp по умолчанию, которая называется <?php echo admin_url('admin-ajax.php'); ?>

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