/** * Process scope query parameters. * * @param \Magento\Framework\Url\RouteParamsResolver $subject * @param callable $proceed * @param array $data * @param bool $unsetOldParams * @return \Magento\Framework\Url\RouteParamsResolver * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function aroundSetRouteParams(\Magento\Framework\Url\RouteParamsResolver $subject, \Closure $proceed, array $data, $unsetOldParams = true) { if (isset($data['_scope'])) { $subject->setScope($data['_scope']); unset($data['_scope']); } if (isset($data['_scope_to_url']) && (bool) $data['_scope_to_url'] === true) { $storeCode = $subject->getScope() ?: $this->storeManager->getStore()->getCode(); $useStoreInUrl = $this->scopeConfig->getValue(Store::XML_PATH_STORE_IN_URL, StoreScopeInterface::SCOPE_STORE, $storeCode); if (!$useStoreInUrl && !$this->storeManager->hasSingleStore()) { $this->queryParamsResolver->setQueryParam('___store', $storeCode); } } unset($data['_scope_to_url']); return $proceed($data, $unsetOldParams); }