Как сделать валидацию поля имени в Contact Form 7?

17 июл. 2017 г., 09:45:44
Просмотры: 17.6K
Голосов: -1

Я использую плагин contact-form-7, где создал поле name как Имя.

Поле name принимает и текст, и цифры. Но мне нужно, чтобы поле name не начиналось с цифры. Как сделать так, чтобы поле имени принимало только текст, а не цифры?

[text* your-name placeholder "Полное имя"]  

Я искал в Google и посещал поддержку Contact Form 7, но не смог решить эту проблему.

2
Комментарии

Ты уже прочитал руководство разработчика по пользовательской валидации? И еще, если мое имя будет типа "kero the 3rd", я не смогу отправить твою форму (потому что в нем есть цифра)?

kero kero
17 июл. 2017 г. 10:08:33

мое требование: поле Имя не должно принимать имя, которое начинается с цифры, а не в середине или после первой буквы.. @kero

Rajendra Rajendra
17 июл. 2017 г. 10:29:56
Все ответы на вопрос 1
0

Согласно документации, необходимо создать пользовательский фильтр для поддержки этой функции — это можно сделать следующим образом:

add_filter( 'wpcf7_validate_text*', 'custom_text_validation_filter', 20, 2 );

function custom_text_validation_filter( $result, $tag ) {
    if ( 'your-name' == $tag->name ) {
        // соответствует любым utf-словам, где первая буква не является цифрой
        $re = '/^[^\p{N}][\p{L}]*/i';

        if (!preg_match($re, $_POST['your-name'], $matches)) {
            $result->invalidate($tag, "Недопустимое имя!" );
        }
    }

    return $result;
}
17 июл. 2017 г. 10:10:18