Как добавлять ajax-обработчик в классе?
Через функции ajax добавляется примерно так:
function ajax_handler(){
echo 'ok';
exit;
}
add_action('wp_ajax_ajax_handler', 'ajax_handler');
add_action('wp_ajax_nopriv_ajax_handler', 'ajax_handler');
а как добавить этот код внутри класса?
т.е. к какому событию прикреплять, или в конструкторе прикрепить ajax_handler ?
Событие должно срабатывать в админке, кликнув по определённой кнопке.
Обработчик для кнопки сделал через javascript, а как теперь привязать ajax_handler к классу?
Ответы (1 шт):
Автор решения: WP Punk
→ Ссылка
У callback тип callable подробнее можно почитать тут https://www.php.net/manual/ru/language.types.callable.php.
Пример с объектом:
$krya = new Krya();
add_action('wp_ajax_ajax_handler', [ $krya, 'ajax_handler'] );
add_action('wp_ajax_nopriv_ajax_handler', [ $krya, 'ajax_handler' ] );
class Krya {
public function ajax_callback() {
echo 'ok';
exit;
}
}
Пример со статическим методом:
add_action('wp_ajax_ajax_handler', [ 'Krya', 'ajax_handler'] );
add_action('wp_ajax_nopriv_ajax_handler', [ 'Krya', 'ajax_handler' ] );
class Krya {
public static function ajax_callback() {
echo 'ok';
exit;
}
}