WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Получай пассивный доход от сайта

wpcf7_is_tel() CF7 1.0

Проверяет, является ли переданный контент номером телефона.

Хуки из функции
Возвращает

null. 1 - проверка пройдена, 0 - проверка не пройдена.

Алгоритм работы
  1. Строка обрезается с помощью PHP функции trim();
  2. Строка проверяется с помощью 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() CF7 5.4.2

<?php
function wpcf7_is_tel( $tel ) {
	$pattern = '%^[+]?' // + sign
		. '(?:\([0-9]+\)|[0-9]+)' // (1234) or 1234
		. '(?:[/ -]*' // delimiter
		. '(?:\([0-9]+\)|[0-9]+)' // (1234) or 1234
		. ')*$%';

	$result = preg_match( $pattern, trim( $tel ) );
	return apply_filters( 'wpcf7_is_tel', $result, $tel );
}

Из раздела: Contact Form 7

campusboy 3850youtube.com/c/wpplus
Создатель YouTube канала wp-plus, на котором делюсь своим опытом. Активный пользователь wp-kama.ru. WordPress-разработчик. Разработка сайтов и лендингов. Доработка существующих проектов. Сопровождение ресурсов.
Редакторы: Kama 8368
Комментариев нет
    Войти