Jump to content
akus

[Решено] Номер заказа на странице sucsess opencart 2.x

Recommended Posts

Хочу чтобы после оформления заказа клиент видел на странице "Ваш заказ оформлен!" сообщение: "Ваш заказ №ХХ оформлен!"

 

Кто более менее знаком с движком opencart подскажите, как можно вывести номер заказа на страницу success не прибегая к редактированию success.tpl, а прибегая к редактированию языкового файла?

 

Все мануалы которые я видел - относятся не к opencart 2.x а значит что уже не актуальны.

 

Итак, вот что мы имеем: 

 

catalog/controller/checkout/success.php

 

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

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

// Add to activity log
$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', '', 'SSL')
);

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

$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');

if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/success.tpl')) {
$this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/common/success.tpl', $data));
} else {
$this->response->setOutput($this->load->view('default/template/common/success.tpl', $data));
}
}
}

Edited by akus

Share this post


Link to post
Share on other sites

передайте в шаблон 

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

 

например, 

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

 

 

Ну а дальше в шаблоне в любом месте, где вам нужно <?php echo $order_id;?>

Share this post


Link to post
Share on other sites
В 19.08.2016 в 15:31, agriboed сказал:

передайте в шаблон 

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

 

например, 

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

 

 

Ну а дальше в шаблоне в любом месте, где вам нужно <?php echo $order_id;?>

 

Обновите страницу после заказа, и увидите ошибки, что переменная не найдена. Кто знает как устранить ? 

Share this post


Link to post
Share on other sites
1 час назад, igorfelix сказал:

Обновите страницу после заказа, и увидите ошибки, что переменная не найдена. Кто знает как устранить ? 

 

Перед 

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

Вставьте 

$data['order_id'] = '';

if (isset($this->session->data['art_order_id'])) {
    $data['order_id'] = $this->session->data['art_order_id'];
}

Перед

unset($this->session->data['shipping_method']);

Вставьте

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

это все в catalog/controller/checkout/success.php

 

И как выше писали в шаблоне выведите <?php echo $order_id;?> и больше не будет ошибки при обновлении страницы.

Номер заказа будет сохраняться в другой переменной в сессии. 

Share this post


Link to post
Share on other sites
В 22.02.2020 в 02:35, Bn174uk сказал:

 

Перед 

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

Вставьте 

$data['order_id'] = '';

if (isset($this->session->data['art_order_id'])) {
    $data['order_id'] = $this->session->data['art_order_id'];
}

Перед

unset($this->session->data['shipping_method']);

Вставьте

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

это все в catalog/controller/checkout/success.php

 

И как выше писали в шаблоне выведите <?php echo $order_id;?> и больше не будет ошибки при обновлении страницы.

Номер заказа будет сохраняться в другой переменной в сессии. 

спасибо за ответ. а я сделал по другому. если страницу обновили, то переменную скрыл. 

но за ответ спасибо, пригодится 

Share this post


Link to post
Share on other sites

Нашел еще недочет..

если человек был авторизован и потом вышел, то на странице сайт.ру/logout/

будет ошибка

 

Notice: Undefined variable: order_id in /var/www/www-root/data/www/вашсайт.ру/catalog/view/theme/default/template/common/success.tpl on line 23
Вы вышли из вашего личного кабинета.
Ваша корзина покупок была сохранена. Она будет восстановлена при следующем входе в личный кабинет.

и еще на странице /index.php?route=affiliate/success

тоже .... 

Edited by igorfelix

Share this post


Link to post
Share on other sites
В 08.03.2020 в 10:07, igorfelix сказал:

спасибо за ответ. а я сделал по другому. если страницу обновили, то переменную скрыл. 

но за ответ спасибо, пригодится 

