Opencart руководство: Smart Order Success Message

После оформления заказа покупатель на экране видит стандартное сообщение opencart, о том, что заказ успешно оформлен. Но покупатели часто перезванивают в магазин с двумя вопросами:

  1. Я недавно оформил заказ, номер заказа не знаю, когда сможете привезти?
  2. Я недавно оформил заказ, но мне на почту ничего не приходило, я не знаю номер заказа. Для решения данной проблемы был опробован модуль Smart Order Success Message.

Скачиваем дистрибутив под нашу версию opencart. Распаковываем архив. Установка проводится в два шага. Из папки “Step 1” устанавливаем в Дополнения > Установщик дополнений. Обновить кеш модификаторов в Дополнения > Модификаторы (Менеджер дополнений). Потом из папки “Step 2” устанавливаем install_me.ocmod.zip также как и предыдущий. После установки в меню появится данный модуль.

Описание модуля:

  • Shows the Firstname and Order Id on success page after checkout.
  • Using vQmod or OCmod.
  • Installation by one click.

Но у нас модуль не заработал. Мы используем OCSTORE 2.3 и шаблон UNISHOP. Разбираться почему не заработало не стали. Вместо этого внесли изменения в два файла на сайте.

Результат махинаций

/catalog/language/ru-ru/checkout/success.php

<?php
// Heading
$_['heading_title']        = 'Заказ успешно сформирован!';

// Text
$_['text_basket']          = 'Корзина покупок';
$_['text_checkout']        = 'Оформление';
$_['text_success']         = 'Успешно';
$_['text_customer']        = '<br><p>Вы можете просмотреть историю заказов в <a href="%s">Личном кабинете</a>, открыв <a href="%s">Историю заказов</a>.</p><p>Если у вас возникнут какие-либо вопросы, пожалуйста, свяжитесь с нами через Whatsapp, Viber: +7 (985) 907 94 97, <a href="https://t.me/lexresist">Telegram @***</a>, <a href="mailto:***@site.com"> email: ***@site.com</a>.</p><p>Спасибо за покупку в нашем интернет-магазине!</p><h2>Номер вашего заказа: %s</h2>';
$_['text_guest']           = '<p>Ваш заказ был успешно сформирован! Информация о заказе направлена на указанный вами email адрес (если не можете найти письмо, то проверьте папку СПАМ).</p><p>Если у вас возникнут какие-либо вопросы, пожалуйста, свяжитесь с нами через Whatsapp, Viber: +7 (999) 999 9***, <a href="https://t.me/***">Telegram @***</a>, <a href="mailto:***@site.com"> email: ***@site.com</a>.</p><p>Спасибо за покупку в нашем интернет-магазине!</p><h2>Номер вашего заказа: %s</h2>';

и /catalog/controller/checkout/success.php

<?php
class ControllerCheckoutSuccess extends Controller {
    public function index() {
        $this->load->language('checkout/success');

        $order_id = $this->session->data['order_id'];

        if (isset($this->session->data['order_id'])) {
            $this->cart->clear();

            // Add to activity log
            if ($this->config->get('config_customer_activity')) {
                $this->load->model('account/activity');

                if ($this->customer->isLogged()) {
                    $activity_data = array(
                        'customer_id' => $this->customer->getId(),
                        'name'        => $this->customer->getFirstName() . ' ' . $this->customer->getLastName(),
                        'order_id'    => $this->session->data['order_id']
                    );

                    $this->model_account_activity->addActivity('order_account', $activity_data);
                } else {
                    $activity_data = array(
                        'name'     => $this->session->data['guest']['firstname'] . ' ' . $this->session->data['guest']['lastname'],
                        'order_id' => $this->session->data['order_id']
                    );

                    $this->model_account_activity->addActivity('order_guest', $activity_data);
                }
            }

            unset($this->session->data['shipping_method']);
            unset($this->session->data['shipping_methods']);
            unset($this->session->data['payment_method']);
            unset($this->session->data['payment_methods']);
            unset($this->session->data['guest']);
            unset($this->session->data['comment']);
            unset($this->session->data['order_id']);
            unset($this->session->data['coupon']);
            unset($this->session->data['reward']);
            unset($this->session->data['voucher']);
            unset($this->session->data['vouchers']);
            unset($this->session->data['totals']);
        }

        $this->document->setTitle($this->language->get('heading_title'));

        $data['breadcrumbs'] = array();

        $data['breadcrumbs'][] = array(
            'text' => $this->language->get('text_home'),
            'href' => $this->url->link('common/home')
        );

        $data['breadcrumbs'][] = array(
            'text' => $this->language->get('text_basket'),
            'href' => $this->url->link('checkout/cart')
        );

        $data['breadcrumbs'][] = array(
            'text' => $this->language->get('text_checkout'),
            'href' => $this->url->link('checkout/checkout', '', true)
        );

        $data['breadcrumbs'][] = array(
            'text' => $this->language->get('text_success'),
            'href' => $this->url->link('checkout/success')
        );

        $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/account', '', true), $this->url->link('account/order', '', true), $this->url->link('account/download', '', true), $order_id);
        } else {
            $data['text_message'] = sprintf($this->language->get('text_guest'), $order_id);
        }

        $data['button_continue'] = $this->language->get('button_continue');

        $data['continue'] = $this->url->link('common/home');

        $data['column_left'] = $this->load->controller('common/column_left');
        $data['column_right'] = $this->load->controller('common/column_right');
        $data['content_top'] = $this->load->controller('common/content_top');
        $data['content_bottom'] = $this->load->controller('common/content_bottom');
        $data['footer'] = $this->load->controller('common/footer');
        $data['header'] = $this->load->controller('common/header');

        $this->response->setOutput($this->load->view('common/success', $data));
    }
}
Опубликовано 2019-07-06 #opencart


Подписывайтесь в соц. сетях

Павел Наконечный © 2015-2019. Копирование и использование материалов только с указанием авторства и ссылкой на первоисточник.