Пример #1
0
 /**
  * Remove carts that have not been accessed for a given number of days (depending on store config)
  */
 public function deleteOldCarts()
 {
     $this->import('Database');
     $time = time() - $GLOBALS['TL_CONFIG']['iso_cartTimeout'];
     $objCarts = $this->Database->execute("SELECT id FROM tl_iso_cart WHERE tstamp<{$time}");
     if ($objCarts->numRows) {
         $arrIds = array();
         $objCart = new IsotopeCart();
         foreach ($objCarts->fetchEach('id') as $id) {
             if ($objCart->findBy('id', $id)) {
                 $objOrder = new IsotopeOrder();
                 if ($objOrder->findBy('cart_id', $objCart->id)) {
                     if ($objOrder->status == '') {
                         $objOrder->delete();
                     }
                 }
                 $objCart->delete();
                 $arrIds[] = $id;
             }
         }
         if (!empty($arrIds)) {
             $this->log('Purged ' . count($arrIds) . ' old guest carts', __METHOD__, TL_CRON);
         }
     }
 }