Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


akus

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));
}
}
}

Змінено користувачем akus
Надіслати
Поділитися на інших сайтах


  • 4 weeks later...

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

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

 

например, 

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

 

 

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

Надіслати
Поділитися на інших сайтах

  • 3 years later...
В 19.08.2016 в 15:31, agriboed сказал:

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

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

 

например, 

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

 

 

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

 

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

Надіслати
Поділитися на інших сайтах


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;?> и больше не будет ошибки при обновлении страницы.

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

Надіслати
Поділитися на інших сайтах

  • 3 weeks later...
В 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;?> и больше не будет ошибки при обновлении страницы.

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

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

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

Надіслати
Поділитися на інших сайтах


  • 1 month later...

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

если человек был авторизован и потом вышел, то на странице сайт.ру/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

тоже .... 

Змінено користувачем igorfelix
Надіслати
Поділитися на інших сайтах


  • 3 months later...
В 08.03.2020 в 10:07, igorfelix сказал:

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

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

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

Надіслати
Поділитися на інших сайтах


  • 7 months later...

Здравствуйте. Помогите, пожалуйста, вывести на страницу заказа почту покупателя. Пробую  $this->session->data['email'], но ошибка что нет такого значения. Как оно точно называется в сессии? Спасибо

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.