# wp_verify_nonce()

URL: https://chugunov.pro/api-wordpress/functions/wp_verify_nonce/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 2.0.3.

## Сигнатура

```php
wp_verify_nonce( string $nonce, string|int $action = -1 ): int|false
```

## Описание

Одноразовый код действителен в течение от 12 до 24 часов (по умолчанию).

## Параметры

- `$nonce` `string` — обязательный. Значение одноразового кода, использованное для проверки, обычно через поле формы.
- `$action` `string|int` — необязательный, по умолчанию `-1`. Должно задавать контекст происходящего и совпадать с тем, что использовалось при создании одноразового кода.

## Возвращаемое значение

`int|false`

## Исходный код

Файл: `wp-includes/pluggable.php:2470`

```php
function wp_verify_nonce( $nonce, $action = -1 ) {
	$nonce = (string) $nonce;
	$user  = wp_get_current_user();
	$uid   = (int) $user->ID;
	if ( ! $uid ) {
		/**
		 * Filters whether the user who generated the nonce is logged out.
		 *
		 * @since 3.5.0
		 *
		 * @param int        $uid    ID of the nonce-owning user.
		 * @param string|int $action The nonce action, or -1 if none was provided.
		 */
		$uid = apply_filters( 'nonce_user_logged_out', $uid, $action );
	}

	if ( empty( $nonce ) ) {
		return false;
	}

	$token = wp_get_session_token();
	$i     = wp_nonce_tick( $action );

	// Nonce generated 0-12 hours ago.
	$expected = substr( wp_hash( $i . '|' . $action . '|' . $uid . '|' . $token, 'nonce' ), -12, 10 );
	if ( hash_equals( $expected, $nonce ) ) {
		return 1;
	}

	// Nonce generated 12-24 hours ago.
	$expected = substr( wp_hash( ( $i - 1 ) . '|' . $action . '|' . $uid . '|' . $token, 'nonce' ), -12, 10 );
	if ( hash_equals( $expected, $nonce ) ) {
		return 2;
	}

	/**
	 * Fires when nonce verification fails.
	 *
	 * @since 4.4.0
	 *
	 * @param string     $nonce  The invalid nonce.
	 * @param string|int $action The nonce action.
	 * @param WP_User    $user   The current user object.
	 * @param string     $token  The user's session token.
	 */
	do_action( 'wp_verify_nonce_failed', $nonce, $action, $user, $token );

	// Invalid nonce.
	return false;
}
```

## История изменений

- 2.0.3 — Introduced.

## Связанные

Использует: [`wp_get_session_token`](https://chugunov.pro/api-wordpress/functions/wp_get_session_token/), [`wp_nonce_tick`](https://chugunov.pro/api-wordpress/functions/wp_nonce_tick/), [`wp_hash`](https://chugunov.pro/api-wordpress/functions/wp_hash/), [`wp_get_current_user`](https://chugunov.pro/api-wordpress/functions/wp_get_current_user/), [`apply_filters`](https://chugunov.pro/api-wordpress/functions/apply_filters/), [`do_action`](https://chugunov.pro/api-wordpress/functions/do_action/).
Используется в: `WP_Recovery_Mode::handle_exit_recovery_mode`, [`wp_edit_theme_plugin_file`](https://chugunov.pro/api-wordpress/functions/wp_edit_theme_plugin_file/), [`rest_cookie_check_errors`](https://chugunov.pro/api-wordpress/functions/rest_cookie_check_errors/), [`wp_handle_comment_submission`](https://chugunov.pro/api-wordpress/functions/wp_handle_comment_submission/), [`wp_ajax_destroy_sessions`](https://chugunov.pro/api-wordpress/functions/wp_ajax_destroy_sessions/), `WP_Plugin_Install_List_Table::prepare_items`, [`wp_autosave`](https://chugunov.pro/api-wordpress/functions/wp_autosave/), [`wp_ajax_heartbeat`](https://chugunov.pro/api-wordpress/functions/wp_ajax_heartbeat/), [`request_filesystem_credentials`](https://chugunov.pro/api-wordpress/functions/request_filesystem_credentials/), `Custom_Image_Header::step`, [`check_admin_referer`](https://chugunov.pro/api-wordpress/functions/check_admin_referer/), [`check_ajax_referer`](https://chugunov.pro/api-wordpress/functions/check_ajax_referer/), [`redirect_canonical`](https://chugunov.pro/api-wordpress/functions/redirect_canonical/), [`_show_post_preview`](https://chugunov.pro/api-wordpress/functions/_show_post_preview/), [`signup_nonce_check`](https://chugunov.pro/api-wordpress/functions/signup_nonce_check/), [`signup_nonce_fields`](https://chugunov.pro/api-wordpress/functions/signup_nonce_fields/).

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/wp_verify_nonce/
