Массовое удаление заказов из административной панели — различия между версиями
Alexei (обсуждение | вклад) (Новая страница: «'''Актуально для версии 2.9.5''' Если в административной панели, в модуле "Интернте-магазин", с…») |
Vitaliks (обсуждение | вклад) |
||
(не показаны 3 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
− | '''Актуально для версии | + | '''Актуально для версии 19''' |
− | Если в административной панели, в модуле " | + | Если в административной панели, в модуле "Интернет-магазин", скопилось большое количество заказов, то удалять их вручную по-одному будет довольно утомительно. Чтобы облегчить задачу, можно сделать выборку с помощью Selector, получить все заказы, у которых, к примеру, последний раз изменялся статус заказа больше года назад, и удалить эти заказы. Ниже приведен код, который это делает: |
<source lang="php"> | <source lang="php"> | ||
− | public function deleteAllOrders () { | + | public function deleteAllOrders () { |
− | + | $orders = new selector('objects'); | |
− | + | $orders->types('object-type')->name('emarket', 'order'); | |
− | + | $time = 1461888000; // 29.4.2016 | |
− | + | $orders->where('status_change_date')->eqless($time); | |
− | + | $umiObjects = umiObjectsCollection::getInstance(); | |
− | + | ||
− | + | foreach ($orders as $order) { | |
− | + | $id = $order->getId(); | |
− | + | $umiObjects->delObject($id); | |
− | + | echo "удален заказ $id<br>"; | |
+ | } | ||
} | } | ||
</source> | </source> | ||
− | Разместите данный код в файле classes/modules/custom.php после строки //TODO: Write your own macroses here | + | Разместите данный код в файле classes/modules/custom.php после строки //TODO: Write your own macroses here. |
− | |||
− | |||
− | |||
− | |||
В переменную | В переменную |
Текущая версия на 07:41, 16 ноября 2018
Актуально для версии 19
Если в административной панели, в модуле "Интернет-магазин", скопилось большое количество заказов, то удалять их вручную по-одному будет довольно утомительно. Чтобы облегчить задачу, можно сделать выборку с помощью Selector, получить все заказы, у которых, к примеру, последний раз изменялся статус заказа больше года назад, и удалить эти заказы. Ниже приведен код, который это делает:
public function deleteAllOrders () {
$orders = new selector('objects');
$orders->types('object-type')->name('emarket', 'order');
$time = 1461888000; // 29.4.2016
$orders->where('status_change_date')->eqless($time);
$umiObjects = umiObjectsCollection::getInstance();
foreach ($orders as $order) {
$id = $order->getId();
$umiObjects->delObject($id);
echo "удален заказ $id<br>";
}
}
Разместите данный код в файле classes/modules/custom.php после строки //TODO: Write your own macroses here.
В переменную
$time = 1328021732;
мы передаем дату, с которой будем сравнивать дату изменения статуса заказа (т.е. если дата последнего изменения статуса заказа старше чем эта - заказ будет удален). В данный момент это 31 января 2012 года, вы можете установить сюда свое значение, воспользовавшись Unixtime конвертером. Данный конвертер можно найти в свободном доступе в интернете - например, здесь http://www.cy-pr.com/tools/time/