Показать сообщение отдельно
  #1 (permalink)  
Старый 22.11.2018, 15:03
Профессор
Отправить личное сообщение для giwuf Посмотреть профиль Найти все сообщения от giwuf
 
Регистрация: 16.05.2017
Сообщений: 163

Как запретить отправлять обрезанный номер телефона?
Всем привет! Есть сайт на wordpress с формой отправки.
Для ввода телефона по маске установлена библиотека
masked-input-plugin.js

Формирую ее таким образом
$(document).ready(function () {
$('.fphone').mask('+7(999)-999-99-99');
});


Сама маска работает хорошо, но проблема возникает, когда кто-то начинает вводить скажем номер с 8ки, после этого не проверяет, а сразу нажимает кнопку отправить и в итоге телефон на почту приходит обрезанный, т.е. форма считает, что в поле все введено правильно и допускает не полное заполнение маски.

Форма реализована с помощью плагина contact form 7, я переопределяю его проверку номера вот так в файле
functions.php

// define the wpcf7_is_tel callback 
function custom_filter_wpcf7_is_tel( $result, $tel ) { 
  $result = preg_match( '^\+?[78][-\(]?\d{3}\)?-?\d{3}-?\d{2}-?\d{2}$', $tel );
  return $result; 
}
         
add_filter( 'wpcf7_is_tel', 'custom_filter_wpcf7_is_tel', 10, 2 );


Но, в результате, каждый раз пишет "некорректный номер телефона"

Перепробовал много вариантов, в том числе и регулярок, но пока к верному решению не пришел.
Ответить с цитированием