Корректный формат контактного телефона покупателя часто важен для уточнения/подтверждения заказа, отправки уведомлений клиентам, передачи данных в транспортную компанию, отсеивания фейковых заказов. Однако клиенты вводят свои номера по-разному или вообще добавляют в поле набор букв. Чтобы избежать неразберихи, нужна проверка номера телефона при оформлении заказа на странице WooCommerce Checkout. Сделать это можно автоматически плагином или вручную — кодом.

Установка плагина проверки номера телефона

Самый простой вариант — это установить специальный плагин Speedplus Check Woo Phone, который проверяет номер телефона покупателя на странице Чекаута WooCommerce на соответствие вашим правилам: длина номера телефона; символы, используемые в номере, обязательное начало номера телефона.

Приобрести плагин можно по ссылке.

Демонстрационную версию плагина можно протестировать здесь.

Проверка номера телефона с помощью кода

Для начала вам следует определиться с параметрами проверки, которые влияют на такие участки кода:

  • длина номера
  • разрешенные символы
  • постоянная (обязательная) часть
  • placeholder (заполнитель, подсказка)
  • сообщение об ошибке

Для внедрения функции анализа введенного номера телефона на соответствие строгим параметрам добавьте нижеследующий код PHP в файл functions.php активной темы на сайте WordPress.

// Проверка формата номера телефона на странице оформления заказа
add_action('woocommerce_checkout_process', 'phone_check2_speedplus');
function phone_check2_speedplus() {
	// Телефон введен?
	if ( !empty( $_POST['billing_phone'] ) ) {
		$number = $_POST['billing_phone'];
		$length = strlen($number);
		// Проверяем 13 символов в номере, обязательное начало +380 и еще 9 цифр 
		if (($length == 13) && (preg_match('/\+380[1-9]\d{8}\b/', $number))) {
			// Номер телефона соответствует формату
		}
		// В случае ошибки выводим уведомление
		else {
			// Текст ошибки
			wc_add_notice( '<strong>' . sprintf( __("Пожалуйста, введите номер телефона в международном формате. Пример: +380951113322.") ) . '</strong>', 'error' );
		}
	}
}

После этого вы можете захотеть добавить следующий код для отображения плейсхолдера в пустом поле телефона.

// Добавить плейсхолдер в поле номера телефона на странице оформления заказа
add_filter( 'woocommerce_checkout_fields' , 'speedplus_overrides_checkout_fields', 20, 1 );
function speedplus_overrides_checkout_fields( $fields ) {
    $fields['billing']['billing_phone']['placeholder'] = '+380951113322';
    return $fields;
}

Вот так будет выглядеть проверка номера телефона на сайте.

Проверяем формат номера телефона при оформлении заказа

Также рекомендуем посмотреть статью о запрете кириллицы или латиницы в полях чекаута Вукомерс.

Если у вас возникли сложности с реализацией проверки номера телефона, вы можете обратиться за помощью к нам на странице Контакты.

Хотите прокомментировать?

Ваш адрес email не будет опубликован.