Просмотр общей суммы заказов пользователя

Материал из Umicms
Версия от 13:51, 12 августа 2013; Alexei (обсуждение | вклад) (Новая страница: «'''Актуально для версии 2.9.1''' Иногда возникает необходимость узнать сумму всех заказов опр…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

Актуально для версии 2.9.1

Иногда возникает необходимость узнать сумму всех заказов определенного пользователя. Для реализации данной задачи необходимо создать кастомный макрос, разместим его в файле /classes/modules/custom.php

public function totalSum ($userId) {
    $pages = new selector('objects');
    $pages->types('object-type')->name('emarket', 'order');
    $pages->where('owner')->equals($userId);
    $pages->where('status_id')->equals('20');
    $total_price_all = 0; 
 
    foreach($pages as $page)  {
	$total_price_once = $page->getValue('total_price');
        $total_price_all = $total_price_all + $total_price_once;
    }
    return $total_price_all;
}

При вызове этого макроса мы передаем ему id пользователя, для которого необходимо найти сумму всех заказов. В строке

$pages->where('status_id')->equals('20');

мы выбираем только заказы, у которых статус заказа - "Готов". Если нам необходима выборка по другому статусу заказа - тогда вместо 20 подставьте id необходимого Вам статуса заказа.