Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
RemoveGuestPersistenceOnEmptyCartObserver.php
Go to the documentation of this file.
1 <?php
7 
10 
15 {
21  private $customerSession;
22 
28  private $persistenceSessionHelper;
29 
35  private $quoteManager;
36 
42  private $persistenceDataHelper;
43 
49  private $cartRepository;
50 
60  public function __construct(
61  \Magento\Persistent\Helper\Session $persistenceSessionHelper,
62  \Magento\Persistent\Helper\Data $persistenceDataHelper,
63  \Magento\Persistent\Model\QuoteManager $quoteManager,
64  \Magento\Customer\Model\Session $customerSession,
65  \Magento\Quote\Api\CartRepositoryInterface $cartRepository
66  ) {
67  $this->persistenceSessionHelper = $persistenceSessionHelper;
68  $this->customerSession = $customerSession;
69  $this->quoteManager = $quoteManager;
70  $this->persistenceDataHelper = $persistenceDataHelper;
71  $this->cartRepository = $cartRepository;
72  }
73 
81  public function execute(\Magento\Framework\Event\Observer $observer)
82  {
83  if (!$this->persistenceSessionHelper->isPersistent()
84  || $this->customerSession->isLoggedIn()
85  || !$this->persistenceDataHelper->isShoppingCartPersist()
86  ) {
87  return;
88  }
89 
90  try {
91  $custId = $this->persistenceSessionHelper->getSession()->getCustomerId();
93  $cart = $this->cartRepository->getActiveForCustomer($custId);
94  } catch (NoSuchEntityException $entityException) {
95  $cart = null;
96  }
97 
98  if (!$cart || $cart->getItemsCount() == 0) {
99  $this->quoteManager->setGuest();
100  }
101  }
102 }
$cartRepository
Definition: quote.php:18
__construct(\Magento\Persistent\Helper\Session $persistenceSessionHelper, \Magento\Persistent\Helper\Data $persistenceDataHelper, \Magento\Persistent\Model\QuoteManager $quoteManager, \Magento\Customer\Model\Session $customerSession, \Magento\Quote\Api\CartRepositoryInterface $cartRepository)