wp_referer_field() WP 2.0.4

Виводить/отримує приховане input поле форми зі значенням URI поточної сторінки (referer).

Посилання referer – це URI поточного запиту – $_SERVER['REQUEST_URI']. Атрибут name дорівнює _wp_http_referer.

<input type="hidden" name="_wp_http_referer" value="/current-page" />

Хуків немає.

Повертає

Строку. HTML тег <input>.

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

wp_referer_field($ echo);
$echo
(логічний)
true – вивести на екран. false — повернути змінну для подальшої обробки.


Типово: true

Приклади

0

#1 Редирект назад

// Є операція
if ( $doaction ) {
	// робимо щось
}
// Немає операції, повернемо користувача назад
elseif ( ! empty($_REQUEST['_wp_http_referer']) ) {
	 wp_safe_redirect( $_REQUEST['_wp_http_referer'] );
	 exit;
}
0

#2 Додамо приховане поле _wp_http_referer та перевіримо його

Додамо до нашої форми приховане поле _wp_http_referer і потім перевіримо це поле, щоб переконатися, що запит надійшов саме з потрібної нам сторінки. Нехай сторінка з формою має УРЛ: /my-page, тоді:

<form action="/proverka" method="post">
	... інші поля форми ...
	<?php wp_referer_field() ?>
	... кнопка відправки форми ...
</form>

wp_referer_field() виведе:

<input type="hidden" name="_wp_http_referer" value="/my-page" />

Тепер, після того як ми надішлемо дані, вони підуть на сторінку /proverka, де ми зможемо перевірити поле _wp_http_referer так:

if( $_POST['_wp_http_referer'] === '/my-page' ){
	// Перевірка пройдена, робимо щось із даними
}
else {
	// Перевірка не пройдено!
}

список змін

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

Код wp_referer_field() WP 6.0.2

function wp_referer_field( $echo = true ) {
	$referer_field = '<input type="hidden" name="_wp_http_referer" value="' . esc_attr( wp_unslash( $_SERVER['REQUEST_URI'] ) ) . '" />';

	if ($ echo) {
		echo $referer_field;
	}

	return $referer_field;
}

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

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