wp_nonce_ays() WP 2.0.4

Зупиняє виконання сценарію PHP та виводить заглушку “The link you followed has expired” з посиланням на попередню сторінку wp_get_referer() .

Використовувати цю функцію можна у випадках, коли потрібно зупинити виконання сценарію та повернути користувача на попередню сторінку (HTTP referer).

Код стану HTTP створюваної сторінки заглушки: 403 – заборонено.

Повертає

null. Нічого не повертає, а перериває поточний сценарій PHP заглушкою.

Хуків немає.

Використання

<?php wp_nonce_ays( $action ) ?>
$action
(рядок) (обов’язковий)
Якщо передати значення
log-out, то буде показано заглушку виходу із системи з посиланням на вихід: “Ви впевнені, що хочете
вийти “.

Приклади

0

#1 Неправильне посилання

У разі неправильної URL-адреси можна повернути користувача назад. Використовуємо таку логіку:

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

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

#2 Підтвердження виходу

Якщо потрібно попередити користувача, що він збирається вийти із системи, то використовуємо такий код, перш ніж “розлогінити” користувача:

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

список змін

З версії 2.0.4Введено.

Код wp_nonce_ays() WP 6.0.2

function wp_nonce_ays( $action ) {
	// Default title and response code.
	$title = __( 'Something went wrong.' );
	$response_code = 403;

	if ( 'log-out' === $action ) {
		$title = sprintf(
			/* translators: %s: Site title. */
			__( 'You are atempting to log out of %s' ),
			get_bloginfo( 'name' )
		);
		$html = $title;
		$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, $title, $response_code);
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *