Продолжение. Часть 1
Используем admin-ajax.php для обработки AJAX запросов
AJAX запросы следует направлять к wp-admin/admin-ajax.php. Слово admin в пути скорее всего немного смущает, но все AJAX запросы с фронт-енда и с админ-панели обрабатывать будет именно admin-ajax.php.
В файл plugin_dir_url( __FILE__ ).’js/ajax.js’ добавляем следующий код:
jQuery('#xxx').click(function(){ // добавляем картинку с прелоадером или надпись загрузка jQuery('#loader').html('загрузка...'); // сам ajax запрос jQuery.get(MyAjax.ajaxurl, { //передаем переменные action : 'test', ID : jQuery(this).attr('data-value-id') },function(data){ // меняем прелоадер полученными данными jQuery('#loader').html(data); }); return false; }); |
В скрипте обязательно передаем параметр action — как идентификатор функции, которую необходимо вызвать.
Остальные параметры, на ваше усмотрение.
В functions.php добавляем следующее:
if(isset($_REQUEST['action']) ) { do_action( 'wp_ajax_nopriv_' . $_REQUEST['action'] ); do_action( 'wp_ajax_' . $_POST['action'] ); }; //для неавторизованных пользователей add_action( 'wp_ajax_nopriv_test', 'my_ajax_guest'); //для админа или пользователей с правами админа add_action( 'wp_ajax_test', 'my_ajax_admin'); function my_ajax_guest() { $id = $_GET['ID']; echo 'Переменная равна - '.$id; // не забываем выйти exit; } function my_ajax_admin() { $id = $_GET['ID']; echo 'Для админа переменная равна - '.$id; // не забываем выйти exit; } |