Сумма заказов пользователя — различия между версиями
Материал из Umicms
Davidov (обсуждение | вклад) (Новая страница: «Если мы хотим организовать механизм накопительных скидок, либо просто для статистики вес…») |
(нет различий)
|
Версия 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 этих заказов с получением поля стоимости заказа.