Корректный формат контактного телефона покупателя часто важен для уточнения/подтверждения заказа, отправки уведомлений клиентам, передачи данных в транспортную компанию, отсеивания фейковых заказов. Однако клиенты вводят свои номера по-разному или вообще добавляют в поле набор букв. Чтобы избежать неразберихи, нужна проверка номера телефона при оформлении заказа на странице 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;
}
Вот так будет выглядеть проверка номера телефона на сайте.
Также рекомендуем посмотреть статью о запрете кириллицы или латиницы в полях чекаута Вукомерс.
Если у вас возникли сложности с реализацией проверки номера телефона, вы можете обратиться за помощью к нам на странице Контакты.