The check_admin_referer WordPress PHP action fires once the admin request has been validated or not, based on the nonce action.
Usage
add_action('check_admin_referer', 'your_custom_function', 10, 2); function your_custom_function($action, $result) { // your custom code here return $action; }
Parameters
$action
(string) – The nonce action.$result
(false|int) – False if the nonce is invalid, 1 if the nonce is valid and generated between 0-12 hours ago, 2 if the nonce is valid and generated between 12-24 hours ago.
More information
See WordPress Developer Resources: check_admin_referer
Examples
Log Invalid Nonces
Log invalid nonce attempts for debugging purposes.
add_action('check_admin_referer', 'log_invalid_nonce', 10, 2); function log_invalid_nonce($action, $result) { if (!$result) { error_log("Invalid nonce for action: $action"); } return $action; }
Custom Security Check
Add an additional security check based on user role.
add_action('check_admin_referer', 'custom_security_check', 10, 2); function custom_security_check($action, $result) { if ($result && current_user_can('editor')) { // Perform custom security check here } return $action; }
Redirect Invalid Nonces
Redirect users to a specific page when the nonce is invalid.
add_action('check_admin_referer', 'redirect_invalid_nonce', 10, 2); function redirect_invalid_nonce($action, $result) { if (!$result) { wp_redirect('https://example.com/error-page/'); exit; } return $action; }
Perform Custom Action on Valid Nonces
Perform a custom action when the nonce is valid.
add_action('check_admin_referer', 'custom_action_on_valid_nonce', 10, 2); function custom_action_on_valid_nonce($action, $result) { if ($result) { // Perform custom action here } return $action; }
Notify Admin on Invalid Nonces
Send an email notification to the admin when a nonce is invalid.
add_action('check_admin_referer', 'notify_admin_invalid_nonce', 10, 2); function notify_admin_invalid_nonce($action, $result) { if (!$result) { $admin_email = get_option('admin_email'); $subject = "Invalid Nonce Detected"; $message = "An invalid nonce for action '$action' was detected."; wp_mail($admin_email, $subject, $message); } return $action; }