Массовое удаление заказов из административной панели — различия между версиями
Alexei (обсуждение | вклад) (Новая страница: «'''Актуально для версии 2.9.5''' Если в административной панели, в модуле "Интернте-магазин", с…») |
(нет различий)
|
Версия 15:20, 31 января 2014
Актуально для версии 2.9.5
Если в административной панели, в модуле "Интернте-магазин", скопилось большое количество заказов, то удалять их вручную по-одному будет довольно утомительно. Чтобы облегчить задачу, можно сделать выборку с помощью Selector, получить все заказы, у которых, к примеру, последний раз изменялся статус заказа больше года назад, и удалить эти заказы. Ниже приведен код, который это делает:
public function deleteAllOrders () {
$pages = new selector('objects');
$pages->types('object-type')->id(50);
$time = 1328021732;
$pages->where('status_change_date')->eqless($time);
$ObjectsCollection = umiObjectsCollection::getInstance();
foreach($pages as $page) {
$ObjectsCollection->delObject($page->getId());
}
}
Разместите данный код в файле classes/modules/custom.php после строки //TODO: Write your own macroses here. В строке
$pages->types('object-type')->id(50);
мы задаем id типа данных "Заказ", если у Вас id типа данных "Заказ" другой - тогда подставьте соответствующее значение.
В переменную
$time = 1328021732;
мы передаем дату, с которой будем сравнивать дату изменения статуса заказа (т.е. если дата последнего изменения статуса заказа старше чем эта - заказ будет удален). В данный момент это 31 января 2012 года, вы можете установить сюда свое значение, воспользовавшись Unixtime конвертером. Данный конвертер можно найти в свободном доступе в интернете - например, здесь http://www.cy-pr.com/tools/time/