Удаление заказов по выборке средствами API и работы с объектами
Материал из Umicms
Версия от 11:40, 30 октября 2012; Mad grant (обсуждение | вклад)
Так как в административной панели удаление заказов возможно только вручную, при накоплении нескольких тысяч заказов, их удаление будет проблематичным.
В качестве примера, рассмотрим как произвести удаление всех заказов, сделанных ранее заданного года и месяца. Для этого необходимо написать следующий кастом, откроем ~\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 это месяц и год соответственно. Скрипт проверен на версии 2.8.5.3 20317.