orderRepository = $orderRepository; $this->customerSession = $customerSession; parent::__construct( $context ); } /** * @return bool */ public function isAllow() { return $this->isAllowed(); } /** * Check if reorder is allowed for given store * * @param \Magento\Store\Model\Store|int|null $store * @return bool */ public function isAllowed($store = null) { if ($this->scopeConfig->getValue( self::XML_PATH_SALES_REORDER_ALLOW, \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $store )) { return true; } return false; } /** * Check is it possible to reorder * * @param int $orderId * @return bool */ public function canReorder($orderId) { $order = $this->orderRepository->get($orderId); if (!$this->isAllowed($order->getStore())) { return false; } if ($this->customerSession->isLoggedIn()) { return $order->canReorder(); } else { return true; } } }