Перейти к содержанию
lvovich

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

Рекомендуемые сообщения

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"ocStore" Version 0.1.7

Вопрос тупой? Или, не знает никто?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

хорошая доработка

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здорово!

Спасибо топик-стартеру за полезный запрос :)

Большущее спасибо afwollis за прекрасную реализацию!

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 afwollis

Большое спасибо! Отлично работает!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Alexa, не должно быть такого глюка.

Возможно вы что-то "недопеределали" с языковым файлом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Просто ссылки съезжают по значению переменных ровно на 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 пункта всё и работает корректно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Переделывал

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Держи. В качестве благодарности можно либо оформить это как сообщение на форуме (как обычно это делается, чтобы было видно где код и т.д.), а лучше в виде 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 и еще всякая фигня)

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

;)

А что текст xml-файла удалил?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Сейчас так:

 

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

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

 

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

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

/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 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.