Проверка корректности номера телефона и факса в Contact Form 7

Contact Form 7 наиболее простой и мощный плагин для WordPress. Количество его загрузок давно перевалило 15 миллионов раз. В нем есть практически всё для настройки простой контактной формы, за исключением одной фичи — проверки правильности ввода номера телефона или факса. Сниппет ниже осуществляет валидацию телефонного номера путем вырезания всех не числовых символов и проверки длины строки с номером в 10 знаков.

Сниппет

Необходимо добавить код в файл functions.php вашей темы или в плагин для сайта WordPress:

function wpds_validate_phone_number($result, $tag) {
    $field_name = $tag['name'];
    if ($field_name == 'your-phone') { // Указываем имя поля для телефонного номера
        $tel = preg_replace('/\D/', '', $_POST[$field_name]);
        if (strlen($tel) != 12) { // Проверяем длину строки. Она должна содержать 10 символов
            $result['valid'] = false;
            $result['reason'][$field_name] = 'Пожалуйста, введите корректный 10-значный телефонный номер. Например, 0-800-503-808';
        }
    }
    return $result;
}
add_filter('wpcf7_validate_text', 'wpds_validate_phone_number', 10, 2);
add_filter('wpcf7_validate_text*', 'wpds_validate_phone_number', 10, 2);

По всем вопросам и отзывам просьба писать в комментарии ниже.

Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.

Источник: WPDevSnippets

VN:F [1.9.22_1171]
Rating: 4.2/5 (5 votes cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
  • ak

    Куда именно вставлять этот сниппет нужно?

    • http://web-devise.com/ ADv

      В файл functions.php вашей текущей темы ВП.
      Добавил в статью, спасибо.

  • Александр

    У меня не работает…
    В форме CF7 следующий код:
    [tel* tel-471 placeholder «+7(###)###-##-##»]

    Вопрос: что нужно вписать вместо your-phone?
    if ($field_name == ‘your-phone’) { // Указываем имя поля для телефонного номера

    или где нужно вписать your-phone в шаблоне CF7?

    • http://web-devise.com/ ADv

      вместо your-phone попробуйте tel-471

  • макс

    добавляю в functions. Появляется ошибка. весь код отображается в шапке на сайте

    • ADv

      В начале и конце вашего файла функций есть открывающий и закрывающий тег php?

Scroll To Top