Автор Тема: Гостевое оформление заказа  (Прочитано 17232 раз)

31 Август 2012, 12:15:50
  • Новичок
  • *
  • Сообщений: 3
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день! Знаю, что эта тема поднималась уже не раз, но конкретного рабочего ответа так и не нашел.
У меня включен режим "гостевой заказ". При этом я решил убрать там все ненужные поля фамилия, страна, город.
В файле order-opc-new-account.tpl скрываю все эти поля: делаю input type = hidden value =....
Добился появления правильной формы на сайте, но при попытке сделать заказ - ошибка - ввести поля такие то.
Если стоит input type="text", то даже при заполненном value все работает. Как только делаешь input type="hidden", сразу сыплются ошибки. При чем все это нормально сработало в authentication.tpl, а вот в order-opc-new-account.tpl не хочет. Очень надеюсь на вашу помощь.  Спасибо!
31 Август 2012, 18:23:23
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Поля прятать нельзя, нужно прятать блок или сдвинуть за пределы окна браузера.
06 Сентябрь 2012, 10:55:49
Ответ #2
  • Новичок
  • *
  • Сообщений: 3
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Поля прятать нельзя
Поля прятать можно. Всего-то надо было подправить строчки
$('#opc_account_form input:visible').each(function() {

$('#opc_account_form select:visible').each(function() {
в файле order-opc.js.
Проблема решена.
09 Октябрь 2012, 18:42:29
Ответ #3
  • Новичок
  • *
  • Сообщений: 20
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Поля прятать нельзя
Поля прятать можно. Всего-то надо было подправить строчки
$('#opc_account_form input:visible').each(function() {

$('#opc_account_form select:visible').each(function() {
в файле order-opc.js.
Проблема решена.
заранее извиняюсь, нашел у себя точно такие же строчки.
Так как их подправит то?  :-X

А то поля сами стали hidden, но ошибки по незаполненным полям выдает.
10 Октябрь 2012, 10:22:00
Ответ #4
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102503
  • Репутация: +34219/-0
    • Просмотр профиля
Замените visible на hidden.
10 Октябрь 2012, 12:35:23
Ответ #5
  • Новичок
  • *
  • Сообщений: 20
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
в каком шаблоне в 4-й версии можно поставить id страны value по умолчанию, что бы не выбирать.
А то ставлю в oprder-opc-new-account  value=216 например, а оно мне все равно выдает что не ввел id страны(

вот так:
<label for="id_country">{l s='Country'}</label>

<select name="id_country" id="id_country">
<option value="216" selected="selected" >216</option>

</select>
10 Октябрь 2012, 16:00:48
Ответ #6
  • Новичок
  • *
  • Сообщений: 20
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Оказалось дело в том...
Что бы поле страна спрятать пришлось его все таки в админке добавить...
11 Октябрь 2012, 18:02:14
Ответ #7
  • Новичок
  • *
  • Сообщений: 23
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый вечер!

Расскажите пожалуйста подробнее как в 1.5 убрать все лишние поля как при регистрации, так и при гостевом оформлении заказа, а также сделать убранные поля необязательными, чтобы не появлялись ошибки:

Имеется 3 ошибка(и):
id страны необходимо.
адрес1 необходимо.
город необходимо.

Заранее спасибо!
11 Октябрь 2012, 21:58:55
Ответ #8
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Также как и в версии 1.4. Выше все написано.
12 Октябрь 2012, 12:01:39
Ответ #9
  • Новичок
  • *
  • Сообщений: 23
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
Поля прятать можно. Всего-то надо было подправить строчки
$('#opc_account_form input:visible').each(function() {

$('#opc_account_form select:visible').each(function() {
в файле order-opc.js.
Проблема решена.
Сделал.

Замените visible на hidden.
Сделал.

Изменений не обнаружил. Что ещё нужно сделать?
12 Октябрь 2012, 12:02:42
Ответ #10
  • Новичок
  • *
  • Сообщений: 23
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Также как и в версии 1.4. Выше все написано.
Вы не могли бы поподробнее объяснить как это делать? Из переписки выше не понятно, что делать после редактирования файла order-opc.js

Заранее большое спасибо!!!
12 Октябрь 2012, 13:15:26
Ответ #11
  • Новичок
  • *
  • Сообщений: 20
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Что касается обязательных полей их можно убрать в файле Address.php, из строки

protected    $fieldsRequired = array('id_country', 'alias', 'lastname', 'firstname', 'address1', 'city');

Но если убирать id_country то выдает ява ошибку, при валидации наверное, так что лучше оставить)

Ну а скрыть у меня например получилось в админке, элементарно убрать из перечня...
12 Октябрь 2012, 13:59:21
Ответ #12
  • Новичок
  • *
  • Сообщений: 23
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Что касается обязательных полей их можно убрать в файле Address.php, из строки

protected    $fieldsRequired = array('id_country', 'alias', 'lastname', 'firstname', 'address1', 'city');

Но если убирать id_country то выдает ява ошибку, при валидации наверное, так что лучше оставить)

Ну а скрыть у меня например получилось в админке, элементарно убрать из перечня...
Это наверно акутально для версии 1.4.x?
В 1.5 в файле Address.php всего одна строка, ссылающаяся на AddressController.php, но там вышеупомянутой строки также не нашёл.
13 Октябрь 2012, 12:18:18
Ответ #13
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102503
  • Репутация: +34219/-0
    • Просмотр профиля
Все советы актуальны и для версии 1.5.
Только рассположение файлов меняется.
Нужно не просто скрывать поля, а присвоить им какие-то значения. Например,
<input type="hidden" name="state" id="state" value="код страны из вашей бд, например у меня для  России код 247" />
29 Апрель 2013, 17:46:13
Ответ #14
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
а как подключить это гостевое оформление? и как в бд найти код страны?