Функция нужна для валидации одноразовых чисел (nonces) в AJAX-запросах.
check_ajax_referer( $action = -1, $query_arg = false, $die = true )
Параметры функции check_ajax_referer()
- $action
- (строка|целое) Ключ, описывающий действие, который использовался при создании проверяемого защитного нонс-ключа! (если использовался).
- $query_arg
- (строка) Начиная с версии WordPress 2.5 вы можете указать название ключа, в котором хотите проверять значение nonce, по умолчанию проверяются ключи
_ajax_nonce
и_wpnonce
. - $die
- (логическое) По умолчанию, если проверка nonce не удалась, то функция вызывает
wp_die()
и прекращает выполнение AJAX-запроса, но, указав этот параметр в значениеtrue
, функция будет возвращать 1, 2 илиfalse
, аналогично функции wp_verify_nonce().
Пример использования check_ajax_referer()
В целом у меня даже есть видеоурок с примером, можете посмотреть его.
// создаём одноразовое число $ajax_nonce = wp_create_nonce( 'true_security' ); echo '<script> jQuery( function( $ ){ var data = { action: 'true_action', security: '' . $ajax_nonce . '', // передаём значение nonce в запрос true_str: 'Привет!' }; $.post( ajaxurl, data, function( response ) { console.log( 'Ответ с сервера: ' + response ); }); }); </script>';
И непосредственно в обработчике AJAX-запроса:
add_action( 'wp_ajax_true_action', 'true_ajax_cb' ); function true_ajax_cb() { check_ajax_referer( 'true_security', 'security' ); // проверка nonce-ключа echo $_POST[ 'true_str' ]; die; }