Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Combine.php
Go to the documentation of this file.
1 <?php
11 
13 {
17  protected $_productFactory;
18 
24  public function __construct(
25  \Magento\Rule\Model\Condition\Context $context,
26  \Magento\CatalogRule\Model\Rule\Condition\ProductFactory $conditionFactory,
27  array $data = []
28  ) {
29  $this->_productFactory = $conditionFactory;
30  parent::__construct($context, $data);
31  $this->setType(\Magento\CatalogRule\Model\Rule\Condition\Combine::class);
32  }
33 
37  public function getNewChildSelectOptions()
38  {
39  $productAttributes = $this->_productFactory->create()->loadAttributeOptions()->getAttributeOption();
40  $attributes = [];
41  foreach ($productAttributes as $code => $label) {
42  $attributes[] = [
43  'value' => 'Magento\CatalogRule\Model\Rule\Condition\Product|' . $code,
44  'label' => $label,
45  ];
46  }
47  $conditions = parent::getNewChildSelectOptions();
48  $conditions = array_merge_recursive(
49  $conditions,
50  [
51  [
52  'value' => \Magento\CatalogRule\Model\Rule\Condition\Combine::class,
53  'label' => __('Conditions Combination'),
54  ],
55  ['label' => __('Product Attribute'), 'value' => $attributes]
56  ]
57  );
58  return $conditions;
59  }
60 
65  public function collectValidatedAttributes($productCollection)
66  {
67  foreach ($this->getConditions() as $condition) {
69  $condition->collectValidatedAttributes($productCollection);
70  }
71  return $this;
72  }
73 }
__()
Definition: __.php:13
__construct(\Magento\Rule\Model\Condition\Context $context, \Magento\CatalogRule\Model\Rule\Condition\ProductFactory $conditionFactory, array $data=[])
Definition: Combine.php:24
$label
Definition: details.phtml:21
$attributes
Definition: matrix.phtml:13
$code
Definition: info.phtml:12