подскажите пожалуйста, как вы скрыли код если страница обновилась?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Similar Content

    • By OtezVikentiy
      Фоновая регистрация пользователя в момент заказа
      Любой аудитор интернет магазина советует делать фоновую регистрацию пользователя. Этот модуль как раз позволяет Вам это сделать!

      Модуль регистрирует учетную запись для нового клиента в момент оформления заказа, на основании тех данных, которые клиент уже ввел в форму. Обязательное поле - это email. Пароль генерируется автоматически случайным образом и отправляется пользователю на почту. Помимо этого модуль автоматически прикрепляет к учетной записи пользователя только что оформленный заказ. Это позволяет пользователю сразу видеть, что его заказ находится в обработке, что он всё сделал правильно и в последствии отслеживать статус заказа.
      В случае, если пользователь осуществляет повторный заказ, указав ту же самую почту, что и в прошлый раз, то новый заказ будет привязан к первично созданной учетной записи. Новая учетка создана не будет, ошибок в этом случае так же не будет.
       
      Основные функции, возможности и настройки:
      - Возможность автоматически в фоновом режиме регистрировать учетную запись клиента.
      - Возможность генерировать пароль случайным образом
      - Возможность включить модуль только для определенных групп пользователей
      - Поддержка нескольких магазинов
      - Поддержка нескольких языков
      - Не перезаписываются и не заменяются основные файлы
      - Возможность включить или отключить модуль в любое время
      - Простая и легкая установка
       
      Совместимость:
      - OpenCart 3.0.*
      - OpenCart 2.3.*
      - OCStore 3.0.*
      - OCStore 2.3.*
       
      Требования:
      - php 5.6+
      - ionCube
      Языки:
      - Русский
      - Английский
       
      Инструкция по установке:
      - Модуль устанавливается стандартным образом.
       
      Дополнительные инструкции после установки:
      - отсутствуют
       
      Техподдержка:
      email - [email protected]
      telegram - @OtezVikentiy
       
      Лицензирование:
      - лицензия выдаётся на 1 домен + любое количество поддоменов.
      Прочее:
      - Работоспособность модуля проверяется на только что установленной системе без участия других модулей
      - Конфликты с другими модулями не являются критической ошибкой в самом модуле и требуют дополнительной кастомизации (отладки), что обычно ложится на плечи разработчика магазина.
      - Претензии по ошибкам, возникшим в результате конфликта с другими модулями/шаблонами в бесплатную поддержку модуля не входят.
      Что зашифровано в модуле:
      - Контроллер админки модуля
       
      Покупая и устанавливая данный программный продукт вы безоговорочно и полностью соглашаетесь со всеми пунктами изложенными в следующих документах:
      Политика поддержки
      Лицензионное соглашение
    • By OtezVikentiy
      300.00 руб
      Скачать/Купить дополнение


      Фоновая регистрация в момент заказа

      Фоновая регистрация пользователя в момент заказа
      Любой аудитор интернет магазина советует делать фоновую регистрацию пользователя. Этот модуль как раз позволяет Вам это сделать!

      Модуль регистрирует учетную запись для нового клиента в момент оформления заказа, на основании тех данных, которые клиент уже ввел в форму. Обязательное поле - это email. Пароль генерируется автоматически случайным образом и отправляется пользователю на почту. Помимо этого модуль автоматически прикрепляет к учетной записи пользователя только что оформленный заказ. Это позволяет пользователю сразу видеть, что его заказ находится в обработке, что он всё сделал правильно и в последствии отслеживать статус заказа.
      В случае, если пользователь осуществляет повторный заказ, указав ту же самую почту, что и в прошлый раз, то новый заказ будет привязан к первично созданной учетной записи. Новая учетка создана не будет, ошибок в этом случае так же не будет.
       
      Основные функции, возможности и настройки:
      - Возможность автоматически в фоновом режиме регистрировать учетную запись клиента.
      - Возможность генерировать пароль случайным образом
      - Возможность включить модуль только для определенных групп пользователей
      - Поддержка нескольких магазинов
      - Поддержка нескольких языков
      - Не перезаписываются и не заменяются основные файлы
      - Возможность включить или отключить модуль в любое время
      - Простая и легкая установка
       
      Совместимость:
      - OpenCart 3.0.*
      - OpenCart 2.3.*
      - OCStore 3.0.*
      - OCStore 2.3.*
       
      Требования:
      - php 5.6+
      - ionCube
      Языки:
      - Русский
      - Английский
       
      Инструкция по установке:
      - Модуль устанавливается стандартным образом.
       
      Дополнительные инструкции после установки:
      - отсутствуют
       
      Техподдержка:
      email - [email protected]
      telegram - @OtezVikentiy
       
      Лицензирование:
      - лицензия выдаётся на 1 домен + любое количество поддоменов.
      Прочее:
      - Работоспособность модуля проверяется на только что установленной системе без участия других модулей
      - Конфликты с другими модулями не являются критической ошибкой в самом модуле и требуют дополнительной кастомизации (отладки), что обычно ложится на плечи разработчика магазина.
      - Претензии по ошибкам, возникшим в результате конфликта с другими модулями/шаблонами в бесплатную поддержку модуля не входят.
      Что зашифровано в модуле:
      - Контроллер админки модуля
       
      Покупая и устанавливая данный программный продукт вы безоговорочно и полностью соглашаетесь со всеми пунктами изложенными в следующих документах:
      Политика поддержки
      Лицензионное соглашение Добавил OtezVikentiy Добавлено 09.09.2020 Категория Модули Системные требования php5.6+, ionCube Метод активации По запросу в ЛС
      По запросу на почту
      По емейлу Ioncube Loader Требуется OpenCart 3.0
      2.3 ocStore 3.0
      2.3 OpenCart.Pro, ocShop Обращение к серверу разработчика Нет Старая цена 500  
    • By spectre
      300.00 руб
      Скачать/Купить дополнение


      Другие заказы покупателя 1.5.x-2.x-3.x
      Простой модификатор, выводит в информации о заказе предыдущие заказы этого покупателя (сверка по телефону, email и id покупателя)
      Добавил spectre Добавлено 09.10.2020 Категория Прочее Системные требования Метод активации Автоматическая активация Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0
      1.5.6.4
      1.5.6.3
      1.5.6.2
      1.5.6.1
      1.5.6
      1.5.5.1
      1.5.5
      1.5.4.1
      1.5.3.1 ocStore 3.0
      2.3
      2.2
      2.1
      1.5.5.1.2
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1
      1.5.3.1
      1.5.2.1
      1.5.1.3 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х
      OcShop 1.5.6.4.х Обращение к серверу разработчика Нет Старая цена 0  
    • By chukcha
      Расширение позволяет добавить заметку о заказе, о клиенте, который сделал заказ.
      Каждый заказ - уникален. И не всегда можно вспомнить подробности, например причину отмены, или задержку с оформлением
      Каждый клиент уникален. Есть адекватные клиенты, есть "глухие", а есть отмороженные, которых не хочется обслуживать (например - не забрал посылку, не доплатил и т.п.)
      Цель модуля - напомнить об этом
      Покупатель идентифицируется по email, телефону, или регистрации. Например, покупатель не залогинился, но указал номер телефона или email, а на этого покупателя есть досье
      Демо:
      http://demo2.slasoft.kharkov.ua/admin/index.php?route=sale/order
      demo / demo
      Не показывается, не отображаются, или перестал работать другой модуль) - допил/адаптация, в зависимости от возникшей проблемы, платный. Т.к. привязка идет к стандартным шаблонам, и контроллерам.
    • By chukcha
      450.00 руб
      Скачать/Купить дополнение


      Комментарии к заказу и покупателям
      Расширение позволяет добавить заметку о заказе, о клиенте, который сделал заказ.
      Каждый заказ - уникален. И не всегда можно вспомнить подробности, например причину отмены, или задержку с оформлением
      Каждый клиент уникален. Есть адекватные клиенты, есть "глухие", а есть отмороженные, которых не хочется обслуживать (например - не забрал посылку, не доплатил и т.п.)
      Цель модуля - напомнить об этом
      Покупатель идентифицируется по email, телефону, или регистрации. Например, покупатель не залогинился, но указал номер телефона или email, а на этого покупателя есть досье
      Демо:
      http://demo2.slasoft.kharkov.ua/admin/index.php?route=sale/order
      demo / demo
      Не показывается, не отображаются, или перестал работать другой модуль) - допил/адаптация, в зависимости от возникшей проблемы, платный. Т.к. привязка идет к стандартным шаблонам, и контроллерам.
      Добавил chukcha Добавлено 21.05.2016 Категория Прочее Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1 ocStore 3.0
      2.3
      2.1 OpenCart.Pro, ocShop Обращение к серверу разработчика Нет Старая цена 0  
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.