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

[Решено] Как показать номер заказа после оформления?


Recommended Posts

Хочу чтобы после оформления заказа клиент видел на странице "Ваш заказ оформлен!" (/index.php?route=checkout/success) сообщение: "Ваш заказ №ХХ оформлен!"

В письме-уведомлении номер заказа выводится вот этим: <?php echo $order_id; ?>, какие файлы кроме

/catalog/view/theme/default/template/common/success.tpl нужно изменить, и каким образом?

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


catalog/controller/checkout/success.php
#1

меняем

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

$w_order_id = "";
		if (isset($this->session->data['order_id'])) {
			
			$w_order_id = $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']);
		}

#2

$this->document->title = $this->language->get('heading_title');
на

$this->document->title = sprintf($this->language->get('heading_title'), $w_order_id);

#3

$this->data['heading_title'] = $this->language->get('heading_title');
на

$this->data['heading_title'] = sprintf($this->language->get('heading_title'), $w_order_id);

#4

$this->data['text_message'] = sprintf($this->language->get('text_message'), HTTPS_SERVER . 'index.php?route=account/account', HTTPS_SERVER . 'index.php?route=account/history', HTTP_SERVER . 'index.php?route=information/contact');
на

$this->data['text_message'] = sprintf($this->language->get('text_message'), $w_order_id, HTTPS_SERVER . 'index.php?route=account/account', HTTPS_SERVER . 'index.php?route=account/history', HTTP_SERVER . 'index.php?route=information/contact');

catalog/language/russian/checkout/success.php
#5

находим

$_['heading_title']
$_['text_message']

приводим к виду

$_['heading_title'] = 'Ваш заказ #%s оформлен!';

// Text
$_['text_message']  = '<p>Ваш заказ #%s успешно обработан!</p><p>Вы можете просматривать свою историю заказов, перейдя в <a href="%s">Личный кабинет</a> и кликнув по <a href="%s">истории заказов</a>.</p><p>Если у Вас есть вопросы, обратитесь к <a href="%s">администратору</a>.</p><p>Спасибо за покупку!</p>';
  • +1 6
Надіслати
Поділитися на інших сайтах

  • 1 month later...

А никто внимание не обратил, что добавление переменной $w_order_id, согласно пункту #4, вызывает некоректное отображение ссылок в файле ?route=checkout/success, в клиентской части при оформленном заказе?

"Вы можете просматривать свою историю заказов, перейдя в Личный кабинет и кликнув по истории заказов.

Если у Вас есть вопросы, свяжитесь с нами."

Или у меня одной глюки?

P.S. убрала данную переменную из соответствующего куска кода - вроде всё ОК: и № заказа отображается и ссылки вернулись на свои места...

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


С языковым файлом всё в порядке, там сложно было что-то намудрить....

Просто ссылки съезжают по значению переменных ровно на 1 шаг, если делать изменения по #4 пункту.(Т.е. на "Личный кабинет" идет ссылка "/", на "истории заказов" - account/account, на администратору - account/history)

afwollis, добавление переменной $w_order_id, в #4 пункт, за что конкретно отвечает в данном случае?

Просто при её удалении именно из #4 шага - всё работает нормально..... B)

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


afwollis, добавление переменной $w_order_id, в #4 пункт, за что конкретно отвечает в данном случае?

за вывод номера заказа в тексте.

Alexa, сверьте значение переменной

$_['text_message']
в вашем языковом файле со значением, приведенным в пункте #5.

Конкретно интересует наличие такого участка

<p>Ваш заказ #%s успешно обработан!</p>
  • +1 1
Надіслати
Поділитися на інших сайтах

afwollis, да, это моя невнимательность...

<p>Ваш заказ #%s успешно обработан!</p>
я убрала из языкового файла, поэтому смещение и произошло.

Оставила упоминание о № заказа только в

$_['heading_title'] = 'Ваш заказ №%s оформлен!';
Спб. за уточнение.

Поэтому в моем случае при удаление переменной из #4 пункта всё и работает корректно.

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


  • 11 months later...

Держи. В качестве благодарности можно либо оформить это как сообщение на форуме (как обычно это делается, чтобы было видно где код и т.д.), а лучше в виде xml

Сообщение о успешном заказе. Ссылка на заказ, в тексте и заголовке страницы номер заказа, для гостевого заказа - номер заказа в теле письма.doc

  • +1 2
Надіслати
Поділитися на інших сайтах

Поделились бы переделками. :wink:

Поделился. 5 скачек. Никто не оформил этот фикс, никто не сделал его в виде xml для vqmod...Далее риторический вопрос: Ну и смысл выкладывать что-то в общий доступ? Чтобы "поделиськам" проще и лучше жилось??!

Ребята, поймите простую вещь. Беря что-то с этого проекта, нужно также что-то отдавать взамен, чтобы проект развивался и двигался. Иначе у тех, кто что-то делает, пропадёт желание выкладывать свои наработки в открытый доступ и помогать "страждующим". И в этом случае "поделиськам" туго придётся.

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

Содержимое файла товарища JohnnyVega в виде сообщения


Сообщение о успешном заказе. Ссылка на заказ, в тексте и заголовке страницы номер заказа, для гостевого заказа - номер заказа в теле письма (Message of success order)

Версия магазина: ocStore v1.5.1.3
Описание: Сообщение о успешном заказе. Ссылка на заказ, в тексте и заголовке страницы номер заказа, для гостевого заказа - номер заказа в теле письма
Изменения в файлах:

Логика

в файле catalog/controller/checkout/success.php
находим и комментируем // строчку
unset($this->session->data['order_id']);
далее, мы находим и комментируем // строчку
$this->document->setTitle($this->language->get('heading_title'));
и сразу после вставляем свои
// Сообщение о успешном заказе. Ссылка на заказ, в тексте и заголовке страницы номер заказа, для гостевого заказа - номер заказа в теле письма
// Изменяем заголовок страницы
if ($this->session->data['order_id'] <>"") {
$this->document->setTitle(sprintf($this->language->get('heading_title_customer'), $this->session->data['order_id']));
						} else {
						$this->document->setTitle($this->language->get('heading_title'));
						}
//////////////
далее, снова находим и комментируем // строчку
$this->data['heading_title'] = $this->language->get('heading_title');
и сразу после вставляем свои
// Сообщение о успешном заказе. Ссылка на заказ, в тексте и заголовке страницы номер заказа, для гостевого заказа - номер заказа в теле письма
/////////////
if ($this->session->data['order_id'] <>"") {
			$this->data['heading_title'] = sprintf($this->language->get('heading_title_customer'), $this->session->data['order_id']);
						} else {
						$this->data['heading_title'] = $this->language->get('heading_title');
						}
