shake_error_codes
Дозволяє змінити набір помилок, при виникненні яких форму реєстрації/авторизації потрібно “струсити”.
Код помилки вказується першим аргументом у методі 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
(масив) - Набір помилок.
Приклади
#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 | Введено. |
Де викликається хук
shake_error_codes
Де використовується хук у WordPress
Використання не знайдено.