Удаление заказов по выборке средствами API и работы с объектами

Материал из Umicms
Перейти к:навигация, поиск

Так как в административной панели удаление заказов возможно только вручную, при накоплении нескольких тысяч заказов, их удаление будет проблематичным.

В качестве примера, рассмотрим как произвести удаление всех заказов, сделанных ранее заданного года и месяца. Для этого необходимо написать следующий кастом, откроем ~\clases\modules\custom.php. и поместим в него код:

<source="php">public function delOrders($m=0,$y=0){

               $orders = new selector('objects');
               $objectsCollection = umiObjectsCollection::getInstance();
               $orders->types('object-type')->name('emarket','order');
               foreach($orders as $order){
                   $date=$order->order_date;
                   echo $order->id."
"; $parsDate=explode('-',$date); if(($parsDate[0]<$y)){ $objectsCollection->delObject($order->id); } if(($parsDate[1]<$m)){ $objectsCollection->delObject($order->id); } if((!$parsDate[0])&&(!$parsDate[1])){ $objectsCollection->delObject($order->id); } } return "done"; }</source="php">

где m и y это месяц и год соответственно.