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

Вывод комментария к заказу в списке заказов


Recommended Posts

Подскажите реально ли вывести комментарий к заказу в списке заказов в личном кабинете? А именно в order_list.tpl, в order.tpl и так выводит.

 

Версия OpenCart 1.5.6.4, хотелось бы получить решение в виде кода что и куда заменить какие строки. 

 

Спасибо заранее!) 

 

 

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


1) sale/order_list.tpl 

     1.1)

Ищеш 

<form action="" method="post" enctype="multipart/form-data" id="form">
        <table class="list">
          <thead>
            <tr>

И между <tr> Вставляеш в нужном месте <td>Комментарий</td>

1.2) 

<td class="right"><?php echo $order['order_id']; ?></td>
<td class="left"><?php echo $order['customer']; ?></td>
....
<td class="left"><?php echo $order['date_added']; ?></td>

Там где тебе нужно дописиваеш

<td><? echo $order['comment']; ?></td>

2) Файл controller/sale/order.tpl

Ищеш  Примерно 300 строка

$this->data['orders'][] = array(

В этот масив дописиваеш 

'comment'=>$result['comment']

3) model/sale/order.php

Ищеш 

public function getOrders($data = array()) {
		$sql = "SELECT o.order_id, CONCAT(o.firstname, ' ', o.lastname) AS customer, (SELECT os.name FROM " . DB_PREFIX . "order_status os WHERE os.order_status_id = o.order_status_id AND os.language_id = '" . (int)$this->config->get('config_language_id') . "') AS status, o.total, o.currency_code, o.currency_value, o.date_added, o.date_modified FROM `" . DB_PREFIX . "order` o";

Меняеш

public function getOrders($data = array()) {
$sql = "SELECT o.order_id, CONCAT(o.firstname, ' ', o.lastname) AS customer, (SELECT os.name FROM " . DB_PREFIX . "order_status os WHERE os.order_status_id = o.order_status_id AND os.language_id = '" . (int)$this->config->get('config_language_id') . "') AS status, o.total, o.currency_code, o.currency_value, o.date_added, o.date_modified,o.comment FROM `" . DB_PREFIX . "order` o";

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

 

1) sale/order_list.tpl 

     1.1)

Ищеш 

<form action="" method="post" enctype="multipart/form-data" id="form">
        <table class="list">
          <thead>
            <tr>

И между <tr> Вставляеш в нужном месте <td>Комментарий</td>

1.2) 

<td class="right"><?php echo $order['order_id']; ?></td>
<td class="left"><?php echo $order['customer']; ?></td>
....
<td class="left"><?php echo $order['date_added']; ?></td>

Там где тебе нужно дописиваеш

<td><? echo $order['comment']; ?></td>

2) Файл controller/sale/order.tpl

Ищеш  Примерно 300 строка

$this->data['orders'][] = array(

В этот масив дописиваеш 

'comment'=>$result['comment']

3) model/sale/order.php

Ищеш 

