wpcf7_is_tel()
Проверяет, является ли переданный контент номером телефона.
Хуки из функции
Возвращает
null
. 1
- проверка пройдена, 0
- проверка не пройдена.
Алгоритм работы
- Строка обрезается с помощью PHP функции trim();
-
Строка проверяется с помощью PHP функции preg_match() на соответствие шаблону:
'%^[+]?' // Знак "+" вначале . '(?:\([0-9]+\)|[0-9]+)' // (1234) или 1234 . '(?:[/ -]*' // разделители (пробел, дефис) . '(?:\([0-9]+\)|[0-9]+)' // (1234) или 1234 . ')*$%';
Использование
wpcf7_is_tel( $tel );
Примеры
#1 Проверим телефон
$tel = '+7 928 123 45 78'; if ( wpcf7_is_tel( $tel ) ) { echo 'Это номер телефона'; } else { echo 'Это не телефон'; }
Выведет Это номер телефона
, так как он действительно корректный.
#2 Вариации проверки
wpcf7_is_tel( '+7 928 123 45 78' ) // 1 wpcf7_is_tel( '7 928 123 45 78' ) // 1 wpcf7_is_tel( '+7-928-123-45-78' ) // 1 wpcf7_is_tel( '15135354354' ) // 1 wpcf7_is_tel( ' 45 228 665' ) // 1 wpcf7_is_tel( '45 228 665' ) // 1 wpcf7_is_tel( '1' ) // 1 wpcf7_is_tel( '0' ) // 1 wpcf7_is_tel( '+7' ) // 1 wpcf7_is_tel( true ) // 1 wpcf7_is_tel( '+7.928.123.45.78' ) // 0 wpcf7_is_tel( '+ 7 928 123 45 78' ) // 0 wpcf7_is_tel( '15135sssss354354' ) // 0 wpcf7_is_tel( '15135привет354354' ) // 0 wpcf7_is_tel( 's 45 228 665' ) // 0 wpcf7_is_tel( '+ 45 228 665' ) // 0 wpcf7_is_tel( '+' ) // 0 wpcf7_is_tel( false ) // 0 wpcf7_is_tel( new stdClass() ) // 0 и PHP Warning: trim() expects parameter 1 to be string, object given
Код wpcf7_is_tel() wpcf7 is tel CF7 5.9.3
function wpcf7_is_tel( $text ) { $text = preg_replace( '%[()/.*#\s-]+%', '', $text ); $result = preg_match( '/^[+]?[0-9]+$/', $text ); return apply_filters( 'wpcf7_is_tel', $result, $text ); }