При переходе с 2 на 3 версию опенкарт я столкнулся с проблемой добавления нескольких номеров в настройках на страницу контакты. По умолчанию только одно поле активно, что не всем подойдёт. Посетив много форумов я не нашел нужной информации т.к версия Opencart3 появилась не давно и ещё не развита толком. Да и к тому же формат шаблонов уже twig а не tpl.
И так приступим к добавлению нескольких полей телефонов в Опенкарт 3
В корне идём — admin/view/template/setting и редактируем файл setting.twig
1. Пользуемся поиском находим блок и копируем его
<div>
<label for=»input-telephone»>{{ entry_telephone }}</label>
<div>
<input type=»text» name=»config_telephone» value=»{{ config_telephone }}» placeholder=»{{ entry_telephone }}» id=»input-telephone» />
{% if error_telephone %}
<div>{{ error_telephone }}</div>
{% endif %} </div>
</div>
2. Вставляете его и изменяете строку
<input type=»text» name=»config_telephone» value=»{{ config_telephone }}» placeholder=»{{ entry_telephone }}» id=»input-telephone» />
на
<input type=»text» name=»config_telephone2» value=»{{ config_telephone2 }}» placeholder=»{{ entry_telephone }}» id=»input-telephone» />
Должно получиться так
<div>
<label for=»input-telephone»>{{ entry_telephone }}</label>
<div>
<input type=»text» name=»config_telephone» value=»{{ config_telephone }}» placeholder=»{{ entry_telephone }}» id=»input-telephone» />
{% if error_telephone %}
<div>{{ error_telephone }}</div>
{% endif %} </div>
</div>
<div>
<label for=»input-telephone»>{{ entry_telephone }}</label>
<div>
<input type=»text» name=»config_telephone2″ value=»{{ config_telephone2 }}» placeholder=»{{ entry_telephone }}» id=»input-telephone» />
{% if error_telephone %}
<div>{{ error_telephone }}</div>
{% endif %} </div>
</div>
Теперь идем в admin/controller/setting/ и находим в файле setting.php
1.Нам нужно блок
if (isset($this->request->post[‘config_telephone’])) {
$data[‘config_telephone‘] = $this->request->post[‘config_telephone‘];
} else {
$data[‘config_telephone‘] = $this->config->get(‘config_telephone‘);
}
Копируем и вставляем под ним,при этом изменяем значения
if (isset($this->request->post[‘config_telephone2’])) {
$data[‘config_telephone2‘] = $this->request->post[‘config_telephone2‘];
} else {
$data[‘config_telephone2‘] = $this->config->get(‘config_telephone2‘);
}
2.Следующий ищем блок
if (isset($this->error[‘telephone’])) {
$data[‘error_telephone’] = $this->error[‘telephone’];
} else {
$data[‘error_telephone’] = »;
}
Копируем и вставляем под ним,при этом изменяем значения
if (isset($this->error[‘telephone2’])) {
$data[‘error_telephone’] = $this->error[‘telephone2’];
} else {
$data[‘error_telephone’] = »;
}
На этом мы закончили работу с административной частью добавления дополнительного номера.
Теперь внесём изменения для отображения дополнительного номера на странице контакты
Переходим в catalog/controller/information/ и изменяем файл contact.php
1. Находим строку
$data[‘telephone’] = $this->config->get(‘config_telephone’);
2. Добавляем за ней
$data[‘telephone2’] = $this->config->get(‘config_telephone2’);
После переходим в catalog/view/theme/*/template/information/ и редактируем файл contact.twig
1. Нам нужна строка {{ telephone }}<br />
2. После этой строки добавляем {{ telephone2 }}<br />
На этом мы полностью внесли изменения для отображения и добавления нескольких номеров в Опенкарт 3.
не работает! В админке не видно строки для второго номера телефона
Где именно вы смотрите?
Дополнительные номера добавляются в (Система -> Настройки -> Редактировать -> и вкладке магазин)
В контактах второй телефон появился. А возможно добавить его в шапку сайта?
Да можно. Нужно знать какой у Вас шаблон! Ссылку на Ваш сайт можно? Это он angler.kiev.ua ?
Для своего обучения создал сайт: shpakosonyk.000webhostapp.com
Версия какая?
3.0.2.0
В редакторе шаблонов добавил строку:
{{ «050-755-33-71» }}.
Номер телефона появился. Но если вместо «050-755-33-71» писать telephone2, то номер не подтягивается.
Спасибо за информацию.