shake_error_codes хук-фільтрWP 3.0.0

Дозволяє змінити набір помилок, при виникненні яких форму реєстрації/авторизації потрібно “струсити”.

Код помилки вказується першим аргументом у методі WP_Error::add() :

$error = новий WP_Error;
$error->add( 'invalid_email', 'Некоректний email' );

Фільтр отримує масив із кодами подібних помилок. За замовчуванням він містить такі коди помилок:

Array (
	[0] => empty_password
	[1] => empty_email
	[2] => invalid_email
	[3] => invalidcombo
	[4] => empty_username
	[5] => invalid_username
	[6] => incorrect_password
)

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

add_filter( 'shake_error_codes', 'wp_kama_shake_error_codes_filter' );

/**
 * Function for `shake_error_codes` filter-hook.
 *
 * @param string[] $shake_error_codes Error codes that shake the login form.
 *
 * @return string[]
 */
function wp_kama_shake_error_codes_filter( $shake_error_codes ){

	// Filter...
	return $shake_error_codes;
}
$shake_error_codes
(масив)
Набір помилок.

Приклади

0

#1 Струсіть форму, якщо довільне поле не заповнене

Скористайтеся прикладом створення простого варіанта захисту від спаму при реєстрації та додамо ефект струшування, якщо чекбокс “Я людина” не був натиснутий.

add_filter( 'registration_errors', 'add_registration_errors');
add_action( 'register_form', 'register_form_add_field');
add_filter( 'shake_error_codes', 'add_shake_error_code' );

/**
 * Додає помилку, якщо чекбокс під час реєстрації не був натиснутий.
 *
 * @param WP_Error $errors
 *
 * @return mixed
 */
function add_registration_errors( $errors ) {
	if ( filter_input( INPUT_POST, 'i-not-robot' ) !== 'yes' ) {
		$errors->add( 'robot_detected', '<strong>ПОМИЛКА</strong>: Роботам тут не місце!' );
	}

	return $errors;
}

/**
 * Виводить чекбокс у дефолтній формі реєстрації.
 *
 * @return void
 */
function register_form_add_field() {
	?>
	<p>
		<label>
			<input type="checkbox" name="i-not-robot" value="yes"> Я людина!
		</label>
	</p>
	<br>
	<?php
}

/**
 * Додає в набір код помилки, при якій форму треба "струсити".
 *
 * @param array $shake_error_codes
 *
 * @return array
 */
function add_shake_error_code( $shake_error_codes ) {
	return array_merge( $shake_error_codes, [ 'robot_detected' ] );
}

список змін

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

Де викликається хук

Де використовується хук у WordPress

Використання не знайдено.

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

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