Intereting Posts
Как добавить контент в конец страницы с помощью крючка? Ajax-вызов возвращает 0, когда add_action находится внутри класса в functions.php Темы для детей: отключение родителя Как запустить функцию на странице параметров плагина? Скрытие страницы по названию из раздела «Редактирование» Почему «Settings-> Permalinks» создает файл .htaccess на сервере nginx? Как использовать Ajax для создания раскрывающегося списка настраиваемых полей на основе публикации, выбранной в предыдущем раскрывающемся списке? Как я могу рандомизировать слайд-шоу Nextgen Gallery Шаблон WordPress в iFrame Изменение WP-LOGIN и WP-SIGNUP для любого запроса Escape WP_Query tax_query, когда термин имеет специальный символ (ы) Добавлено 20 пользовательских полей. Только 10 показов в раскрывающемся списке Показать пользовательское поле на странице вложений? Тема WordPress MultiSite Есть ли проблема, если я использую get_template_part как это?

AJAX вызов внутри класса плагина не запускается

Я прочитал другие вопросы, касающиеся одной и той же проблемы, но ничего не помогает в моем случае. Может быть, кто-то видит в моем коде что-то, чего я не вижу?

Я создал плагин с классом, затем у меня есть вызов AJAX, который срабатывает, когда я нажимаю на элемент HTML на странице. Кажется, что все работает, за исключением того, что он не вводит обратный вызов внутри плагина.

plugin.php

class BSPFPluginClass { protected $nonce = 'mynonce'; public function __construct() { /** other actions here ... */ add_action( 'wp_enqueue_scripts', array( $this, 'myinit' ) ); add_action( 'wp_ajax_myajaxcall', array( $this, 'myajaxcall' ) ); // executed when logged in add_action( 'wp_ajax_nopriv_myajaxcall', array( $this, 'bspf_ajax_voting' ) ); // executed when logged out } public function myinit() { // Register the script wp_register_script( 'plugin-js', plugins_url( 'js/plugin.js', __FILE__ ), array() ); if (is_page('somepage')) { // Enqueued script with localized data. wp_enqueue_script( 'plugin-js' ); // Localize the script with new data wp_localize_script( 'plugin-js', 'plugin_ajax', [ 'ajax_url' => plugins_url( 'plugin.php', __FILE__ ), 'nonce' => wp_create_nonce( $this->nonce ), ]); } } public function myajaxcall() { check_ajax_referer( $this->nonce ); if (true) { echo 'Yes it works!'; } else { echo 'No it does not work!'; } wp_die(); // stop executing script } } 

Затем js / plugin.js

 jQuery(document).ready(function($) { $(".myclass").click(function() { $.post(plugin_ajax.ajax_url, { _ajax_nonce: plugin_ajax.nonce, action: 'myajaxcall' }, function(response) { console.log('SUCCESS: '+response); }).done(function() { console.log('DONE'); }).fail(function() { console.log('ERROR'); }).always(function() { console.log('ALWAYS'); }); }); }); 

Когда я ударяю элемент HTML с помощью класса триггера, все идет хорошо, и я получаю следующее на консоли:

 УСПЕХ: 
 СДЕЛАННЫЙ
 ВСЕГДА

Это похоже на то, что все правильно, за исключением того, что не входит в действие «myajaxcall».

Любые вести?

Заранее спасибо.

Solutions Collecting From Web of "AJAX вызов внутри класса плагина не запускается"