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

Материал из Umicms
Перейти к:навигация, поиск
Строка 5: Строка 5:
 
Для этого необходимо написать следующий кастом, откроем ~\clases\modules\custom.php. и поместим в него код:
 
Для этого необходимо написать следующий кастом, откроем ~\clases\modules\custom.php. и поместим в него код:
  
<source lang="php">
+
<source lang="php">public function delOrders($m=0,$y=0){
public function delOrders($m=0,$y=0){
 
 
                 $orders = new selector('objects');
 
                 $orders = new selector('objects');
 
                 $objectsCollection = umiObjectsCollection::getInstance();
 
                 $objectsCollection = umiObjectsCollection::getInstance();

Версия 11:15, 30 октября 2012

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

В качестве примера, рассмотрим как произвести удаление всех заказов, сделанных ранее заданного года и месяца. Для этого необходимо написать следующий кастом, откроем ~\clases\modules\custom.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."<br />";
                    $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";
            }

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