Урок 26 Вывести точное время оформления заказа в админке opencart
Приветствую. На очереди еще одна доработка клиентского интернет магазина. В принципе, данный функционал востребован в основном для магазинов, которые занимаются доставкой пищи. Например, интернет-пиццерия или фастфуд, когда важно отслеживать точное время оформления заказа клиентом. Ведь в данной сфере каждая секунда дорога, особенно если за просрочку предусмотрены штрафы.
В общем приступим. Работать будем только с админкой, а в конце поста как всегда готовый мод.
Сначала вносим правки в контроллере заказов
1 |
admin/controller/sale/order.php |
после
1 |
'date_modified' => date($this->language->get('date_format_short'), strtotime($result['date_modified'])), |
Добавляем
1 2 |
'time_added' => date($this->language->get('time_format'), strtotime($result['date_added'])), 'time_modified' => date($this->language->get('time_format'), strtotime($result['date_modified'])), |
После
1 |
$data['date_added'] = date($this->language->get('date_format_short'), strtotime($order_info['date_added'])); |
Добавляем
1 2 |
$data['time_added'] = date($this->language->get('time_format'), strtotime($order_info['date_added'])); $data['time_modified'] = date($this->language->get('time_format'), strtotime($order_info['date_modified'])); |
Тут же перед
1 |
'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added'])) |
добавляем
1 |
'time_added' => date($this->language->get('time_format'), strtotime($result['date_added'])), |
и после
1 |
$data['date_added'] = date($this->language->get('date_format_short'), strtotime($order_info['date_added'])); |
добавить
1 |
$data['time_added'] = date($this->language->get('time_format'), strtotime($order_info['date_added'])); |
С контроллером заказов закончили, и еще внесем правки в контроллер панели управления, чтобы вывести точное время оформления заказа и там
1 |
admin/controller/extension/dashboard/recent.php |
после
1 |
'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added'])), |
добавляем
1 |
'time_added' => date($this->language->get('time_format'), strtotime($result['date_added'])), |
С контроллерами закончили. Теперь для 24 часового формата вывода времени в файле
1 |
admin/language/ru-ru/ru-ru.php |
после
1 |
$_['time_format'] = 'h:i:s A'; |
необходимо добавить
1 |
$_['time_format'] = 'G:i:s'; |
Если секунды не нужны, тогда
1 |
$_['time_format'] = 'G:i'; |
И переходим к правкам в темплейтах. Сначала в
1 |
admin/view/template/sale/order_info.tpl |
Это
1 |
<td><?php echo $date_added; ?></td> |
заменяем на
1 |
<td><?php echo $date_added; ?> - <?php echo $time_added; ?></td> |
В файле
1 |
admin/view/template/sale/order_history.tpl |
это
1 |
<td class="text-left"><?php echo $history['date_added']; ?></td> |
меняем на
1 |
<td class="text-left"><?php echo $history['date_added']; ?> - <?php echo $history['time_added']; ?></td> |
Переходим к файлу
1 |
admin/view/template/sale/order_list.tpl |
это
1 |
<td class="text-left"><?php echo $order['date_added']; ?></td> |
меняем на
1 |
<td class="text-left"><?php echo $order['date_added']; ?> - <?php echo $order['time_added']; ?></td> |
И тут же это
1 |
<td class="text-left"><?php echo $order['date_modified']; ?></td> |
меняем на
1 |
<td class="text-left"><?php echo $order['date_modified']; ?> - <?php echo $order['time_modified']; ?></td> |
И еще вносим изменения в одном файле.
1 |
admin/view/template/extension/dashboard/recent_info.tpl |
Это
1 |
<td><?php echo $order['date_added']; ?></td> |
меняем
1 |
<td><?php echo $order['date_added']; ?> - <?php echo $order['time_added']; ?></td> |
Все. Теперь необходимо залить все измененные файлы на сервер, и обязательно обновить кеш модификаторов. Если все сделано правильно, в админке Вы увидите что то такое
И как и обещал, готовый модификатор можете скачать по ссылке ниже.
А как вывести телефон?
В статье Как вывести номер телефона покупателя в списка заказов в админке я все детально расписал, а так же выложил готовый мод.
Офигенно, спасибо) Ссылка только на эту статью ведет) А как вывести вес, номер заказа и адрес доставки?)
Спасибо. Ссылку исправил. Номер заказа выводится сразу во второй колонке. По весу и адресу постараюсь в следующей статье рассмотреть, как будет время.
Автор забыл упомянуть, что данное решение актуально только для OpenCart, для сборки ocStore этого делать не нужно — там время заказа уже прописано. Единственно что можно дополнить, это исправить отображение даты. Сделать его как: «05 декабря 2020 г. (20:28)«. Для этого в главном языковом файле дописываем в конце: // Month $_['month-01'] = ' января '; $_['month-02'] = ' февраля '; $_['month-03'] = ' марта '; $_['month-04'] = ' апреля '; $_['month-05'] = ' мая '; $_['month-06'] = ' июня '; $_['month-07'] = ' июля '; $_['month-08'] = ' августа '; $_['month-09'] = ' сентября '; $_['month-10'] = ' октября ';… Подробнее »
Вы наверно что то путаете или не дочитали статью. Речь про добавление точного времени заказа а не даты заказа. Дата заказа выводится не только в оксторе, но и в чистом опенкарте. А статья именно о выводе времени, т.е. часы, минуты и секунды
Так ведь я про это и сказал)) Время в ocStore уже выводится — там это реализовали (в отличие от OpenCart), поэтому и статья подходит исключительно для тех — у кого OpenCart а не ocStore. НА OCSTORE ЭТОГО ДЕЛАТЬ НЕ НУЖНО.
Но если кому то вдруг, захочется чтоб еще и месяц выводился Строкой (а не числом), то можно воспользоваться примером выше. Этот код подходит для обоих сборок.
Вот как выглядит список заказов на чистом оксторе http://prntscr.com/vwqjvr
Никакого времени там нет, только дата
Аналогично и в 3 оксторе http://prntscr.com/vwqkry
Откуда Вы вообще взяли что там время выводится? Какую Вы сборку используете? Может это какая то спец сборка.
Поэтому не вводите народ в заблуждение 🙂
Всё верно, под утро дело было уже мало соображал)))
В таком случае, открываем /admin/language/ru-ru/ru-ru.php
и меняем
$_['date_format_short'] = 'd.m.Y';
на
$_['date_format_short'] = 'j.m.Y (H:i)';
В итоге получаем отображение «6.12.2020 (19:02)»
https://prnt.sc/vwx7ky
Согласен. Это уже отличный вариант))
Спасибо.
Единственный существенный минус — это то что данный формат будет по всей админке глобально. Мое же решение точечное.
Подскажите нужно реализовать такое на интернет магазине. мне нкобходимо чтобы пользователи делали свои ссылки которые сгенерируются, для того чтобы рассылать с целью привлекать новых клиентов в магазин по своим ссылкам, и когда клинет который перешёл через реферальную ссылку, получил бонус хозяин реферальной ссылки ! возможно такое реализовать ?
В опенкарте это уже все реализовано. Надо чтобы клиент зарегистрировался как партнер. В его личном кабинете будет такая вкладка http://prntscr.com/w1o1kl где он выбирает товар, который хочет рекламировать, и ему автоматом генерится ссылка. Реферальный процент назначается в настройках магазина во вкладке опции.
Подскажите, а как сделать возможность вывести продажи (отчет), задав диапазон по времени?
Здравствуйте. Если речь про заказы в админке, то в разделе продажи-заказы отфильтруйте по дате добавления заказа https://prnt.sc/5-f5qYcG6PXm
Если же Вы имеете ввиду добавление фильтрации заказов по времени по аналогии с датой добавления, то это уже платная доработка. Можете попробовать сделать по аналогии с фильтрацией по дате. Не совсем понятно для чего необходима такая фильтрация. Это если у Вас в день несколько сотен заказов.