The check_ajax_referer() WordPress PHP function verifies the Ajax request to prevent processing requests external of the blog. It’s a key function for ensuring the security and integrity of your Ajax requests.
Usage
Here’s a generic example of how to use the function:
check_ajax_referer( 'my_action', 'security' );
In this example, 'my_action' is the action nonce, and 'security' is the key to check for the nonce in $_REQUEST.
Parameters
$action(int|string) (Optional) – Action nonce. Default is-1.$query_arg(false|string) (Optional) – Key to check for the nonce in$_REQUEST(since 2.5). If false,$_REQUESTvalues will be evaluated for ‘_ajax_nonce’, and ‘_wpnonce’ (in that order). Default isfalse.$die(bool) (Optional) – Whether to stop early when the nonce cannot be verified. Default istrue.
More information
See WordPress Developer Resources: check_ajax_referer()
This function is a part of the WordPress core and is implemented in version 2.0.3.
Examples
Basic usage
This is a simple usage of check_ajax_referer(). Here the function will check for the nonce in the ‘security’ parameter of the Ajax request.
add_action( 'wp_ajax_my_action', 'my_action_function' );
function my_action_function() {
check_ajax_referer( 'my_action', 'security' );
// Your Ajax process here
}
Use with a custom nonce
Here we’ll check for a custom nonce ‘my_custom_nonce’ in the Ajax request.
add_action( 'wp_ajax_my_custom_action', 'my_custom_action_function' );
function my_custom_action_function() {
check_ajax_referer( 'my_custom_nonce', 'security' );
// Your Ajax process here
}
Stop early when nonce cannot be verified
In this example, the function will stop the process early when the nonce cannot be verified.
add_action( 'wp_ajax_my_action', 'my_action_function' );
function my_action_function() {
check_ajax_referer( 'my_action', 'security', true );
// Your Ajax process here
}
Continue when nonce cannot be verified
Here, the function will continue even when the nonce cannot be verified.
add_action( 'wp_ajax_my_action', 'my_action_function' );
function my_action_function() {
check_ajax_referer( 'my_action', 'security', false );
// Your Ajax process here
}
Check for ‘_wpnonce’ in $_REQUEST
In this example, the function will check for ‘_wpnonce’ in $_REQUEST.
add_action( 'wp_ajax_my_action', 'my_action_function' );
function my_action_function() {
check_ajax_referer( '_wpnonce' );
// Your Ajax process here
}