/** * 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); } } }