Просмотр общей суммы заказов пользователя — различия между версиями
Alexei (обсуждение | вклад) (Новая страница: «'''Актуально для версии 2.9.1''' Иногда возникает необходимость узнать сумму всех заказов опр…») |
Alelekov (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | '''Актуально для версии | + | '''Актуально для версии 20''' |
− | Иногда возникает необходимость узнать сумму всех заказов определенного пользователя. Для реализации данной задачи необходимо создать кастомный макрос, разместим его в файле /classes/ | + | Иногда возникает необходимость узнать сумму всех заказов определенного пользователя. Для реализации данной задачи необходимо создать кастомный макрос, разместим его в файле /classes/components/customMacros.php |
<source lang="php"> | <source lang="php"> | ||
public function totalSum ($userId) { | public function totalSum ($userId) { | ||
− | + | $orders = new selector('objects'); | |
− | + | $orders->types('object-type')->name('emarket', 'order'); | |
− | + | $orders->where('owner')->equals($userId); | |
− | + | $orders->where('status_id')->equals('198'); | |
− | + | $total_price_all = 0; | |
− | + | foreach($orders as $order) { | |
− | + | $total_price_once = $order->getValue('total_price'); | |
− | + | $total_price_all = $total_price_all + $total_price_once; | |
− | + | } | |
− | + | return $total_price_all; | |
− | + | } | |
− | } | + | |
</source> | </source> | ||
Строка 22: | Строка 22: | ||
<source lang="php"> | <source lang="php"> | ||
− | $pages->where('status_id')->equals(' | + | $pages->where('status_id')->equals('198’); |
+ | </source> | ||
+ | |||
+ | мы выбираем только заказы, у которых статус заказа - "Готов". Если нам необходима выборка по другому статусу заказа - тогда вместо 198 подставьте id необходимого вам статуса заказа. Информацию о соответствующих идентификаторов статусов заказов можно посмотреть в базе данных в таблице cms3_objects. | ||
+ | |||
+ | Также все доступные статусы заказов и информация о них может быть выведена следующим запросом к базе данных: | ||
+ | <source lang='sql'> | ||
+ | SELECT * FROM cms3_objects WHERE guid LIKE 'emarket-orderstatus%' | ||
</source> | </source> | ||
− | + | Вызов этого макроса на примере php шаблонизатора: | |
+ | <source lang="php"> | ||
+ | <?= $this->macros('catalog', 'totalSum', array(<идентификатор пользователя>)); ?> | ||
+ | </source> | ||
[[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]][[Категория:Модуль Интернет магазин]] | [[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]][[Категория:Модуль Интернет магазин]] |
Версия 08:59, 30 марта 2019
Актуально для версии 20
Иногда возникает необходимость узнать сумму всех заказов определенного пользователя. Для реализации данной задачи необходимо создать кастомный макрос, разместим его в файле /classes/components/customMacros.php
public function totalSum ($userId) {
$orders = new selector('objects');
$orders->types('object-type')->name('emarket', 'order');
$orders->where('owner')->equals($userId);
$orders->where('status_id')->equals('198');
$total_price_all = 0;
foreach($orders as $order) {
$total_price_once = $order->getValue('total_price');
$total_price_all = $total_price_all + $total_price_once;
}
return $total_price_all;
}
При вызове этого макроса мы передаем ему id пользователя, для которого необходимо найти сумму всех заказов. В строке
$pages->where('status_id')->equals('198’);
мы выбираем только заказы, у которых статус заказа - "Готов". Если нам необходима выборка по другому статусу заказа - тогда вместо 198 подставьте id необходимого вам статуса заказа. Информацию о соответствующих идентификаторов статусов заказов можно посмотреть в базе данных в таблице cms3_objects.
Также все доступные статусы заказов и информация о них может быть выведена следующим запросом к базе данных:
SELECT * FROM cms3_objects WHERE guid LIKE 'emarket-orderstatus%'
Вызов этого макроса на примере php шаблонизатора:
<?= $this->macros('catalog', 'totalSum', array(<идентификатор пользователя>)); ?>