/** * @param \Magento\Eav\Model\Entity\Collection\AbstractCollection $resultCollection * @param \Magento\Catalog\Block\Product\ListProduct $subject * @return \Magento\Eav\Model\Entity\Collection\AbstractCollection $resultCollection */ public function afterGetLoadedProductCollection(\Magento\Catalog\Block\Product\ListProduct $subject, $resultCollection) { if ($resultCollection->count() == 1) { /** @var \Magento\Catalog\Model\Product $product */ $product = $resultCollection->getFirstItem(); $this->response->setRedirect($product->getProductUrl()); } return $resultCollection; }
/** * Handler for session errors * * @param \Exception $exception * @return bool */ private function handleSessionException(\Exception $exception) { if ($exception instanceof \Magento\Framework\Exception\SessionException) { $this->_response->setRedirect($this->_request->getDistroBaseUrl()); $this->_response->sendHeaders(); return true; } return false; }
/** * Handler for session errors * * @param Bootstrap $bootstrap * @param \Exception $exception * @return bool */ private function handleSessionException(Bootstrap $bootstrap, \Exception $exception) { if ($exception instanceof \Magento\Framework\Session\Exception) { $path = $this->getBaseUrlPath($bootstrap->getParams()); $this->_response->setRedirect($path); $this->_response->sendHeaders(); return true; } return false; }
/** * Run fall-back correction * * @return bool */ public function doFallbackCorrection() { $queryText = $this->queryHelper->getQueryText(); $fallbackText = $this->queryHelper->fallback($queryText); if ($fallbackText && $fallbackText != $queryText && $fallbackText != $this->queryHelper->getFallbackText()) { $url = $this->queryHelper->getFallbackUrl($queryText, $fallbackText); $this->response->setRedirect($url); return true; } return false; }
/** * Authenticate controller action by login customer * * @param bool|null $loginUrl * @return bool */ public function authenticate($loginUrl = null) { if ($this->isLoggedIn()) { return true; } $this->setBeforeAuthUrl($this->_createUrl()->getUrl('*/*/*', ['_current' => true])); if (isset($loginUrl)) { $this->response->setRedirect($loginUrl); } else { $arguments = $this->_customerUrl->getLoginUrlParams(); if ($this->_session->getCookieShouldBeReceived() && $this->_createUrl()->getUseSession()) { $arguments += ['_query' => [$this->sidResolver->getSessionIdQueryParam($this->_session) => $this->_session->getSessionId()]]; } $this->response->setRedirect($this->_createUrl()->getUrl(\Magento\Customer\Model\Url::ROUTE_ACCOUNT_LOGIN, $arguments)); } return false; }
/** * {@inheritdoc} */ public function setRedirect($url, $code = 302) { $pluginInfo = $this->pluginList->getNext($this->subjectType, 'setRedirect'); if (!$pluginInfo) { return parent::setRedirect($url, $code); } else { return $this->___callPlugins('setRedirect', func_get_args(), $pluginInfo); } }