Массовое удаление товаров minishop2 (не опубликованных)

Всем привет, может у кого есть код для консоли, что бы массово удалить не опубликованные товары в minishop2?
И есть ли возможность настроить как-то через cron?
Сергей
02 февраля 2022, 12:25
modx.pro
2
840
0

Комментарии: 5

Алексей
02 февраля 2022, 16:46
0
можно компонентом Batcher отметить все неопубликованные и удалить
    Артур Шевченко
    02 февраля 2022, 21:00
    0
    Вот так попробуй.
    $products = $modx->getIterator('msProduct', array('published:!=' => 1));
    foreach($products as $product){
    $product->remove();
    }
      Сергей
      02 февраля 2022, 21:19
      0
      Спасибо, я пробовал через консоль удалить, но у меня возникла проблема, фото не удаляются. в папках остаются фото оригиналов и ресайзы. И вроде 'published' => 0 можно так прописать)
        Артур Шевченко
        02 февраля 2022, 22:09
        0
        Ну это тоже не проблема.
        $products = $modx->getIterator('msProduct', array('published:!=' => 1));
        foreach($products as $product){
        $dir = MODX_CORE_PATH.'assets/images/products/'.$product->get('id').'/';
        removeDirectory($dir);
        $product->remove();
        }
        
         function removeDirectory($dir) {
                if ($objs = glob($dir."/*")) {
                    foreach($objs as $obj) {
                        is_dir($obj) ? removeDirectory($obj) : unlink($obj);
                    }
                }
                rmdir($dir);
            }
          Сергей
          02 февраля 2022, 23:13
          0
          Спасибо, потестирую
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      5