Warning: Undefined variable $ver in /var/www/u3186481/data/www/odminstudios.ru/wp-content/themes/sensitive/functions.php on line 257

Warning: Undefined variable $ver in /var/www/u3186481/data/www/odminstudios.ru/wp-content/themes/sensitive/functions.php on line 258
AJAX в WordPress. Часть 2. | Odminstudios

AJAX в WordPress. Часть 2.

Ajax Wordpress
Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /var/www/u3186481/data/www/odminstudios.ru/wp-content/plugins/wp-syntax/wp-syntax.php on line 383

Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /var/www/u3186481/data/www/odminstudios.ru/wp-content/plugins/wp-syntax/wp-syntax.php on line 383

Продолжение. Часть 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;
}
Метки: ,
Автор: dimas