コード例 #1
0
 /**
  * @param \Magento\Catalog\Model\ProductOptions\ConfigInterface $productOptionConfig
  * @param \Magento\Catalog\Model\Config\Source\Product\Options\Price $priceConfig
  */
 public function __construct(\Magento\Catalog\Model\ProductOptions\ConfigInterface $productOptionConfig, \Magento\Catalog\Model\Config\Source\Product\Options\Price $priceConfig)
 {
     foreach ($productOptionConfig->getAll() as $option) {
         foreach ($option['types'] as $type) {
             $this->productOptionTypes[] = $type['name'];
         }
     }
     foreach ($priceConfig->toOptionArray() as $item) {
         $this->priceTypes[] = $item['value'];
     }
 }
コード例 #2
0
 /**
  * Retrieve price types
  *
  * @return array
  */
 protected function getPriceTypes()
 {
     $priceTypes = $this->productOptionsPrice->toOptionArray();
     $productType = $this->locator->getProduct()->getTypeId();
     $exceptions = $this->getNotSupportedPriceTypes();
     if (isset($exceptions[$productType])) {
         $i = 0;
         while ($i < count($priceTypes)) {
             if (in_array($priceTypes[$i]['value'], $exceptions[$productType])) {
                 unset($priceTypes[$i]);
                 continue;
             }
             $i += 1;
         }
     }
     return $priceTypes;
 }
コード例 #3
0
 /**
  * @return $this
  */
 protected function _prepareLayout()
 {
     $this->setChild('option_price_type', $this->getLayout()->addBlock('Magento\\Framework\\View\\Element\\Html\\Select', $this->getNameInLayout() . '.option_price_type', $this->getNameInLayout())->setData(['id' => 'product_option_<%- data.option_id %>_price_type', 'class' => 'select product-option-price-type']));
     $this->getChildBlock('option_price_type')->setName('product[options][<%- data.option_id %>][price_type]')->setOptions($this->_optionPrice->toOptionArray());
     return parent::_prepareLayout();
 }
コード例 #4
0
ファイル: CustomOptions.php プロジェクト: rafaelstz/magento2
 /**
  * Get config for "Price Type" field
  *
  * @param int $sortOrder
  * @param array $config
  * @return array
  */
 protected function getPriceTypeFieldConfig($sortOrder, array $config = [])
 {
     return array_replace_recursive(['arguments' => ['data' => ['config' => ['label' => __('Price Type'), 'componentType' => Field::NAME, 'formElement' => Select::NAME, 'dataScope' => static::FIELD_PRICE_TYPE_NAME, 'dataType' => Text::NAME, 'sortOrder' => $sortOrder, 'options' => $this->productOptionsPrice->toOptionArray()]]]], $config);
 }