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