public function getOrders($data = array()) {
		$sql = "SELECT o.order_id, CONCAT(o.firstname, ' ', o.lastname) AS customer, (SELECT os.name FROM " . DB_PREFIX . "order_status os WHERE os.order_status_id = o.order_status_id AND os.language_id = '" . (int)$this->config->get('config_language_id') . "') AS status, o.total, o.currency_code, o.currency_value, o.date_added, o.date_modified FROM `" . DB_PREFIX . "order` o";

Меняеш

public function getOrders($data = array()) {
$sql = "SELECT o.order_id, CONCAT(o.firstname, ' ', o.lastname) AS customer, (SELECT os.name FROM " . DB_PREFIX . "order_status os WHERE os.order_status_id = o.order_status_id AND os.language_id = '" . (int)$this->config->get('config_language_id') . "') AS status, o.total, o.currency_code, o.currency_value, o.date_added, o.date_modified,o.comment FROM `" . DB_PREFIX . "order` o";

 

Нужно именно комментарии из админки оставленные там выводить) Не комментарии которые указал покупатель при заказе. А именно комментарий к заказу который делает сам админ в админке. Извиняюсь, что не уточнил сразу(( 

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


Нужно именно комментарии из админки оставленные там выводить) Не комментарии которые указал покупатель при заказе. А именно комментарий к заказу который делает сам админ в админке. Извиняюсь, что не уточнил сразу(( 

Ну ситуация такаяже только нужно поменять запрос в 3 шаге

public function getOrders($data = array()) {
$sql = "SELECT o.order_id, CONCAT(o.firstname, ' ', o.lastname) AS customer, (SELECT os.name FROM " . DB_PREFIX . "order_status os WHERE os.order_status_id = o.order_status_id AND os.language_id = '" . (int)$this->config->get('config_language_id') . "') AS status, o.total, o.currency_code, o.currency_value, o.date_added, o.date_modified, (SELECT oh.comment FROM " . DB_PREFIX . "order_history oh WHERE oh.order_status_id = o.order_status_id AND oh.order_id = o.order_id) FROM `" . DB_PREFIX . "order` o";

P.S 100% не гарантирую этот код нет времени протестировать

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

Ну ситуация такаяже только нужно поменять запрос в 3 шаге

public function getOrders($data = array()) {
$sql = "SELECT o.order_id, CONCAT(o.firstname, ' ', o.lastname) AS customer, (SELECT os.name FROM " . DB_PREFIX . "order_status os WHERE os.order_status_id = o.order_status_id AND os.language_id = '" . (int)$this->config->get('config_language_id') . "') AS status, o.total, o.currency_code, o.currency_value, o.date_added, o.date_modified, (SELECT oh.comment FROM " . DB_PREFIX . "order_history oh WHERE oh.order_status_id = o.order_status_id AND oh.order_id = o.order_id) FROM `" . DB_PREFIX . "order` o";

P.S 100% не гарантирую этот код нет времени протестировать

Работает, спасибо! 

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


Ну ситуация такаяже только нужно поменять запрос в 3 шаге

public function getOrders($data = array()) {
$sql = "SELECT o.order_id, CONCAT(o.firstname, ' ', o.lastname) AS customer, (SELECT os.name FROM " . DB_PREFIX . "order_status os WHERE os.order_status_id = o.order_status_id AND os.language_id = '" . (int)$this->config->get('config_language_id') . "') AS status, o.total, o.currency_code, o.currency_value, o.date_added, o.date_modified, (SELECT oh.comment FROM " . DB_PREFIX . "order_history oh WHERE oh.order_status_id = o.order_status_id AND oh.order_id = o.order_id) FROM `" . DB_PREFIX . "order` o";

P.S 100% не гарантирую этот код нет времени протестировать

Еще бы как то вывести вес товара на эту же страницу. Вес каждого товара указан в админке. Это реально? Буду оочень благодарен. 

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


Еще бы как то вывести вес товара на эту же страницу. Вес каждого товара указан в админке. Это реально? Буду оочень благодарен. 

реально но сложнее может вечером скину как ато шас на работе нет много времени

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

  • 1 year later...

 

On 23.09.2016 at 1:02 PM, konorws said:

Ну ситуация такаяже только нужно поменять запрос в 3 шаге


public function getOrders($data = array()) {
$sql = "SELECT o.order_id, CONCAT(o.firstname, ' ', o.lastname) AS customer, (SELECT os.name FROM " . DB_PREFIX . "order_status os WHERE os.order_status_id = o.order_status_id AND os.language_id = '" . (int)$this->config->get('config_language_id') . "') AS status, o.total, o.currency_code, o.currency_value, o.date_added, o.date_modified, (SELECT oh.comment FROM " . DB_PREFIX . "order_history oh WHERE oh.order_status_id = o.order_status_id AND oh.order_id = o.order_id) FROM `" . DB_PREFIX . "order` o";

P.S 100% не гарантирую этот код нет времени протестировать

 

поменял запрос в 3 шаге ошибка такая:

 

Warning: mysql_query(): Unable to save result set in /home/users/p/system/database/mysql.php on line 21

Notice: Error: Subquery returns more than 1 row
Error No: 1242

SELECT o.order_id, CONCAT(o.firstname, ' ', o.lastname) AS customer, (SELECT os.name FROM order_status os WHERE os.order_status_id = o.order_status_id AND os.language_id = '1') AS status, o.total, o.currency_code, o.currency_value, o.date_added, o.date_modified, (SELECT oh.comment FROM order_history oh WHERE oh.order_status_id = o.order_status_id AND oh.order_id = o.order_id) FROM `order` o WHERE o.order_status_id > '0' ORDER BY o.order_id DESC LIMIT 0,50 in /home/users/p/system/database/mysql.php on line 49

подскажите, в чем может быть проблема? хочу вывести последний коммент админа из истории заказа.

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


14 часов назад, PymC сказал:

 

 

поменял запрос в 3 шаге ошибка такая:

 


Warning: mysql_query(): Unable to save result set in /home/users/p/system/database/mysql.php on line 21

Notice: Error: Subquery returns more than 1 row
Error No: 1242

SELECT o.order_id, CONCAT(o.firstname, ' ', o.lastname) AS customer, (SELECT os.name FROM order_status os WHERE os.order_status_id = o.order_status_id AND os.language_id = '1') AS status, o.total, o.currency_code, o.currency_value, o.date_added, o.date_modified, (SELECT oh.comment FROM order_history oh WHERE oh.order_status_id = o.order_status_id AND oh.order_id = o.order_id) FROM `order` o WHERE o.order_status_id > '0' ORDER BY o.order_id DESC LIMIT 0,50 in /home/users/p/system/database/mysql.php on line 49

подскажите, в чем может быть проблема? хочу вывести последний коммент админа из истории заказа.

Ну тут проблема в том что суб запрос не может возвращать более одной строки

и на следующий раз старайся подавать читабельный код в запросе к таблице `order_history` нужно добавить LIMIT 1

PS. Добавил сортировку по ID

SELECT 
 o.order_id, 
 CONCAT(o.firstname, ' ', o.lastname) AS customer,
 (SELECT os.name 
  FROM order_status os 
  WHERE os.order_status_id = o.order_status_id 
   AND os.language_id = '1'
 ) AS status, 
   o.total, 
   o.currency_code,
   o.currency_value, 
   o.date_added, 
   o.date_modified, 
   (SELECT 
     oh.comment 
     FROM order_history oh 
     WHERE oh.order_status_id = o.order_status_id 
       AND oh.order_id = o.order_id
    ORDER BY order_history_id DESC
     LIMIT 1
   ) 
 FROM `order` o 
 WHERE o.order_status_id > '0' 
 ORDER BY o.order_id DESC LIMIT 0,50

 

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

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

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

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

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

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

Вхід

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

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

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

Important Information

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