Как вывести номер заказа на страницу благодарности в Opencart 2.x
CMS: Opencart 2.x
Тестировалось на стандартном шаблоне «default»
Вывод номера заказа — это хороший метод увеличения уровня доверия покупателя к интернет-магазину. Пользователь видит большую цифру на странице благодарности и понимает, что магазин крупный.
Для того, чтоб вывести номер оформленного заказа на странице благодарности (страница «спасибо за заказ») нужно:
Открываем файл:
/catalog/controller/checkout/success.php
Находим строку:
public function index()
После добавляем код:
if ( isset($this->session->data['order_id']) && ( ! empty($this->session->data['order_id'])) ) { $this->session->data['last_order_id'] = $this->session->data['order_id']; }
В этом же файле находим строку:
$this->document->setTitle($this->language->get('heading_title'));
Меняем её на:
if (! empty($this->session->data['last_order_id']) ) { $this->document->setTitle(sprintf($this->language->get('heading_title_customer'), $this->session->data['last_order_id'])); } else { $this->document->setTitle($this->language->get('heading_title'));}
В этом же фале находим строку:
$data['heading_title'] = $this->language->get('heading_title');
Меняем её на:
if (! empty($this->session->data['last_order_id']) ) { $data['heading_title'] = sprintf($this->language->get('heading_title_customer'), $this->session->data['last_order_id']); } else { $data['heading_title'] = $this->language->get('heading_title'); } if ($this->customer->isLogged()) { $data['text_message'] = sprintf($this->language->get('text_customer'), $this->url->link('account/order/info&order_id=' . $this->session->data['last_order_id'], '', 'SSL'), $this->url->link('account/account', '', 'SSL'), $this->url->link('account/order', '', 'SSL'), $this->url->link('information/contact'), $this->url->link('product/special'), $this->session->data['last_order_id'], $this->url->link('account/download', '', 'SSL')); } else { $data['text_message'] = sprintf($this->language->get('text_guest'), $this->url->link('information/contact'), $this->session->data['last_order_id']); }
Далее открываем файл:
catalog/language/russian/checkout/success.php
Где «russian» — это папка нужного языка, я показываю на примере русского языка.
Находим строку:
$_['heading_title'] = "Заказ успешно сформирован!"
Текст переменной «Заказ успешно сформирован!» может отличатся в зависимости от перевода сайта.
Но главное — нам нужно просто объявить нужную переменную в любом месте файла success.php.
Добавляем код:
$_['heading_title_customer'] = 'Ваш заказ №%s приянт!';
Где «%s» — это вывод номера заказа. Остальной текст heading_title_customer можно менять под свои нужды.
Для того, чтоб отобразить номер заказа на других языковых версиях сайта, нужно править соответствующие файлы.
Важная информация
Не стоит забывать, что шаблон страницы благодарности, а именно файл success.tpl в CMS Opencart 2, 3 один для многих страниц:
- Для страницы благодарности после оформления заказа
- Для страницы «Спасибо» после регистрации аккаунта
- и т.д.
Не вносите правки в файл success.tpl, если не хотите наплодить большое количество ошибок, которые в дальнейшем могут повлиять на работу интернет-магазина, разработанном на движке Opencart.
Данный способ является самым рациональным, не нагружает систему и не создаст ошибок.
Перед тем, как внедрять вышеописанный код обязательно сделайте резервную копию сайта или просто скачайте все файлы, которые будут правиться.
Файлы и реализация может отличаться в зависимости от темы, на котором был разработан интернет-магазин. Но, как правило, код данной страницы остается неизменным.
Финальный результат будет выглядеть примерно так:

Надеюсь, что смог помочь!
