Intereting Posts
Удалить теги из wordpress head Сортировка комбинаций нескольких запросов и переработка URL-адресов Получать сообщения, запрашивая таксономию и определенные термины таксономии? Вопрос о файле robots.txt на сайте WordPress предложение плагина для штрих-кода Как добавить php в jquery Пользовательские мета-ящики: несколько полей в повторяемом поле Вставка данных в MagicFields с использованием запросов mysql Сравните the_excerpt () с the_content () Фильтр поиска и сортировка по пользовательскому типу сообщения Infinite-Scroll Plugin и Jetpack Infinite Scroll Plugin – добавление в тему «Мысли» («ABSPATH») false после сообщения AJAX в другой PHP-файл Ищете способ включить / вставить текст из файла на странице, чтобы обработать короткие коды Проблемы с перемещением моего сайта WordPress на другой домен / сервер Как запретить WordPress автоматически применять встроенные стили для отправки изображений?

Использование AJAX с формами

Я пытаюсь проверить и отправить форму с помощью AJAX в WordPress, однако ответ, который я получаю, равен 0. Согласно коду , это, похоже, указывает на то, что admin-ajax не может найти функции, которые я определил.

Что я делаю не так?

Код (упрощен для демонстрационных целей)

<script type="text/javascript"> jQuery(function() { jQuery(document).on('click', '#test-button', function() { var name = jQuery("#name").val(); var AdminAJAX = <?php echo json_encode(admin_url('admin-ajax.php')); ?>; var ajaxparams = { action: 'jp_ajax_request', name: name }; jQuery.post( AdminAJAX, ajaxparams, function( response ) { alert(response); }); } } </script> <?php add_action( 'wp_ajax_jp_ajax_request', 'jp_ajax_process'); add_action( 'wp_ajax_nopriv_jp_ajax_request', 'jp_ajax_process'); function jp_ajax_process() { echo 'ajax response'; die(); } ?> <form action=""> <input type="text" id="name"> <button id="test-button">Submit</button> </form> 

Solutions Collecting From Web of "Использование AJAX с формами"

Ваши вызовы add_action() для обработчиков AJAX слишком поздние.

Добавьте эти крючки раньше, лучшее действие, вероятно, будет wp_loaded :

 add_action( 'wp_loaded', 'register_ajax_handlers' ); function register_ajax_handlers() { add_action( 'wp_ajax_jp_ajax_request', 'jp_ajax_process'); add_action( 'wp_ajax_nopriv_jp_ajax_request', 'jp_ajax_process'); } 

См. Также: Отладка AJAX .

Этот код должен быть размещен в плагине или в functions.php вашей functions.php .