Exemplo n.º 1
0
 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();
     }
 }