_scopeConfig = $scopeConfig; } /** * Check is allowed guest checkout if quote contain downloadable product(s) * * @param \Magento\Framework\Event\Observer $observer * @return $this */ public function execute(\Magento\Framework\Event\Observer $observer) { $store = $observer->getEvent()->getStore(); $result = $observer->getEvent()->getResult(); if (!$this->_scopeConfig->isSetFlag( self::XML_PATH_DISABLE_GUEST_CHECKOUT, ScopeInterface::SCOPE_STORE, $store )) { return $this; } /* @var $quote \Magento\Quote\Model\Quote */ $quote = $observer->getEvent()->getQuote(); foreach ($quote->getAllItems() as $item) { if (($product = $item->getProduct()) && $product->getTypeId() == \Magento\Downloadable\Model\Product\Type::TYPE_DOWNLOADABLE ) { $result->setIsAllowed(false); break; } } return $this; } }