Model/Rules.php
public function processAndCombination($collection, $conditions)
    {
        foreach ($conditions as $condition) {
            $attribute = $condition['attribute'];
            $cond = $condition['conditions'];
            $value = $condition['cvalue'];

            //ignore condition if value is null or empty
            if ($value == '' || $value == null) {
                continue;
            }

            //ignore conditions for already used attribute
            if (in_array($attribute, $this->used)) {
                continue;
            }
            //set used to check later
            $this->used[] = $attribute;

            //product review
            if ($this->ruleType == self::REVIEW && isset($this->attributeMapForQuote[$attribute])) {
                $attribute = $this->attributeMapForOrder[$attribute];
                //abandoned cart
            } elseif ($this->ruleType == self::ABANDONED && isset($this->attributeMapForOrder[$attribute])) {
                $attribute = $this->attributeMapForQuote[$attribute];
            } else {
                $this->productAttribute[] = $condition;
                continue;
            }

            $collection = $this->processProcessAndCombinationCondition($collection, $cond, $value, $attribute);
        }

        return $this->processProductAttributes($collection);
    }
public function processAndCombination($collection, $conditions)
    {
        foreach ($conditions as $condition) {
            $attribute = $condition['attribute'];
            $cond = $condition['conditions'];
            $value = $condition['cvalue'];

            //ignore condition if value is null or empty
            if ($value == '' || $value == null) {
                continue;
            }

            //ignore conditions for already used attribute
            if (in_array($attribute, $this->used)) {
                continue;
            }
            //set used to check later
            $this->used[] = $attribute;

            //product review
            if ($this->ruleType == self::REVIEW && isset($this->attributeMapForQuote[$attribute])) {
                $attribute = $this->attributeMapForOrder[$attribute];
                //abandoned cart
            } elseif ($this->ruleType == self::ABANDONED && isset($this->attributeMapForOrder[$attribute])) {
                $attribute = $this->attributeMapForQuote[$attribute];
            } else {
                $this->productAttribute[] = $condition;
                continue;
            }

            $collection = $this->processProcessAndCombinationCondition($collection, $cond, $value, $attribute);
        }

        return $this->processProductAttributes($collection);
    }
public function processAndCombination ( $ collection , $ conditions ) { foreach ( $ conditions as $ condition ) { $ attribute = $ condition [ 'attribute' ] ; $ cond = $ condition [ 'conditions' ] ; $ value = $ condition [ 'cvalue' ] ; //ignore condition if value is null or empty if ( $ value == '' || $ value == null ) { continue ; } //ignore conditions for already used attribute if ( in_array ( $ attribute , $ this -> used ) ) { continue ; } //set used to check later $ this -> used [ ] = $ attribute ; //product review if ( $ this -> ruleType == self :: REVIEW && isset ( $ this -> attributeMapForQuote [ $ attribute ] ) ) { $ attribute = $ this -> attributeMapForOrder [ $ attribute ] ; //abandoned cart } elseif ( $ this -> ruleType == self :: ABANDONED && isset ( $ this -> attributeMapForOrder [ $ attribute ] ) ) { $ attribute = $ this -> attributeMapForQuote [ $ attribute ] ; } else { $ this -> productAttribute [ ] = $ condition ; continue ; } $ collection = $ this -> processProcessAndCombinationCondition ( $ collection , $ cond , $ value , $ attribute ) ; } return $ this -> processProductAttributes ( $ collection ) ; }
Process And combination on collection.

@param \Magento\Sales\Model\ResourceModel\Order\Collection|
\Magento\Quote\Model\ResourceModel\Quote\Collectio $collection
@param array $conditions

@return \Magento\Sales\Model\ResourceModel\Order\Collection|
\Magento\Quote\Model\ResourceModel\Quote\Collection $collection
Process And combination on collection .