Самостоятельная проверка правильности заполнения полей

По умолчанию плагин 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

В Contact Form 7 проверка пользовательского ввода реализована в виде фильтра. Название фильтра варьируется в зависимости от типа тега формы и определяется следующим образом: wpcf7_validate_ + {тип тега формы}. Так для текстовых полей название фильтра будет wpcf7_validate_text, а для обязательно поля ввода e-mail wpcf7_validate_email*.