OpenCart. Как убрать ненужные пункты ввода при регистрации и покупке.

14 марта 2016

Можно конечно воспользоваться модулем типа Simple и Quick Order, но зачем, если все можно сделать ручками. Нужно только немного поднатужиться.

Вся работа состоит в правке нескольких файлов, отвечающих за вывод пунктов и их контроллеров. Итак:

/catalog/view/theme/inomarka/template/account/register.tpl /catalog/view/theme/inomarka/template/checkout/register.tpl
​​​​​​​/catalog/view/theme/inomarka/template/checkout/guest.tpl

В этих файлах убираем ненужные пункты, например если нам необходимо убрать Last Name, то закрывает в комменты переменную, меняем:

<?php echo $entry_lastname; ?>

на

<!-- ?php echo $entry_lastname; ? -->

далее, там же, прячем инпуты и блоки, меняем:

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

на

<!--input name="lastname" type="text" value="<?php echo $lastname; ?>" -->

добавляем style="display:none;" в tr или div, по вкусу, так же убираем ненужные переносы
что бы блоки которые отображаются не распадались по высоте.

2. Правим контроллеры. Переходим:

/catalog/controller/account/register.php
/catalog/controller/checkout/register.php
​​​​​​​/catalog/controller/checkout/guest.php

Находим правило проверки:

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-&gt;request-&gt;post['lastname']) &lt; 1) || (utf8_strlen($this-&gt;request-&gt;post['lastname']) &gt; 32)) {
  //$this-&gt;error['lastname'] = $this-&gt;language-&gt;get('error_lastname');
}

Проделываем со всеми полями которые нужно закрыть. Сохраняем. Готово!