Сумма заказов пользователя

Материал из Umicms
Версия от 08:06, 7 июня 2013; Mad grant (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

Может быть использовано на 2.9

Если мы хотим организовать механизм накопительных скидок, либо просто для статистики вести учёт средств, которые пользователь потратил в Вашем интернет магазине, нам не обойтись без функции, которая будет это считать. Напишем кастомный макрос, который будет производить выборку заказов пользователя и складывать стоимости этих заказов. Код будет примерно следующий:

public function ordersSumm($customerId) {
     $sel = new selector('objects');
     $sel->types('object-type')->name('emarket', 'order');
     $sel->where('customer_id')->equals($customerId);
     $sel->where('status_id')->isNull(false);
     $list=$sel->result;
     $count=count($list);
     $orders=Array();
     $total_price=0;
     for($i=0;$i<$count;$i++){
        $order=$list[$i]->id;
	$query="SELECT float_val FROM cms3_object_content WHERE obj_id=$order AND field_id=235";
	$result=mysql_query($query);
	if(!$result){mysql_error();}
	$sum+=mysql_result($result,0,'float_val');
     }
     return $sum;
}

Сначала происходит получение массива с заказами пользователя, id которого указан в качестве параметра функции, а затем происходит выборка из базы по id этих заказов с получением поля стоимости заказа.