Доработать маску (плейсхолдер) телефона в ядре Карта

Просьба доработать маску (плейсхолдер) телефона в ядре карта чтобы был Плейсхолдер в поле телефона равный формату номера страны и чтобы первые цифры были заполнены, т.е. +38(0__)___-__-__, а не как сейчас +___(__)___-__-__

Был отличный модуль от АБ купленный за деньги, который делал нормальные маски. Теперь он не работает и постоянно покупателям надо писать 380. Сделайте пожалуйста полноценное решение, а не так как сейчас.

Просьба это все внести в ядро, т.к. на сколько я понял модуль больше обновляться не будет!

Вообще странно что этих цифр там нет.

Покупатель все равно не может ввести кроме +380 или +7, так почему бы не сделать чтоб они уже были заполнены?

Голосование

  • Поддерживаю, нужный функционал.
  • Не надо, пусть покупатели вносят все цифры.

0 голосов

9 лайков

Тоже писал об этом давно, что нужна возможность вручную задавать маску телефона. Может сейчас обратят внимание на просьбу.

А теперь вообще отличная новость.
Настраиваем merchants.google
Гугловцы в ручном режиме проверяют оформление заказа на сайте.
И единственное, что не устроило проверяющего, что он пытался ввести +7, а числа не вводились…
Я объяснил, что сайт работает только в Украине и поэтому покупатели будут вводить +380
Он сказал, значит должен быть плейсхолдер, чтобы клиенты понимали что надо ввести!!! или доступен ввод любых знаков.
Допустили нас, но дали время до 14 августа для исправления.
Попросил его это мне написать - вот скрин письма!

@ikoshkin, надеюсь требование ребят из гугла является достаточным основанием для скорейшего внедрения функционала, как и результаты голосования “активного населения форума” всего лишь за сутки.

4 лайка

Я не могу сказать, является ли это “достаточным основанием”. Вопрос сложнее, чем “Гугл велел сделать так”. Об этой теме я @imac сообщил, а пока попробую по пунктам помочь с проблемой, о которой пишет Google.

  1. Вы сказали, что проверяющий пытался ввести +7, а числа не вводились. На https://demo.cs-cart.com такой проблемы не наблюдается (т.е. требованиям Google всё соответствует). Проблема может возникнуть из-за сторонних модификаций (например, если удалить в файле с масками все, кроме той, что начинается на +380).

  2. Если проблема с маской вызвана чем-то ещё, а решение нужно быстро, то можно зайти в “Настройки > Внешний вид” и поменять значение у настройки “Допустимые номера телефонов”. Так точно можно сделать, чтобы “клиент имел возможность ввести любые цифры в поле” (это ещё один вариант решения проблемы, который предложили в Google).

Получается, это письмо от Google не значит, что в CS-Cart что-то работает неправильно и надо срочно исправлять.


Это была формальная часть ответа (“как решить проблему, о которой пишет Google, до 14 августа”). Теперь неформальная часть. Я прекрасно понимаю вашу ситуацию:

Раньше был модуль, который делал такую маску, которая нужна вам. Сторонний разработчик перестал его поддерживать и ссылается на то, что маски теперь в ядре CS-Cart. А в CS-Cart маски улучшать не спешат и просят голоса собирать. Ещё советуют отказаться от масок (или пользоваться стандартными, без адаптации под конкретный магазин), чтобы проверку Google пройти.

Но пока я не могу сказать, появится ли редактирование масок (или вбитые первые цифры) в ближайшем будущем. О том, почему так, материала наберётся на отдельную статью или длинную тему на форуме.

Пока же, если решение нужно очень срочно (до того, как эта задача попадёт в работу), то вижу только вариант обратиться к сторонним разработчикам, чтобы это улучшение внесли в ваш магазин. Навскидку нужно:

  • Оставить только одну маску на нужное количество символов.
  • Вывести перед полем (или внутри поля) неубираемые +380.
  • Убедиться, что номер правильно сохраняется.
1 лайк

Извините за вопрос не по теме.
Но как сделать такую голосовалку?

У меня активна только одна страна в настройках-Украина, видимо поэтому и не вводится +7. К файлам масок не прикасался.
Честно не хочу к сторонним разработчикам, хочу чтоб оплаченный карт соответствовам здравому смыслу и требованиям гугла. Не костылю-вводить любые символы, а чтоб нормально все работало как с модулем АБ.
Они это модулем реализовали, а вы говорите, что статью написать можно, что это нереально в ядре сделать…
Но у нас тут и про корзину было, что все нереально, а потом звезды сошлись и получилось…

Надеюсь и тут сойдутся … до 14 августа))))

Да, причина скорее всего в этом.

Я имел в виду не “Почему что-то технически сделать нельзя”, а “Зачем нужны темы в разделе “Как улучшить CS-Cart” и почему внедряется не всё, о чём просят, или не так быстро, как хотелось бы.”

А сделать можно почти всё. Вопрос лишь в том: “Нужно ли? Насколько многим? А как срочно? Что ради этого мы можем отложить?” и т.д.

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

Не хотелось бы разочаровывать, но до 14 августа точно не успеем. Хотя бы потому, что задачи на эту и следующую неделю уже запланированы. Меняются они обычно, только если выпускаем SP, а это по-моему не тот случай.


Когда пишете ответ на форуме, есть кнопка с изображением шестерёнки (там же, где кнопки Ж, К и пр.). Там один из вариантов – создать опрос.

Вы зачем-то отвечали гуглу, вместо того, чтобы поговорить с нами. У вас все хорошо, мы это уже поняли. У нас не все хорошо… Вопрос изначально ставился об изменении стандартной маски, все, о чем говорится в первом посте - это как бы стандарт уже, к которому люди привыкли, и ведь вроде уже готовый функционал есть. Алексы его дальше двигать не будут, потому что вы им на пятки наступили, но и сами вы их догонять не собираетесь. Это, простите, собака на сене получается. Не хотите сами - выкупите у Алексов. Сама фраза “это работает” - устарела, давно пора говорить - “это работает на современном уровне”.

7 лайков

Просто посмотрите как это реализовано это у топ магазинов , именно по причине кривости данного функционала я его просто отключил.
@ikoshkin прислушайтесь к нам , к людям которые реально работают в екомерсе , мы Ваша обратная связь ,бета-тестеры , и в конце концов клиенты.
Мы четко понимаем все реальные проблемы и узкие места в движке , сразу Вам пишем , и эта тема именно об этом , а борьба с возражениями это хорошо , но тут явно не это.

7 лайков

Поддерживаю, у меня кроме Украины, остальные страны выключены т.к. мы не делаем международных доставок, в итоге в поле номера можно ввести только +380, но какой смысл это вводить руками если кроме этих цифр ничего ввести нельзя. Раньше стоял модуль от АБ - в котором в маске это уже было прописано, а сейчас - просто неудобство.

3 лайка

Посты, которые нарушают правила форума и не несут никакого конструктива, из темы удалил. В остальных убрал излишние эмоции и оставил то, что по существу. Если в теме будет больше неконструктивных постов, мне придётся закрыть обсуждение и оставить только голосование.


Я отвечал одному человеку, и не на первый пост, а на конкретный комментарий:

Смысл моего ответа был такой:

  1. Пост создавал ошибочное впечатление, что “Гугл требует только так, и никак иначе”. Это не так. Есть способы соответствовать требованиям Гугла, но пока без дополнительных фишек, которые раньше сторонним модулем добавлялись.

  2. Заранее введённый код (или автоподстановка кода в зависимости от страны) — вещь полезная. Это и без голосований понятно. Вопрос лишь в приоритетах. Лично на мой взгляд, в опросе не хватает варианта: “Вещь нужная, но есть другие функции, которые мне сначала хотелось бы получить”.

  3. Мы видим, что голосов много. Но я пока не могу сказать наверняка, в какой версии это будет сделано. Смогу сказать только тогда, когда задача попадёт к программистам.

    А до этого надо изучить все подобные запросы (в том числе на международном форуме) и спланировать, что, как, а главное, когда мы будем делать. Задач с большим количеством запросов много, и некоторые из них появились раньше.

я там честно указал и второй способ

но вы же понимаете во что эт превратит базу номеров

Это бессмысленный пункт, неинформативный.
Тут миллион таких вещей…
Предлагаю вам уже не в первый раз расставлять приоритет задач по количеству голосов которые за них отдали покупатели вашей системы. Тут было 24 за первые сутки. Такого единодушия давно не было…

1 лайк

@ikoshkin, Вы не обижайтесь только, посты в этой теме действительно эмоциональные, поймите, я не знаю, насколько бы эмоциональным был мой пост, когда я буквально за пару недель до выхода обновления с маской уже совсем собрался купить модуль АБ соответствующего содержания, то есть, читая дословно: за пару недель до того, как они прекратят его дальнейшую разработку в связи с тем, что в ядре появился “аналогичный” функционал.
Кстати, что значит - появился? Микроформат cm-phone существует уже очень давно, и если я правильно помню, когда-то давно он уже стоял на поле с телефоном, так как всплывают в памяти темы 7-8 летней давности, когда люди-человеки наоборот спрашивали, как от этого избавиться (вот тут я вас прекрасно понимаю, у нас нередко, народ что-то активно требует, добьется, сделаете, и через некоторое время начинается обратка: зачем вы это сделали, это никому не надо, надо как раньше - поневоле призадумаешься, прежде чем что-то делать из вопрошаемого).
Вы конечно отвечали Андрею, но на вопросы гугла, которые он передал, что на самом деле все нормально работает и удовлетворяет их условиям.

Но разве вам надо, чтобы оно просто работало, неважно как, главное - работает?

Несколько раз звучала уже фраза - мы не будем смотреть, как у других, иначе мы потеряем уникальность и станем как все.
Смотреть, как сделано у других - не зазорно.
Касательно именно ввода телефона. Вы же тоже наверняка пользуетесь сайтами, где авторизация по номеру телефона происходит (я просто до сих пор надеюсь, что это тоже стоит в планах). Знаете, на каких сайтах я чувствую наибольшее душевное облегчение и благодарность? Где написано: “Введите номер телефона в любом формате”!
То есть, ввожу я его со скобками или без, две-три-или-пять черточек, с плюсом или без, пишу вначале 7 или 8 или просто опускаю эту цифру - мой ввод телефона ВСЕГДА воспринимается правильно!
Ну и надо понять, что такое маска. Я не понимаю, зачем вы ее храните в базе - то есть сам номер телефона со всеми скобками и черточками - прямо в таблице БД.
Номер телефона - это ТОЛЬКО цифры. Маска - это ТОЛЬКО отображение цифрового ряда для удобного восприятия. Это даже просто хороший тон программирования - разделить данные и отображение, что позволит сразу переключиться на другое отображение, если вы вдруг решите изменить маску.
Если я что-то не понимаю, не могу правильно понять, только буду рад если вы меня поправите.

Или… @AndreyJ, может действительно проще будет уговорить @alexbranding возобновить поддержку своего модуля, ввиду отсутствия ближайшей перспективы?..

8 лайков

Увы, могу поставить только один лайк, потому эмоционально скажу тут — это вообще-то единственно правильное решение! :slight_smile:

1 лайк

Скорее всего это уже используются сторонние сервисы, по типу DaData.

А вообще, с масками телефона, в том виде, в котором они есть сейчас у CS-cart и у AB всегда будут недовольные, так как они жестко привязывают ввод телефона к маске, и если у покупателя стоит автозаполнение (у меня это около 5% покупателей), то очень часто возникают ошибки.

1 лайк

В CS Cart используется js-библиотека Inputmask, которую можно настроить под себя. Если кому не хочется ждать реализации нужной маски, то небольшой скрипт поможет.

Включить модули “Мои изменения” и в responsive/templates/addons/my_changes/hooks/index/scripts.post.tpl вставить код.

Для +380:

<script>
$(document).bind('ready ajaxComplete', function(){
    $('input[type="tel"]').inputmask({
        mask: '+380(99)999-99-99',
        placeholder: '_',
        showMaskOnHover: true
    });
});
</script>

Для +7:

<script>
$(document).bind('ready ajaxComplete', function(){
    $('input[type="tel"]').inputmask({
        mask: '+7(999)999-99-99',
        placeholder: '_',
        showMaskOnHover: true
    });
});
</script>

Почистить кэш и указанная маска будет накидываться на поле телефона в чекауте.

P.S. Для обратного звонка и одного клика тоже будет работать, если у инпута поля телефона сменить атрибут type с text на tel и удалить cm-mask-phone из class, чтоб не было конфликтов масок (в responsive/templates/addons/call_requests/views/call_requests/components/call_requests_content.tpl):

14 лайков

Подскажите, вроде все сделал по инструкции, но при первом клике в поле “Телефон” все равно сначала отображается +____________, потом когда уже вводишь несколько цифр появляется маска +380. В обратном звонке все ОК.

Проверьте, чтоб в responsive/templates/addons/call_requests/views/call_requests/components/call_requests_content.tpl правки правильные были.

Надо заменить:

<input id="call_data_{$id}_phone" class="ty-input-text-full cm-mask-phone ty-inputmask-bdi" size="50" type="text" name="call_data[phone]" value="{$call_data.phone}" data-enable-custom-mask="true" />

на

<input id="call_data_{$id}_phone" class="ty-input-text-full ty-inputmask-bdi" size="50" type="tel" name="call_data[phone]" value="{$call_data.phone}" data-enable-custom-mask="true" />

и почистить кэш.

Вот здесь сделал изменения по инструкции, можете проверить работу маски: http://dev.demo.cs-cart.ru/stores/d0bc4efe55f740e4/

1 лайк

На демо по ссылке тоже не отображается при первом вводе.
Получилось добиться нормального результата удалив {$input_meta = " cm-mask-phone"} в файле design/themes/responsive/templates/views/checkout/components/profile_fields.tpl

Но в мобильной версии с смартфона не получается номер ввести

Попробуйте задать еще такую настройку в Настройки - Внешний вид:

В хроме на десктопе и на айфоне маска работает без проблем.