public function emptyExpiredCartProducts() { if (IS_PRODUCT_RESERVE) { $stockroomhelper = new rsstockroomhelper(); $session = JFactory::getSession(); $db = JFactory::getDbo(); $cart = $session->get('cart'); $session_id = session_id(); $carttimeout = (int) CART_TIMEOUT; $time = time() - $carttimeout * 60; $sql = "SELECT product_id FROM " . $this->_table_prefix . "cart " . "WHERE session_id = " . $db->quote($session_id) . " " . "AND section='product' " . "AND time < {$time} "; $db->setQuery($sql); $deletedrs = $db->loadResultArray(); $sql = "SELECT product_id FROM " . $this->_table_prefix . "cart " . "WHERE session_id = " . $db->quote($session_id) . " " . "AND section='product' "; $db->setQuery($sql); $includedrs = $db->loadResultArray(); $cart = $session->get('cart'); if ($cart) { $idx = (int) $cart['idx']; for ($j = 0; $j < $idx; $j++) { if (count($deletedrs) > 0 && in_array($cart[$j]['product_id'], $deletedrs)) { $this->delete($j); } if (count($includedrs) > 0 && !in_array($cart[$j]['product_id'], $includedrs)) { $this->delete($j); } } } $stockroomhelper->deleteExpiredCartProduct(); } }