3
3
* Copyright © Magento, Inc. All rights reserved.
4
4
* See COPYING.txt for license details.
5
5
*/
6
+
6
7
namespace Magento \SalesRule \Model \Plugin ;
7
8
9
+ use Magento \Quote \Model \Quote \Config ;
8
10
use Magento \SalesRule \Model \ResourceModel \Rule as RuleResource ;
9
11
10
12
/**
@@ -15,31 +17,50 @@ class QuoteConfigProductAttributes
15
17
/**
16
18
* @var RuleResource
17
19
*/
18
- protected $ _ruleResource ;
20
+ private $ ruleResource ;
21
+
22
+ /**
23
+ * @var array|null
24
+ */
25
+ private $ activeAttributes ;
19
26
20
27
/**
21
28
* @param RuleResource $ruleResource
22
29
*/
23
30
public function __construct (RuleResource $ ruleResource )
24
31
{
25
- $ this ->_ruleResource = $ ruleResource ;
32
+ $ this ->ruleResource = $ ruleResource ;
26
33
}
27
34
28
35
/**
29
36
* Append sales rule product attribute keys to select by quote item collection
30
37
*
31
- * @param \Magento\Quote\Model\Quote\ Config $subject
38
+ * @param Config $subject
32
39
* @param array $attributeKeys
33
40
*
34
41
* @return array
35
42
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
36
43
*/
37
- public function afterGetProductAttributes (\ Magento \ Quote \ Model \ Quote \ Config $ subject , array $ attributeKeys )
44
+ public function afterGetProductAttributes (Config $ subject , array $ attributeKeys ): array
38
45
{
39
- $ attributes = $ this ->_ruleResource ->getActiveAttributes ();
46
+ $ attributes = $ this ->getActiveAttributes ();
47
+
40
48
foreach ($ attributes as $ attribute ) {
41
49
$ attributeKeys [] = $ attribute ['attribute_code ' ];
42
50
}
51
+
43
52
return $ attributeKeys ;
44
53
}
54
+
55
+ /**
56
+ * @return array
57
+ */
58
+ private function getActiveAttributes (): array
59
+ {
60
+ if ($ this ->activeAttributes === null ) {
61
+ $ this ->activeAttributes = $ this ->ruleResource ->getActiveAttributes ();
62
+ }
63
+
64
+ return $ this ->activeAttributes ;
65
+ }
45
66
}
0 commit comments