Необязательные поля при регистрации в PrestaShop 1.5

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

Для примера использую версию 1.5.6.1. Начнем с контроллера, который несет ответственность за заполнение полей при регистрации-это файл Address.php, находящийся в директории ваш_сайт/classes/ . За обязательность или необязательность полей отвечает часть кода

 

Строки имеющие ‘required’ => true обозначают включение обязательного заполнение полей. Казалось бы все решение состоит в задании значения false для полей чтобы отключить проверку(валидацию), что в принципе мы и сделаем-меняем true на false во всех строках. Тут есть нюанс, если в будущем магазин будет обновляться на новые версии, то нужно одноименный файл Address.php с изменениями поместить в директорию ваш_сайт/override/classes/ , если такого файла там нет, то необходимо его создать. Для версий до 1.5.3.1 ничего больше не требуется, а для версий выше нужно удалить файл ваш_сайт/cache/class_index.php.

Переводим режим заказов в один шаг (настройки->заказы), именно так я сделал у себя на сайте, так
как это намного упрощает процесс регистрации и заказ товаров для зарегистрированных пользователей.
Гостевую покупку отключаем. Настройки->клиенты тип процесса регистрации-только создание учетной
записи. Номер телефона откллючаем.
Переходим во фронт-офис и пробуем добавить товар в корзину как незарегистрированный пользователь.
Не заполняя поля регистрации для нового клиента жмем кнопку сохранить. И, как не досадно,
получаем ошибку
error
Все дело в том, что эти поля проходят дополнительную проверку. Но общем мы добились большого
результата. И теперь в файле order-opc-new-account.tpl вашего шаблона можно скрыть остальные поля
с помощью hidden или вообще их закомментировать. Так как ленюсь писать много, то выложу готовый
файл дефолтного шаблона с комментариями и вариантами использования полей.

 

P.S. Прячем Показываем поля формы с помощью jQuery
Не удержался.
У меня давно в закладках лежал этот материал и я решил его опробовать. Что получилось смотрите на тестовом сайте http://fh7914in.bget.ru/
Как это работает.
Добавляем jQuery код в файл order-opc-new-account.tpl

 

Создаем дополнительное поле с выбором регистрации тегом select

 
И помещаем необязательные поля в div с id=”otherField”, id=”otherField1″, id=”otherField2″ и т.д. со стилем style=”display:none;”
готовый файл для версии 1.5.6.1

Вот и все,  до встречи на webnewbie.ru

Comments (21)

Артур
22.03.2014 - 14:09 / Ответить

Евгений, а как сделать, чтобы в определённых полях уже стояли значения по умолчанию с возможностью, при желании, их изменить?

22.03.2014 - 16:16 / Ответить

Как менять значения указано в комментариях кода файла order-opc-new-account.tpl. Тут на сайте плохо видно, скопируйте код и посмотрите его в Notepad++ сохранив с расширением tpl. А менять эти значения клиент может отредактировав все данные в личном кабинете.

Артур
22.03.2014 - 17:37 / Ответить

Может я неудачно выразился. Я имею ввиду, когда клиент видит форму в которой, например, поле “Город” уже заполнено (по умолчанию) значением “Архангельск”. Если клиент из другого города, он может переписать это значение на своё…

22.03.2014 - 18:31 / Ответить

А вы сначала попрактикуйтесь, а потом вопросы задавайте. Отвечу коротко-может.

лена
01.04.2014 - 22:49 / Ответить

Сделала,как написано. выпадают ошибки :
Имеется 7 ошибка(и):
Вы должны указать по крайней мере один номер телефона
Страна не может быть загружена с address->id_country
id_country необходим.
фамилия необходим.
имя необходим.
город необходим.
мобильный телефон необходим.

02.04.2014 - 02:25 / Ответить

Судя по ошибке Вы ничего не сделали, даже номер телефона в настройках магазина не отключили.

лена
02.04.2014 - 18:01 / Ответить

почитала внимательно и все получилось. Спасибо!!!

Кирилл
22.10.2014 - 23:12 / Ответить

Возникает такая же ошибка при заполнении полей. Поля скрывать не требуется, нужны все, но при их заполнении появляются ошибки, как будто они не заполнены.

22.10.2014 - 23:34 / Ответить

В данном примере поля нужно скрыть, если читали внимательно статью, то кроме скрытия полей, заполняются значения value

лена
05.04.2014 - 01:31 / Ответить

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

05.04.2014 - 06:15 / Ответить

Вопрос не в тему статьи. И если бы Вы поискали в интернете, то узнали бы , что для этого надо изменить шаблон guest-tracking.tpl, изменить контроллер OrderConfirmationController.php в зависимости от подключенных платежных модулей. Я рекомендую отключить гостевую покупку, если она Вам очень нужна и других альтернатив нет, то обратитесь к платным специалистам.

Николай
16.06.2014 - 19:15 / Ответить

Евгений, подскажите: если отключить проверку индекса в админке (в настройках страны) предложенный Вами вариант будет корректно функционировать?

06.07.2014 - 12:24 / Ответить

проверку индекс в админке не отключите. Индекс можно задать любой и скрыт его, перечитайте еще раз статью

Влад
04.07.2014 - 15:50 / Ответить

Привет.
Сделал все по Вашим рекомендациям.
Имя и Фамилию хотел сделать необязательными.
Пишет при регистрации:
Обнаружено 2 ошибок
фамилия необходим.
имя необходим.

Значит, без имени и фамилии никак, или что-то не сделал?
версия 1.5.6.2.
Спасибо.

06.07.2014 - 12:12 / Ответить

Не внимательно читали статью, имя и фамилия обязательные поля так как проходят дополнительную валидацию

Виталий
15.09.2014 - 16:51 / Ответить

Не подскажете как в версии 1.6.0.9 отключить необходімость вибирать область
This country requires you to choose a State.

18.09.2014 - 12:54 / Ответить

В примере кода есть комментарии, можете скопировать код в программу Notepad++ и там вы увидите комментарии отдельным цветом.

Андрей
09.11.2014 - 21:05 / Ответить

Евгений, как ни стараюсь, не убирается –

“There is 2 Error(s):
Страна не может быть загружена с address->id_country
Неверный выбор страны”

Все уже перепробовал, помогите, пожалуйста!

09.11.2014 - 21:24 / Ответить

Смотрите в примере значение value

Андрей
09.11.2014 - 22:16 / Ответить

Евгений, поподробнее, пожалуйста. Уже часов 12 сижу. Уже все перешерстил. Никак не получается. Выручайте, пожалуйста. Версия PrestaShop™ 1.6.0.4

09.11.2014 - 22:46 / Ответить

Статья на писана для версии 1.5.х, но в принципе большой разницы нет. Попробуйте скопировать код примера и открыть в с помощью редактора Noteoad++ комментарии будут выделены зеленым цветом. Если и это не поможет прошу обращаться через форму обратной связи http://webnewbie.ru/contact-us. А то получается как в анекдоте про легендарных полководца Чапаева и и его помощника Петьку.
-на бронепоезде противника установлена рация, – говорит Василий Иванович.
-рация на транзисторах или на тиристорах?, – спрашивает Петька.
-Для особо тупых, повторяю, рация на бронепоезде, -отвечает Чапаев

Leave a Reply