/** * Remove orders that have not been completed for a given number of days */ public function deleteOldOrders() { $t = Order::getTable(); $objOrders = Order::findBy(array("{$t}.order_status=0", "{$t}.tstamp<?"), array(time() - $GLOBALS['TL_CONFIG']['iso_orderTimeout'])); if (($intPurged = $this->deleteOldCollections($objOrders)) > 0) { \System::log('Deleted ' . $intPurged . ' incomplete orders', __METHOD__, TL_CRON); } }
/** * Get and update order draft for current cart or create one if it does not yet exist * * @return Order */ public function getDraftOrder() { if ($this->objDraftOrder === null) { $t = Order::getTable(); $objOrder = Order::findOneBy(array("{$t}.source_collection_id=?", "{$t}.locked=''"), array($this->id)); if ($objOrder === null) { $objOrder = Order::createFromCollection($this); } else { $objOrder->config_id = (int) $this->config_id; $objOrder->store_id = (int) $this->store_id; $objOrder->member = (int) $this->member; $objOrder->setShippingMethod($this->getShippingMethod()); $objOrder->setPaymentMethod($this->getPaymentMethod()); $objOrder->setShippingAddress($this->getShippingAddress()); $objOrder->setBillingAddress($this->getBillingAddress()); $objOrder->purge(); $arrItemIds = $objOrder->copyItemsFrom($this); $objOrder->updateDatabase(); // HOOK: order status has been updated if (isset($GLOBALS['ISO_HOOKS']['updateDraftOrder']) && is_array($GLOBALS['ISO_HOOKS']['updateDraftOrder'])) { foreach ($GLOBALS['ISO_HOOKS']['updateDraftOrder'] as $callback) { $objCallback = \System::importStatic($callback[0]); $objCallback->{$callback}[1]($objOrder, $this, $arrItemIds); } } } $this->objDraftOrder = $objOrder; } return $this->objDraftOrder; }