У меня не было проблем с использованием AJAX запросов в моих плагинах Wordpress прежде, но я изо всех сил пытался заставить его работать с Boilerplate Plugin .
Это то, что define_admin_hooks ( ) Метод выглядит так:
private function define_admin_hooks() {
$plugin_admin = new MyPlugin_Admin( $this->get_plugin_name(), $this->get_version() );
// Some other Hooks
$this->loader->add_action( 'wp_ajax_my_action', $plugin_admin, 'my_action');
}
Это вызов ajax:
$.ajax({
type: 'POST',
url: ajaxurl,
dataType: 'json',
data:{ action: 'my_action' },
success:function(res) {
alert(res);
}
});
Каким-то образом метод my_action () - класса MyPlugin_Admin не вызывается, и каждый запрос возвращает 0.
Но когда я определяю простую функцию my_action и регистрирую ловушку с
add_action('wp_ajax_my_action', 'my_action');
вместо
$this->loader->add_action( 'wp_ajax_my_action', $plugin_admin, 'my_action');
, все работает нормально.
Почему метод класса не вызывается?