Функция wp_nonce_ays()
выводит сообщение «Вы уверены?» для подтверждения действия, которое пользователь собирается выполнить. Если действие связано с одноразовым полем (nonce), то вместе с сообщением будет показано дополнительное объяснение.
Эта функция останавливает выполнение текущего PHP сценария и отображает сообщение с кодом HTTP 403 («запрещено»). Функция полезна, когда необходимо запросить подтверждение перед выполнением критического действия или когда требуется вернуть пользователя на предыдущую страницу (используя wp_get_referer()
).
wp_nonce_ays( string $action )
Параметры
- $action
(string)
— Уникальный идентификатор действия, связанный с одноразовым полем (nonce). В зависимости от значения параметра может быть выведено определенное сообщение.- Этот параметр является обязательным.
Возвращаемое значение
Функция ничего не возвращает. Она прерывает выполнение PHP сценария, выводя страницу с заглушкой и ссылкой на предыдущую страницу (реферер). Код состояния HTTP страницы — 403 Forbidden
.
Пример 1: Подтверждение действия при неправильной ссылке
Функция может быть использована для проверки URL и остановки выполнения сценария, если URL не является допустимым. Если URL некорректен, функция прерывает сценарий и возвращает пользователя на предыдущую страницу.
global $wp;
$current_url = home_url( $wp->request );
// Проверяем, является ли текущий URL "неправильным"
if ( $current_url === "https://example.com/destroy/the/world" ) {
// Останавливаем сценарий и выводим сообщение с подтверждением действия
wp_nonce_ays( 'any string' );
} else {
// URL корректный, продолжаем выполнение сценария
}
Пример 2: Подтверждение выхода пользователя
Функция может быть использована для запроса подтверждения от пользователя перед выполнением критических действий, таких как выход из системы (logout). Например, при попытке выхода пользователя можно запросить подтверждение:
if ( isset( $_GET['logout'] ) ) {
// Запрашиваем подтверждение выхода
wp_nonce_ays( 'log-out' );
}
Этот код выведет сообщение с подтверждением: «Вы уверены, что хотите выйти?», и предложит пользователю подтвердить своё действие.
Особенности
- Функция вызывает остановку выполнения текущего сценария PHP.
- Код заглушки страницы, который возвращается пользователю, имеет статус HTTP
403 - Forbidden
. - Если у действия
$action
есть сообщение, связанное с nonce, оно будет выведено вместе с основным сообщением. - В случае использования
$action = 'log-out'
функция выведет специальное сообщение для подтверждения выхода из системы.
Использование при неверных действиях
Если пользователю было передано неправильное одноразовое поле (nonce), или был выполнен некорректный запрос, с помощью wp_nonce_ays()
можно не только уведомить его о том, что операция запрещена, но и вернуть его на предыдущую страницу с помощью функции wp_get_referer()
.
Пример с неверным nonce
if ( ! wp_verify_nonce( $_REQUEST['_wpnonce'], 'my-action' ) ) {
// Выводим сообщение с подтверждением
wp_nonce_ays( 'my-action' );
}
Если проверка nonce не пройдена, функция wp_nonce_ays()
остановит сценарий и отобразит страницу с заглушкой.
Заключение
Функция wp_nonce_ays()
полезна для запроса подтверждения перед выполнением критических действий или для обработки неверных запросов с возвратом пользователя на предыдущую страницу.