/** * Remove catalog attribute condition by attribute code from rule conditions * * @param \Magento\Rule\Model\Condition\Combine $combine * @param string $attributeCode * @return void */ protected function _removeAttributeFromConditions($combine, $attributeCode) { $conditions = $combine->getConditions(); foreach ($conditions as $conditionId => $condition) { if ($condition instanceof \Magento\Rule\Model\Condition\Combine) { $this->_removeAttributeFromConditions($condition, $attributeCode); } if ($condition instanceof \Magento\SalesRule\Model\Rule\Condition\Product) { if ($condition->getAttribute() == $attributeCode) { unset($conditions[$conditionId]); } } } $combine->setConditions($conditions); }