diff -Nuar a/vendor/magento/module-store/Controller/Store/Redirect.php b/vendor/magento/module-store/Controller/Store/Redirect.php index 21692e9d6dd..22a34e3ffd7 100644 --- a/vendor/magento/module-store/Controller/Store/Redirect.php +++ b/vendor/magento/module-store/Controller/Store/Redirect.php @@ -12,6 +12,7 @@ use Magento\Framework\App\ResponseInterface; use Magento\Framework\Exception\NoSuchEntityException; use Magento\Store\Api\StoreRepositoryInterface; use Magento\Store\Api\StoreResolverInterface; +use Magento\Store\Model\StoreManagerInterface; use Magento\Store\Model\StoreResolver; use Magento\Framework\Session\SidResolverInterface; use Magento\Framework\Session\Generic as Session; @@ -42,24 +43,32 @@ class Redirect extends \Magento\Framework\App\Action\Action private $session; /** + * @var StoreManagerInterface + */ + private $storeManager; + + /** * @param Context $context * @param StoreRepositoryInterface $storeRepository * @param StoreResolverInterface $storeResolver * @param Session $session * @param SidResolverInterface $sidResolver + * @param StoreManagerInterface $storeManager */ public function __construct( Context $context, StoreRepositoryInterface $storeRepository, StoreResolverInterface $storeResolver, Session $session, - SidResolverInterface $sidResolver + SidResolverInterface $sidResolver, + StoreManagerInterface $storeManager ) { parent::__construct($context); $this->storeRepository = $storeRepository; $this->storeResolver = $storeResolver; $this->session = $session; $this->sidResolver = $sidResolver; + $this->storeManager = $storeManager; } /** @@ -81,6 +90,9 @@ class Redirect extends \Magento\Framework\App\Action\Action try { /** @var \Magento\Store\Model\Store $targetStore */ $fromStore = $this->storeRepository->get($fromStoreCode); + /** @var Store $targetStore */ + $targetStore = $this->storeRepository->get($targetStoreCode); + $this->storeManager->setCurrentStore($targetStore); } catch (NoSuchEntityException $e) { $error = __('Requested store is not found'); }