//////////////////////
далее, снова находим и комментируем /* блок */
if ($this->customer->isLogged()) {
			$this->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 {
						$this->data['text_message'] = sprintf($this->language->get('text_guest'), $this->url->link('information/contact'));
						}
сразу после вставляем свой
//Сообщение о успешном заказе. Ссылка на заказ, в тексте и заголовке страницы номер заказа, для гостевого заказа - номер заказа в теле письма
if ($this->customer->isLogged()) {
			$this->data['text_message'] = sprintf($this->language->get('text_customer'), $this->url->link('account/order/info&order_id=' . $this->session->data['order_id'], '', 'SSL'), $this->session->data['order_id'], $this->url->link('account/account', '', 'SSL'), $this->url->link('account/order', '', 'SSL'), $this->url->link('account/download', '', 'SSL'), $this->url->link('information/contact'));
						} else {
						$this->data['text_message'] = sprintf($this->language->get('text_guest'), $this->session->data['order_id'], $this->url->link('information/contact'));
						}
//////////////

Отображение

в файле catalog/language/russian/checkout/success.php находим строчку

$_['heading_title'] = 'Ваш заказ оформлен!';

сразу после нее вставляем свои

// Добавляем шаблон для номера заказа
$_['heading_title_customer'] = 'Ваш заказ #%s оформлен!';
далее, находим и комментируем /* блок */
$_['text_customer'] = '<p>Ваш заказ был успешно оформлен!</p><p>Вы можете просмотреть историю заказов в <a href="%s">Личном кабинете</a>, перейдя в <a href="%s">Историю заказов</a>.</p>Если Ваша покупка связана со скачиваемым товаром, перейдите на страницу <a href="%s">Загрузок</a> для их просмотра.<p></p><p>Все вопросы направляйте <a href="%s">владельцу магазина</a>.</p><p>Спасибо за покупку!</p>';
$_['text_guest'] = '<p>Ваш заказ был успешно оформлен!</p><p>Все вопросы направляйте <a href="%s">владельцу магазина</a>.</p><p>Спасибо за покупку!</p>';
сразу после вставляем свой
// шаблон для текста об успешном заказе
$_['text_customer'] = '<p>Ваш заказ <a href="%s">#%s</a> был успешно оформлен!</p><p>Вы можете просмотреть историю заказов в <a href="%s">Личном кабинете</a>, перейдя в <a href="%s">Историю заказов</a>.</p>Если Ваша покупка связана со скачиваемым товаром, перейдите на страницу <a href="%s">Загрузок</a> для их просмотра.<p></p><p>Все вопросы направляйте <a href="%s">владельцу магазина</a>.</p><p>Спасибо за покупку!</p>';
$_['text_guest'] = '<p>Ваш заказ #%s был успешно оформлен!</p><p>Все вопросы направляйте <a href="%s">владельцу магазина</a>.</p><p>Спасибо за покупку!</p>';
//////////

All right reserved. Copyright © 2012
  • +1 2
Надіслати
Поділитися на інших сайтах


fabrikator, благодарю, конечно, за усилия. Но 17 сообщение предназначалось не Вам. Насколько я могу судить, Вы и так очень активно помогаете на форуме...

Ну и это,

All right reserved. Copyright © 2012

конечно, лишнее

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

Поделился. 5 скачек. Никто не оформил этот фикс, никто не сделал его в виде xml для vqmod...Далее риторический вопрос: Ну и смысл выкладывать что-то в общий доступ? Чтобы "поделиськам" проще и лучше жилось??!

Ребята, поймите простую вещь. Беря что-то с этого проекта, нужно также что-то отдавать взамен, чтобы проект развивался и двигался. Иначе у тех, кто что-то делает, пропадёт желание выкладывать свои наработки в открытый доступ и помогать "страждующим". И в этом случае "поделиськам" туго придётся.

если это камень в мой огород, то я вообще только увидел это сообщение (и да мне не взаподло оформить) но оно уже оформлено fabrikator за что ему спасибо!

В качестве оффтопа для модераторов хорошо бы было создать раздел с подразделами в виде версий остора, в которые накидать готовые решения пользователей конкретно под эти версии и первоочередные решение которые нужно сделать после установки к коим можно отнести на вскидку что вспомнилось

(добавление H1 категории товары, код ошибки при скрытии товара из админки, опять же замена mail.php, ключевики на главной, главная в sitemap и еще всякая фигня)

Вообще уже сделал столько правок но все благодаря тому что долго курил форум и о каких то траблах узнал совершенно случайно. А ведь у кого то этого времени просто нет, и о многих косяках новичок просто еще не знает соотв в бить в поиск это что то он не может, пока не потратит кукуево времени на чтение!

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


  • 4 weeks later...
  • 1 year later...

На 1.5.5.1 у меня не показывается текст в конце оформления заказа.

В чем может быть проблема?

PHP Notice:  Undefined variable: heading_title in /home2/moroboro/public_html/lov2.ru/catalog/view/theme/default/template/common/success.tpl on line 8
PHP Notice:  Undefined variable: text_message in /home2/moroboro/public_html/lov2.ru/catalog/view/theme/default/template/common/success.tpl on line 9
 
Там такие строчки: 
$this->cart->clear();
 
 
P.S. Решил так: взял файл catalog\controller\checkout\success.php из OcStore 1.5.4.1. Там видимо больше по-уму сделано. :)
Вроде работает.
Змінено користувачем VladBlad
Надіслати
Поділитися на інших сайтах


  • 5 weeks later...

Я может не в тему, но есть вопрос: как в ТЕМЕ ПИСЬМА поменять местами название магазина и номер заказа

Сейчас так:

 

Магазин такой-то получен заказ такой-то

А я хочу по своим причинам наоборот

 

Получен заказ такой-то - Магазин такой-то

Изменения в языковых файлах ничего не дали:

/catalog/language/russian/mail/order.php
$_['text_new_subject']          = '%s - заказ %s';

Менял местами %s, но понятно из этой затеи ничего не вышло. где залезть, что поменять местами эти названия и номера заказов?

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


Надо в catalog/model/checkout/order.php поменять значения местами в двух местах.

$subject = sprintf($language->get('text_new_subject'), html_entity_decode($this->config->get('config_name'), ENT_QUOTES, 'UTF-8'), $order_id);
Поменяйте на
$subject = sprintf($language->get('text_new_subject'), $order_id, html_entity_decode($this->config->get('config_name'), ENT_QUOTES, 'UTF-8'));
Возможно, там же, еще надо будет поменять
$subject = sprintf($language->get('text_new_subject'), $order_info['store_name'], $order_id);
на:
$subject = sprintf($language->get('text_new_subject'), $order_id,  $order_info['store_name'])
  • +1 1
Надіслати
Поділитися на інших сайтах


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

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

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

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

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

Вхід

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

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

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

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

Important Information

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