/** * Calculate count of wishlist items and put value to customer session. * Method called after wishlist modifications and trigger 'wishlist_items_renewed' event. * Depends from configuration. * * @return $this */ public function calculate() { $count = 0; if ($this->getCustomer()) { $collection = $this->getWishlistItemCollection()->setInStockFilter(true); if ($this->scopeConfig->getValue(self::XML_PATH_WISHLIST_LINK_USE_QTY, \Magento\Store\Model\ScopeInterface::SCOPE_STORE)) { $count = $collection->getItemsQty(); } else { $count = $collection->getSize(); } $this->_customerSession->setWishlistDisplayType($this->scopeConfig->getValue(self::XML_PATH_WISHLIST_LINK_USE_QTY, \Magento\Store\Model\ScopeInterface::SCOPE_STORE)); $this->_customerSession->setDisplayOutOfStockProducts($this->scopeConfig->getValue(self::XML_PATH_CATALOGINVENTORY_SHOW_OUT_OF_STOCK, \Magento\Store\Model\ScopeInterface::SCOPE_STORE)); } $this->_customerSession->setWishlistItemCount($count); $this->_eventManager->dispatch('wishlist_items_renewed'); return $this; }
/** * Customer logout processing * * @param \Magento\Framework\Event\Observer $observer * @return $this * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function customerLogout(\Magento\Framework\Event\Observer $observer) { $this->_customerSession->setWishlistItemCount(0); return $this; }
/** * Customer logout processing * * @param Observer $observer * @return void */ public function execute(Observer $observer) { $this->customerSession->setWishlistItemCount(0); }