Найти в Дзене
Deynekin.com

Дополнительная проверка на спам в Contact Form 7

Спам через Contact Form в 99.9% случаев идет с указанием имен на английском языке. Для выдачи ошибки при использовании английских символов в имени добавьте нижеприведенный код в functions.php. Код проверяет наличие русских символов в полях, названия которых содержат подстроку "name". function my_wpcf7_validate_text( $result, $tag ) { $type = $tag['type']; $name = $tag->name; $Name = (strpos(strtolower($name), 'name') !== false)?true:false; $value = isset( $_POST[$name] ) ? (string) $_POST[$name] : ''; if ( $tag->is_required() && empty($value) ) { $result->invalidate( $tag, wpcf7_get_message( 'invalid_required' ) ); } elseif ( $Name && (!preg_match('/^[А-Яа-яё]+$/iu', $value) || strlen ($name)<2)) { $result->invalidate( $tag, wpcf7_get_message( 'invalid_name' ) ); } return $result; } add_filter( 'wpcf7_validate_text', 'my_wpcf7_validate_text' , 10, 2 ); add_filter( 'wpcf7_validate_text*', 'my_wpcf7_validate_text' , 10, 2 ); add_filter( 'wpcf7_messa

Спам через Contact Form в 99.9% случаев идет с указанием имен на английском языке.

Для выдачи ошибки при использовании английских символов в имени добавьте нижеприведенный код в functions.php. Код проверяет наличие русских символов в полях, названия которых содержат подстроку "name".

function my_wpcf7_validate_text( $result, $tag ) {
$type = $tag['type'];
$name = $tag->name;
$Name = (strpos(strtolower($name), 'name') !== false)?true:false;
$value = isset( $_POST[$name] ) ? (string) $_POST[$name] : '';
if ( $tag->is_required() && empty($value) ) {
$result->invalidate( $tag, wpcf7_get_message( 'invalid_required' ) );
} elseif ( $Name && (!preg_match('/^[А-Яа-яё]+$/iu', $value) || strlen ($name)<2)) {
$result->invalidate( $tag, wpcf7_get_message( 'invalid_name' ) );
}
return $result;
}
add_filter( 'wpcf7_validate_text', 'my_wpcf7_validate_text' , 10, 2 );
add_filter( 'wpcf7_validate_text*', 'my_wpcf7_validate_text' , 10, 2 );
add_filter( 'wpcf7_messages', 'mywpcf7_text_messages' );
function mywpcf7_text_messages( $messages ) {
return array_merge( $messages, array(
'invalid_name' => array(
'description' => __( "Используйте только РУССКИЕ символы в имени", 'contact-form-7' ),
'default' => __( 'Используйте только РУССКИЕ символы в имени.', 'contact-form-7' )
)
));
}