diff --git a/vendor/magento/module-advanced-sales-rule/Model/Rule/Condition/FilterTextGenerator/Address/AbstractFilterGenerator.php b/vendor/magento/module-advanced-sales-rule/Model/Rule/Condition/FilterTextGenerator/Address/AbstractFilterGenerator.php index 80dd7eca427..35bf43f6a16 100644 --- a/vendor/magento/module-advanced-sales-rule/Model/Rule/Condition/FilterTextGenerator/Address/AbstractFilterGenerator.php +++ b/vendor/magento/module-advanced-sales-rule/Model/Rule/Condition/FilterTextGenerator/Address/AbstractFilterGenerator.php @@ -6,6 +6,8 @@ namespace Magento\AdvancedSalesRule\Model\Rule\Condition\FilterTextGenerator\Address; use Magento\AdvancedRule\Model\Condition\FilterTextGeneratorInterface; +use Magento\Quote\Model\Quote\Address; +use Magento\Framework\DataObject; abstract class AbstractFilterGenerator implements FilterTextGeneratorInterface { @@ -23,14 +25,16 @@ abstract class AbstractFilterGenerator implements FilterTextGeneratorInterface } /** - * @param \Magento\Framework\DataObject $quoteAddress + * Generate filter text for the given address + * + * @param DataObject $quoteAddress * @return string[] */ - public function generateFilterText(\Magento\Framework\DataObject $quoteAddress) + public function generateFilterText(DataObject $quoteAddress) { $filterText = []; - if ($quoteAddress instanceof \Magento\Quote\Model\Quote\Address) { - $value = $quoteAddress->getData($this->attribute); + if ($quoteAddress instanceof Address) { + $value = $quoteAddress->getData($this->attribute) ?? $quoteAddress->getQuote()->getPayment()->getMethod(); if (is_scalar($value)) { $filterText[] = $this->getFilterTextPrefix() . $this->attribute . ':' . $value; } @@ -39,6 +43,8 @@ abstract class AbstractFilterGenerator implements FilterTextGeneratorInterface } /** + * Abstract function + * * @return string */ abstract protected function getFilterTextPrefix();