/** * @param Product $product New product for the item. */ public function setProduct(Product $product) { $this->productId = $product->getId(); $this->product = $product; $this->type = $product->getType(); $this->taxClasses = $product->getTaxClasses(); }
/** * Formats stock status appropriately to the product type and returns a string. * * @param Entity\Product $product * * @return string */ public static function getStock(Entity\Product $product) { if (!$product instanceof Entity\Product\Purchasable) { return ''; } /**@var $product Entity\Product */ switch ($product->getType()) { case Entity\Product\Simple::TYPE: case Entity\Product\Virtual::TYPE: case Entity\Product\Downloadable::TYPE: /** @var $product Entity\Product\Simple */ $stock = $product->getStock()->getStatus() == Entity\Product\Attributes\StockStatus::IN_STOCK ? _x('In stock', 'product', 'jigoshop') : '<strong class="attention">' . _x('Out of stock', 'product', 'jigoshop') . '</strong>'; if (!self::$options->get('products.show_stock') || !$product->getStock()->getManage()) { break; } $stock = sprintf(_x('%s <strong>(%d available)</strong>', 'product', 'jigoshop'), $stock, $product->getStock()->getStock()); break; default: $stock = apply_filters('jigoshop\\helper\\product\\get_stock', '', $product); break; } return apply_filters('jigoshop\\helper\\product\\get_stock\\stock', $stock, $product); }