Как сделать в плагине Contact Form 7 проверку телефонного номера?

Answered

В популярном плагине Contact Form 7 (у меня стоит версия Версия 3.8) в конструкторе полей (при создании новой контактной формы) есть поле "Номер телефона". Как мне сделать в этом поле проверку номера телефона: ввел человек цифры или буквы, ввел ли он полный номер телефона и т.д. Что нужно указывать в настройках этого поля "Номер телефона" чтобы сделать валидацию номера телефона?

Как сделать в плагине Contact Form 7 проверку телефонного номера?

Сторонник Asked on 11.12.2014 in Плагины.
Add Comment
4 Answer(s)
Best answer
Другой простой и эффективный метод сделать проверку телефонного номера в Contact Form 7 - использовать JS скрипт «Masked Input Plugin» (он позволяет применять к полям ввода маски).

Шаг 1. Скачиваем js скрипт тут http://digitalbush.com/projects/masked-input-plugin/ (подключаем в шаблон своего сайта как обычный js файл).

Шаг 2. Теперь в файле  functions.php своей темы прописываем:


add_action('wp_footer', 'wpmidia_activate_masked_input');

function wpmidia_activate_masked_input(){

?>

<script type="text/javascript">

jQuery( function($){

$(".tel").mask("+7 (999) 999-9999");

});

</script>

<?php

}

Шаг 3. Финальный шаг - применить маску к своему полю в Contact Form 7. Например, у нас поле телефона в контактной форме выгдядит так:


[text* text-232]


нам осталось заменить его на:

[text* text-232 class:tel placeholder "+7 (___) ___-__-__"]

Готово! Теперь пользователь может ввести в поле телефона только цифры и только в дозволенном ему формате!

ГУРУ Answered on 12.02.2016.
Add Comment

Я ставила для этих целей дополнительно плагин Jquery Validation For Contact Form 7
Этот плагин дополняет функционал Contact Form 7 тем, что вводит валидацию для многих полей, в том числе и номера телефона.

 

Начальный Answered on 11.12.2014.

Спасибо! Плагин  Jquery Validation For Contact Form 7 поставил, но не встал. Версия ВП 4.01. Или проблема в некоторых моих плагинах.
Не работает одним словом валидация телефонного номера! Есть у кого еще варианты решения данного вопроса?
Повторюсь, нужна проверка на правильность введенного пользователем номера телефона.
Желательно по маске, типа +0-000-000-000

on 11.12.2014.
Add Comment

Сделать валидацию телефонного номера в Contact Form 7 можно с помощью небольшого хука.
Сделайте в конструкторе полей телефонный номер как обычное "текстовое поле". Оно будет иметь название, похожее на "text-123" (эти цифры и нужно подставить в код ниже. Теперь открываем файл functions.php текущей темы и вставляем код:


function wpds_validate_phone($result, $tag) {

$field_name = $tag['name'];

if ($field_name == 'text-123') { // Указываем имя поля для телефонного номера

$tel = preg_replace('/\D/', '', $_POST[$field_name]);

if (strlen($tel) != 12) {

$result['valid'] = false;

$result['reason'][$field_name] = 'Пожалуйста, введите корректный телефонный номер. Например, 375 (29) 111-22-33';

}

}

return $result;

}

add_filter('wpcf7_validate_text', 'wpds_validate_phone', 10, 2);

add_filter('wpcf7_validate_text*', 'wpds_validate_phone', 10, 2);

Скрипт проверяет валидность телефона, при этом пользователь может указать символы "-", "/" - разделения цифр, но если он указал неполный номер телефона (12 цифр), то валидация не будет пройдена.

 

ГУРУ Answered on 11.12.2014.
Add Comment

В родных настройках Contact Form 7 невозможно сделать валидацию телефонного номера. Вы можете указать максимальную длину поля, но поле не проверяется даже на наличие цифр! Ни на их минимальную длину. Короче, почему это поле называется "номер телефона" в Contact Form 7 - совершенно не ясно! Также интересует сей вопрос!

Сторонник Answered on 11.12.2014.
Add Comment

Your Answer

By posting your answer, you agree to the privacy policy and terms of service.