• Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Решено Маска телефона для одной страны

Image CMS

vlad1692

Новичок
#1
Подскажите, пожалуйста, сделал маску телефона на странице оформления заказа в woocommerce с помощью js masked-input-plugin
Добавил js в папку и в функциях темы добавил:


// Маска ввода на базе http://digitalbush.com/projects/masked-input-plugin
add_action('wp_enqueue_scripts', 'my_maskedinput');
function my_maskedinput() {
// подгружаем скрипты только на страницы оформления заказа
if (is_checkout()) {
// загружаем скрипт, который находиться в ПапкаТемы\js\jquery.maskedinput.min.js
wp_enqueue_script('maskedinput', get_template_directory_uri() . 'js/jquery.maskedinput.min.js', array('jquery'));
add_action( 'wp_footer', 'masked_script', 999);
}
}
function masked_script() {
if ( wp_script_is( 'jquery', 'done' ) ) {
?>
<script type="text/javascript">
jQuery( function( $ ) {
$("#billing_phone").mask("(999) 99-99-999");
});
</script>
<?php
}
}


Все работает, но магазин рассчитан на много стран. И получается, что моя маска одна для всех стран. А аак сделать, чтобы только для одной страны эта маска работала, а для других стран активировать параметр unmask
 

ADv

Гуру
Местный
#2
Дописать в код условие, которое будет проверять страну пользователя. Если не подходящая - скрипт не подгружается.
 

vlad1692

Новичок
#3
Дописать в код условие, которое будет проверять страну пользователя. Если не подходящая - скрипт не подгружается.
Спасибо, это я понимаю и это же в вопросе и написал. Вопрос в том, что я не знаю какой скрипт. Потому и спрашиваю:)
 

ADv

Гуру
Местный
#4
Спасибо, это я понимаю и это же в вопросе и написал. Вопрос в том, что я не знаю какой скрипт. Потому и спрашиваю:)
Для начала потребуется инструмент, который бы определял страну. Вариант GeoIP Detection. Далее с помощью if else пропишите загрузку скриптов.
Как вариант, дописать это условие сюда if (is_checkout()) {
 

vlad1692

Новичок
#5
Для начала потребуется инструмент, который бы определял страну. Вариант GeoIP Detection. Далее с помощью if else пропишите загрузку скриптов.
Как вариант, дописать это условие сюда if (is_checkout()) {
зачем Geoip? На странице оформления заказа человек ведь сам выбирает страну доставки. Нужно если выбрал одну страну, то маска работает, а если любую другую, то не работает.
 

ADv

Гуру
Местный
#6
зачем Geoip? На странице оформления заказа человек ведь сам выбирает страну доставки. Нужно если выбрал одну страну, то маска работает, а если любую другую, то не работает.
Не подумал о встроенном поле. Тогда посмотрите это https://stackoverflow.com/a/34300208/3104331
 

vlad1692

Новичок
#7
Не подумал о встроенном поле. Тогда посмотрите это https://stackoverflow.com/a/34300208/3104331
Код немного далек от меня.. Если не затруднит, то очень попрошу написать, что именно нужно сделать. Код который использован сейчас в первом посте, js использован masked-input-plugin от Digitalbrush
 

Beagler

Форумчанин
#8
Код:
<script type="text/javascript">
jQuery( function( $ ) {
jQuery('#billing_country').on('change',function() {
                if (jQuery('#billing_country').val() == 'US'){
                    $("#billing_phone").mask("(999) 99-99-999");
                }
            });
});
</script>
Вместо US подставляете код нужной страны
 
Сверху Снизу