Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Options.php
Go to the documentation of this file.
1 <?php
7 
9 
10 class Options
11 {
15  protected $config;
16 
20  protected $msrpData;
21 
26  public function __construct(
27  \Magento\Msrp\Model\Config $config,
28  \Magento\Msrp\Helper\Data $msrpData
29  ) {
30  $this->config = $config;
31  $this->msrpData = $msrpData;
32  }
33 
40  public function isEnabled($product, $visibility = null)
41  {
42  $visibilities = $this->getVisibilities($product);
43 
44  $result = (bool)$visibilities ? true : null;
45  if ($result && $visibility !== null) {
46  if ($visibilities) {
47  $maxVisibility = max($visibilities);
48  $result = $result && $maxVisibility == $visibility;
49  } else {
50  $result = false;
51  }
52  }
53 
54  return $result;
55  }
56 
61  protected function getVisibilities($product)
62  {
64  $collection = $product->getTypeInstance()->getAssociatedProducts($product) ?: [];
65  $visibilities = [];
67  foreach ($collection as $item) {
68  if ($this->msrpData->canApplyMsrp($item)) {
69  $visibilities[] = $item->getMsrpDisplayActualPriceType() == TypePrice::TYPE_USE_CONFIG
70  ? $this->config->getDisplayActualPriceType()
71  : $item->getMsrpDisplayActualPriceType();
72  }
73  }
74  return $visibilities;
75  }
76 }
isEnabled($product, $visibility=null)
Definition: Options.php:40
__construct(\Magento\Msrp\Model\Config $config, \Magento\Msrp\Helper\Data $msrpData)
Definition: Options.php:26