Самостоятельная проверка правильности заполнения полей
По умолчанию плагин Contact Form 7 предоставляет несколько видов проверки пользовательского ввода:
- заполнено ли обязательное поле;
- имеет ли e-mail правильный формат;
- допустимый ли тип и размер у загруженного файла.
К этим видам можно добавить свою произвольную проверку.
Чтобы продемонстрировать, как реализовать пользовательскую проверку, сделаем пример подтверждения ввода электронной почты. То есть в одном поле формы требуется ввести e-mail, а в другом его подтвердить. Такого функционала в плагине нет.
Предположим, что в шаблоне формы у нас есть следующие поля для ввода e-mail:
[email* your-email]
[email* your-email-confirm]
Тогда код проверки будет таким:
add_filter( 'wpcf7_validate_email*', function( $result, $tag ) {
if( 'your-email-confirm' == $tag->name ) {
$your_email = isset( $_POST['your-email'] ) ? trim( $_POST['your-email'] ) : '';
$your_email_confirm = isset( $_POST['your-email-confirm'] ) ? trim( $_POST['your-email-confirm'] ) : '';
if( $your_email != $your_email_confirm ) {
$result->invalidate( $tag, "Вы неверно ввели e-mail второй раз." );
}
}
return $result;
}, 20, 2 );
Показать код
При неправильном вводе получим такое уведомление:
В Contact Form 7 проверка пользовательского ввода реализована в виде фильтра. Название фильтра варьируется в зависимости от типа тега формы и определяется следующим образом: wpcf7_validate_ + {тип тега формы}
. Так для текстовых полей название фильтра будет wpcf7_validate_text
, а для обязательно поля ввода e-mail wpcf7_validate_email*
.