Example #1
0
 /**
  * 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;
 }