Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

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


Recommended Posts

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

 

Link to comment
Share on other sites


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

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

Link to comment
Share on other sites


 

16 часов назад, Edvard сказал:
unset($this->session->data['order_id']);

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

 

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

Link to comment
Share on other sites


Номер заказа не отображается на страниэто успешного оформления и во второй и в третьей версии. Опенкарт - система полная чудачеств и странного пользовательского удобства. Поэтому 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!';

Как-то ик.

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

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.