WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Купить персональные IPV4 и IPV6 прокси

wp_nonce_ays() WP 2.0.4

Останавливает выполнение сценария PHP и выводит заглушку "The link you followed has expired" со ссылкой на предудущую страницу wp_get_referer().

Использовать эту функцию можно в случаях, когда нужно остановить выполнение сценария и вернуть пользователя на предыдущую страницу (HTTP referer).

Код состояния HTTP создаваемой страницы заглушки: 403 - запрещено.

Возвращает

Ничего не возвращает, а прерывает текущий PHP сценарий заглушкой.

Хуков нет.

Использование

<?php wp_nonce_ays( $action ) ?>
$action(строка)
Если передать значение log-out, то будет показана заглушка выхода из системы, со ссылкой на выход: "Вы уверены, что хотите выйти".
По умолчанию: ''

Примеры

#1. Неправильная ссылка

В случае неправильного URL можно вернуть пользователя обратно. Используем такую логику:

global $wp;
$current_url = home_url( $wp->request );

// если $current_url "неправильный"
if( $current_url === "https://example.com/destroy/the/world" ){
	wp_nonce_ays();
	// останавливаем сценарий со ссылкой на предыдущую страницу
} else {
	// URL верный, выполняем сценарий дальше
}

#2. Подтверждение выхода

Если нужно предупредить пользователя, что он собирается выйти из системы, то используем такой код, до того как "разлогинить" пользователя:

if( $_GET['logout'] ){
	wp_nonce_ays( 'log-out' );
}

Список изменений

С версии 2.0.4 Введена.

Код wp nonce ays: wp-includes/functions.php WP 5.2.2

<?php
function wp_nonce_ays( $action ) {
	if ( 'log-out' == $action ) {
		$html = sprintf(
			/* translators: %s: site name */
			__( 'You are attempting to log out of %s' ),
			get_bloginfo( 'name' )
		);
		$html       .= '</p><p>';
		$redirect_to = isset( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : '';
		$html       .= sprintf(
			/* translators: %s: logout URL */
			__( 'Do you really want to <a href="%s">log out</a>?' ),
			wp_logout_url( $redirect_to )
		);
	} else {
		$html = __( 'The link you followed has expired.' );
		if ( wp_get_referer() ) {
			$html .= '</p><p>';
			$html .= sprintf(
				'<a href="%s">%s</a>',
				esc_url( remove_query_arg( 'updated', wp_get_referer() ) ),
				__( 'Please try again.' )
			);
		}
	}

	wp_die( $html, __( 'Something went wrong.' ), 403 );
}

Cвязанные функции

Из метки: nonce (защита)

Еще из раздела: Защита

Комментариев нет
    Здравствуйте, !     Войти . Зарегистрироваться