il37

Как удалить обязательные поля оформления заказа v 1.5.1.3 ?

Рекомендуемые сообщения

il37    0

В инете есть мануалы по старым версиям. Но для новой версии движка 1.5.1.3 они не подходят.

Очень расчитываю на помощь знатоков.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Florist    4

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

Я удалял обязательное поле Фамилия. Буду пример приводить на этом.

Надо найти в контроллерах примерно следующие поля:

  	 if ((utf8_strlen($this->request->post['lastname']) < 1) || (utf8_strlen($this->request->post['lastname']) > 32)) {
          $this->error['lastname'] = $this->language->get('error_lastname');
       }

Закомментировать их или удалить. Я комментировал. Получается вот так:

/*
   if ((utf8_strlen($this->request->post['lastname']) < 1) || (utf8_strlen($this->request->post['lastname']) > 32)) {
		  $this->error['lastname'] = $this->language->get('error_lastname');
    } 
*/
/* Условие, если фамилия меньше 1 символа и больше 32, то выводится ошибка - как раз проверку этого условия и убираем из всех контроллеров  */

Из файлов вывода шаблона *.tpl надо изменить примерно следующее. Ищем код такого рода:

	  <td><span class="required">*</span> <?php echo $entry_lastname; ?></td>
	  <td><input type="text" name="lastname" value="<?php echo $lastname; ?>" />
	    <?php if ($error_lastname) { ?>
	    <span class="error"><?php echo $error_lastname; ?></span>
	    <?php } ?></td>

Здесь надо убрать красную звездочку и проверку ввода, получаем следующее:

	  <td> <?php echo $entry_lastname; ?></td>
	  <td><input type="text" name="lastname" value="<?php echo $lastname; ?>" />

Т.е. я на самом деле в этих во всех нижеприведенных файлах поиском по документу(ctrl+f) искал lastname и убирал функции проверок и вывода красной звездочки.

В некоторых файлах(например, в catalog/view/theme/default/template/checkout/checkout.tpl) проверка ввода поля реализована через JavaScript, код находится вроде этого:

           	 if (json['error']['lastname']) {
                   $('#payment-address input[name=\'lastname\'] + br').after('<span class="error">' + json['error']['lastname'] + '</span>');
               }   

Его убираем просто полностью.

Вносил следующие изменения в файлы:

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

catalog/controller/account/edit.php

catalog/controller/account/register.php

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

catalog/controller/checkout/checlout.php

catalog/controller/checkout/guest.php

catalog/controller/checkout/guest_shipping.php

catalog/controller/checkout/payment_address.php

catalog/controller/checkout/register.php

catalog/controller/checkout/shipping_address.php

Если своя тема, то вместо папки template надо смотреть свою папку с темой, если там нет этих файлов, то в стандартном шаблоне изменять.

Убираем пометку об обязательности поля при регистрации аккаунта и в настройках аккаунта покупателя

/catalog/view/theme/default/template/account/edit.tpl

/catalog/view/theme/default/template/account/register.tpl

Убираем пометку об обязательности поля при оформление заказа

/catalog/view/theme/default/template/checkout/checkout.tpl

/catalog/view/theme/default/template/checkout/guest.tpl

/catalog/view/theme/default/template/checkout/guest_shipping.tpl

/catalog/view/theme/default/template/checkout/payment_address.tpl

/catalog/view/theme/default/template/checkout/register.tpl

/catalog/view/theme/default/template/checkout/shipping_address.tpl

Теперь нужно в админки так же убрать обязательность поля Фамилия:

Убираем так же пометки:

/admin/view/template/sale/order_form.tpl

/admin/view/template/sale/customer_form.tpl

/admin/view/template/user/user_form.tpl

Убираем проверку:

admin/controller/user/user.php

admin/controller/sale/customer.php

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

Но мне именно симплчекауты не подходят, т.к. пользователь не попадает в базу ОпенКарта вроде бы как зарегистрированные, а хотелось попросту упростить момент регистрации для клиентов. И товар в магазине у меня такой, что большинство клиентов остаются постоянными покупателями надолго.

P.S. на чистоту эксперимента не претендую, я не программист, поэтому может набардачил где, как говорится критика приветствуется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
novised    0

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

 

p.s. Извините, просто накипело...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
RlNeo    0

Приветствую, Уважаемые. Напишите, пожалуйста, кто и как справился с задачей. Хочу попробовать изменить код не прибегая к покупке https://opencartforum.com/files/file/324-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C-simple-%D1%83%D0%BF%D1%80%D0%BE%D1%89%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F-%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D0%B8-%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7/, хотя, не скрою, уже есть такие мысли. Кто пробовал предлагаемый выше модуль, опишите, насколько Вам помогло это решение? Плюсы, минусы, гибкость, простота настройки... Хочется многое "обязательное" убрать.

Заранее благодарю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу