Как ограничить минимальное количество символов для телефон номера в Contact form7?
Ссылка скопирована
[tel* tel-230 "+998" number min:6?] не работает.
Дополнительно:
Ответы:
Потому что надо указывать minlength:6
- так это для текста, не?
- killmeslow, попробуй всё же заглянуть в документацию https://contactform7.com/text-fields/#tel
Нужно решить такую задачу?
Заказать помощь
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Лучший ответ
1
Другие ответы (0)
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
В Contact Form 7 для телефонного поля нужно использовать параметры, которые поддерживает сам тег формы.
number min:6здесь не подходит: это не числовое поле и не такая запись ограничения длины. Для минимального количества символов используйтеminlength.Пример:
[tel* tel-230 minlength:6 maxlength:20 "+998"]
Но учитывайте, что
minlength:6проверяет длину всей строки. Если у Вас уже подставлен префикс+998, пользователь может ввести слишком мало оставшихся цифр, а общая длина всё равно формально пройдёт. Поэтому для телефона лучше использовать маску или кастомную валидацию.Пример кастомной проверки для поля
tel-230:add_filter('wpcf7_validate_tel*', 'custom_phone_length_validation', 20, 2); add_filter('wpcf7_validate_tel', 'custom_phone_length_validation', 20, 2); function custom_phone_length_validation($result, $tag) { if ($tag->name !== 'tel-230') { return $result; } $value = preg_replace('/D+/', '', $_POST['tel-230'] ?? ''); if (strlen($value) < 9) { $result->invalidate($tag, 'Введите полный номер телефона.'); } return $result; }
Так Вы проверяете не количество символов с пробелами и плюсами, а количество цифр. Для удобства пользователя можно дополнительно поставить JS-маску телефона, но серверную проверку всё равно лучше оставить.
Если используете маску телефона, не полагайтесь только на фронтенд. Пользователь или бот может отправить POST-запрос напрямую без JS. Поэтому минимальную длину и формат номера нужно проверять на сервере через фильтр CF7. JS-маска отвечает за удобство ввода, а PHP-валидация — за безопасность и качество данных.