1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Persistent\Model\Checkout;
use Magento\Persistent\Helper\Session as PersistentSession;
use Magento\Persistent\Helper\Data as PersistentHelper;
use Magento\Checkout\Model\Session as CheckoutSession;
use Magento\Quote\Model\QuoteIdMaskFactory;
use Magento\Customer\Model\Session as CustomerSession;
class ConfigProviderPlugin
{
/**
* @var PersistentSession
*/
private $persistentSession;
/**
* @var PersistentHelper
*/
private $persistentHelper;
/**
* @var CheckoutSession
*/
private $checkoutSession;
/**
* @var QuoteIdMaskFactory
*/
private $quoteIdMaskFactory;
/**
* @var CustomerSession
*/
private $customerSession;
/**
* @param PersistentHelper $persistentHelper
* @param PersistentSession $persistentSession
* @param CheckoutSession $checkoutSession
* @param QuoteIdMaskFactory $quoteIdMaskFactory
* @param CustomerSession $customerSession
*/
public function __construct(
PersistentHelper $persistentHelper,
PersistentSession $persistentSession,
CheckoutSession $checkoutSession,
QuoteIdMaskFactory $quoteIdMaskFactory,
CustomerSession $customerSession
) {
$this->persistentHelper = $persistentHelper;
$this->persistentSession = $persistentSession;
$this->checkoutSession = $checkoutSession;
$this->quoteIdMaskFactory = $quoteIdMaskFactory;
$this->customerSession = $customerSession;
}
/**
* @param \Magento\Checkout\Model\DefaultConfigProvider $subject
* @param array $result
* @return array
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function afterGetConfig(\Magento\Checkout\Model\DefaultConfigProvider $subject, array $result)
{
if ($this->persistentHelper->isEnabled()
&& $this->persistentSession->isPersistent()
&& !$this->customerSession->isLoggedIn()
) {
/** @var $quoteIdMask \Magento\Quote\Model\QuoteIdMask */
$quoteIdMask = $this->quoteIdMaskFactory->create();
$result['quoteData']['entity_id'] = $quoteIdMask->load(
$this->checkoutSession->getQuote()->getId(),
'quote_id'
)->getMaskedId();
}
return $result;
}
}