![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/job-board.corals.io/Corals/modules/Marketplace/Classes/ |
<?php namespace Corals\Modules\Marketplace\Classes; use Corals\Modules\Marketplace\Traits\CartOptionsMagicMethodsTrait; /** * Class CartItemOption. * * @property float price * @property array options * @property array items */ class CartSubItem { use CartOptionsMagicMethodsTrait; const ITEMS = 'items'; public $locale; public $internationalFormat; private $itemHash; /** * @param $options */ public function __construct($options) { $this->options['items'] = []; foreach ($options as $option => $value) { \Arr::set($this->options, $option, $value); } $this->itemHash = md5(json_encode($this->options)); } /** * Gets the hash for the item. * * @return mixed */ public function getHash() { return $this->itemHash; } /** * Gets the formatted price. * * @param bool|true $format * @param bool $taxedItemsOnly * * @return string */ public function price($format = true, $taxedItemsOnly = true) { $price = $this->price; if (isset($this->items)) { foreach ($this->items as $item) { if ($taxedItemsOnly && !$item->taxable) { continue; } $price += $item->price(false, $taxedItemsOnly); } } return ShoppingCart::formatMoney($price, $this->locale, $this->internationalFormat, $format); } /** * Search for matching options on the item. * * @return mixed */ public function find($data) { foreach ($data as $key => $value) { if ($this->$key === $value) { return $this; } } } }