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

%S не отображается номер заказа на странице success


borborich

Recommended Posts

1 минуту назад, borborich сказал:

куда копать?

языковые файлы, вывод в шаблон, контроллере

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

12 минут назад, sasha3337774 сказал:

языковые файлы, вывод в шаблон, контроллере

в яз файле стоит %S, вывод в шаблон соответственно показывает %S
а вот контролер /catalog/controller/checkout/success.php
или не в нем надо смотреть?
 

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

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

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

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

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

 

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


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

 Наверно в этой строке проблема. При переходе на страницу  success происходит очищение корзины и всех данных, хранящихся в сессии.  В том числе и номера заказа.

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


 

16 часов назад, Edvard сказал:

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

 Наверно в этой строке проблема. При переходе на страницу  success происходит очищение корзины и всех данных, хранящихся в сессии.  В том числе и номера заказа.

 

кажется нет, посмотрел, так во всех контроллерах и на 2й версии тоже

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


Номер заказа не отображается на странице успешного оформления и во второй и в третьей версии. Опенкарт - система полная чудачеств и странного пользовательского удобства. Поэтому 70% расширений исправляют эти чудачества, ничего не добавляя и не улучшая.

Вот этот кусок кода проверяет существует ли в сессии номер заказа, и если да - очищается корзина и удаляются все данные о заказе, хранящиеся в сессии.

 

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

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

Также удалять записи в сессии могут модули оплаты.

Поэтому, нужно сохранить данные о номере заказа перед их удалением, например

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

А потом добавить в выходные данные

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

Добавить в языковые переменные catalog/language/english/checkout/success.php

$_['heading_title_customer'] = 'Your Order #%s has been placed!';

Как-то так.

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


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

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

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

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

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

Вхід

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

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

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