Сумма заказов пользователя — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
(Новая страница: «Если мы хотим организовать механизм накопительных скидок, либо просто для статистики вес…»)
(нет различий)

Версия 18:04, 22 апреля 2012

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

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 этих заказов с получением поля стоимости заказа.