Skip to content

Instantly share code, notes, and snippets.

@smartdeal
Created December 22, 2016 14:04
Show Gist options
  • Save smartdeal/64603a2de4d9f8d7025ecc2d3b0415a0 to your computer and use it in GitHub Desktop.
Save smartdeal/64603a2de4d9f8d7025ecc2d3b0415a0 to your computer and use it in GitHub Desktop.
Wordpress contact form 7 validation
/*
Validate fields in Contact Form 7
*/
function cf7_validation( $result, $tag ) {
$tag = new WPCF7_FormTag( $tag );
$name = $tag->name;
if ($name == 'inn') {
if( !preg_match( "/(\d{8,12})/", $_POST[$name] ) or strlen( $_POST[$name] ) > 12 ) {
$result->invalidate( $tag, "Проверьте правильность заполнения поля. ИНН должно содержать не более 12 цифр цифр." );
}
}
if ($name == 'name') {
if( !preg_match( "/^[a-zA-Zа-яёА-ЯЁ\s\-]+$/u", $_POST[$name] )) {
$result->invalidate( $tag, "Проверьте правильность заполнения поля. Имя должно быть написано на кириллице." );
}
}
if ($name == 'mail') {
if( !preg_match( "/.+@.+\..+/i", $_POST[$name] )) {
$result->invalidate( $tag, "Проверьте правильность заполнения поля. E-mail должен быть написан латиницей и обязательно содержит -  @." );
}
}
if ($name == 'tel') {
if( preg_match( "/_/", $_POST[$name] ) or strlen( $_POST[$name] ) != 16 ) {
$result->invalidate( $tag, "Проверьте правильность заполнения поля. Телефон должен состоять только цифр и символов ()+." );
}
}
return $result;
}
add_filter( 'wpcf7_validate_text', 'cf7_validation', 10, 2 );
add_filter( 'wpcf7_validate_text*', 'cf7_validation', 10, 2 );
add_filter( 'wpcf7_validate_email*', 'cf7_validation', 10, 2 );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment