Долго пробовал и тестировал почему проблема возникает и наконец-то добрался до сути. Возникает она на всех компьютерах, нужно только повторить алгоритм.
При оформлении заказа и выборе Мгновенный заказ нужно ввести Почту, Имя, Фамилию и далее город, адрес и телефон. Поля Город и Адрес не обязательные.
Телефон также не обьязательное поле (значений 'required' => false в строках с телефоном я не ставил), в любом случае нужно ввести хоть 1 номер телефона. Ошибка возникает когда я заполняю все поля, ввожу номер телефона и сохраняю пользователя, а потом хочу внести какие-то изменения в любое из 6-ти заполненых полей (изменить почту, имя, фамилию, добавить или внести информацию в поле Адрес или Город). И при попытке сохранить выводит ошибку "Телефон неверный".
Подскажите, пожалуйста, как исправить эту ошибку, чтобы я ее не получал и не было проверки на телефонный номер.
Очень потихоньку продвигаюсь.
Оказалось, что проблема в неправильно закомментированных строчках в файле order-opc-new-account.tpl ,а имеено:
{if isset($one_phone_at_least) && $one_phone_at_least}
<p class="inline-infos required is_customer_param">{l s='You must register at least one phone number.'}</p>
{/if}
<p class="text is_customer_param">
<label for="phone">{l s='Home phone'}</label>
<input type="text" class="text" name="phone" id="phone" value="{if isset($guestInformations) && $guestInformations.phone}{$guestInformations.phone}{/if}" />
</p>
<p class="{if isset($one_phone_at_least) && $one_phone_at_least}required {/if}text">
<label for="phone_mobile">{l s='Mobile phone'}{if isset($one_phone_at_least) && $one_phone_at_least} <sup>*</sup>{/if}</label>
<input type="text" class="text" name="phone_mobile" id="phone_mobile" value="{if isset($guestInformations) && $guestInformations.phone_mobile}{$guestInformations.phone_mobile}{/if}" />
</p>
Если комментрирую весь блок - пропадают все поля ввода телефонов.
Если только первую часть - пропадает строка с информацией, что нужно ввести минимум 1 номер телефона
Если первую и вторую часть - пропадает и строка и поле ввода Домашнего телефона (и в форме мгновенного заказа и в форме регистрации при оформлении заказа), что очень хорошо, но в этом случае почему-то начинает возникать ошибка при повторном сохранении гостевого аккаунта (если нужно внести изменения какие-то например
"Телефон неверный".
Если же закомментировать
{if isset($one_phone_at_least) && $one_phone_at_least}
<p class="inline-infos required is_customer_param">{l s='You must register at least one phone number.'}</p>
{/if}
Тогда все красиво, и все работает и сохраняется повторно, но строка ввода Домашнего телефона есть в форме регистрации (не путайте с мгновенным заказом). Если же комментировать второй абзац - она пропадает и начинает появляться ошибка при повторном сохранении или изменении данных.
Выручайте, как исправить ситуацию.
UPDATE: Наконец-то удалось решить проблему.
Снял комментирование с блока:
<p class="text is_customer_param">
<label for="phone">{l s='Home phone'}</label>
<input type="text" class="text" name="phone" id="phone" value="{if isset($guestInformations) && $guestInformations.phone}{$guestInformations.phone}{/if}" />
</p>
И заменил
<p class="text is_customer_param">
на
<p class="text hidden">
Строка пропала, сохранение без ошибок. Если решение заведомо неправильное и не рациональное и чем-то чревато - поправьте меня пожалуйста.