/** * Check if cart contains only virtual products * @return bool true if is a virtual cart or false */ public function isVirtualCart() { if (!JeproshopProductDownloadModelProductDownload::isFeaturePublished()) { return false; } if (!isset(self::$_isVirtualCart[$this->cart_id])) { $products = $this->getProducts(); if (!count($products)) { return false; } $is_virtual = 1; foreach ($products as $product) { if (empty($product->is_virtual)) { $is_virtual = 0; } } self::$_isVirtualCart[$this->cart_id] = (int) $is_virtual; } return self::$_isVirtualCart[$this->cart_id]; }
/** * Return the id_product_download from an id_product * * @param int $product_id Product the id * @return integer Product the id for this virtual product */ public static function getIdFromProductId($product_id) { if (!JeproshopProductDownloadModelProductDownload::isFeaturePublished()) { return false; } if (array_key_exists((int) $product_id, self::$_productIds)) { return self::$_productIds[$product_id]; } $db = JFactory::getDBO(); $query = "SELECT " . $db->quoteName('product_download_id') . " FROM " . $db->quoteName('#__jeproshop_product_download'); $query .= " WHERE " . $db->quoteName('product_id') . " = " . (int) $product_id . " AND " . $db->quoteName('published') . " = 1 "; $query .= "\tORDER BY " . $db->quoteName('product_download_id') . " DESC"; $db->setQuery($query); self::$_productIds[$product_id] = (int) $db->loadResult(); return self::$_productIds[$product_id]; }