Intereting Posts
Сценарий не будет печатать на голове, если правильный путь к файлу Как проверить конкретный контент в комментариях в цикле WordPress Ajax Login без перезагрузки страницы Переименование «Развернуть детали» в «Добавить медиа» Лучший способ разделить объекты символов (% 20 и т. Д.) Правило перезаписи работает только с префиксом перед первым совпадением Все сайты подпапок в сети WordPress перенаправляются на главный сайт Простой пользовательский почтовый запрос для всех сообщений, или многие из них не работают Можно ли разделить меню WordPress на разные div? wp_enqueue и зависимости Как передать пользовательские заголовки подкачки? Показать идентификатор категории в пользовательском типе сообщения Как изменить размер изображения в WordPress из бэкэнда? Похоже на ошибку в wordpress Пользовательская разбивка на страницы плагин не подключается к моему пользовательскому подключению

Плагин WordPress: admin-ajax.php не передает данные в пользовательскую функцию

n этот базовый скелет плагина, я пытаюсь получить данные, посланные ajax, в wordpress admin-ajax.php для обработки пользовательской функцией.

Похоже, что данные, отправленные из формы, не достигают моей функции ea_ajax_handler (). Кажется, он приходит в admin-ajax.php (данные формы собираются jQuery, затем я получаю ответ 200 для пост-запроса admin-ajax.php), но похоже, что он не перенаправлен на ea_ajax_handler ().

Вот мои файлы:

easyA.php:

/** Enqueue scripts */ add_action('wp_enqueue_scripts', 'ea_scripts'); function ea_scripts() { wp_enqueue_script('jquery'); // easyA script in the footer wp_register_script('easyA', plugins_url('js/easyA.js', __FILE__), array('jquery'), '', true); wp_enqueue_script('easyA'); // wondering if it's really needed or if the previous line is enough... wp_localize_script('easyA', 'easyAVars', array('ajaxUrl' => admin_url('admin-ajax.php'))); } /** Shortcode to display form in pages / posts */ add_shortcode('easyA','ea_display_form'); function ea_display_form() { echo ' <form id="eaForm"> <input type="text" name="username" /> <input type="submit" value="Submit" /> </form> '; } /** Event handling */ add_action('wp_ajax_ea_ajax_handler', 'ea_ajax_handler'); add_action('wp_ajax_nopriv_ea_ajax_handler', 'ea_ajax_handler'); function ea_ajax_handler() { $json = array( 'success' => false, 'result' => 0 ); if (isset($_POST['username'])) { $result = 'Hi, ' . $_POST['username'] . '!'; $json['success'] = true; $json['result'] = $result; } echo json_encode($json); wp_die(); } 

easyA.js:

 jQuery(document).ready(function($) { $('#eaForm').on('submit', function() { var that = $(this), contents = that.serialize(); console.log('contents: ' + contents); // debugging jQuery.ajax({ url: easyAVars.ajaxUrl, dataType: 'json', type: 'post', data: contents, action: 'ea_ajax_handler', // function in easyA.php that will be triggered success: function(data) { console.log(data); } }); return false; }); });