gpt4 book ai didi

magento - 以编程方式切换商店magento 2

转载 作者:行者123 更新时间:2023-12-02 01:06:43 24 4
gpt4 key购买 nike

我正在尝试以编程方式切换商店。我使用以下代码来实现它:

/**
* @var \Magento\Store\Model\StoreManagerInterface
*/

protected $_storeManager;

public function __construct(
\Magento\Store\Model\StoreManagerInterface $storeManager
) {
$this->_storeManager = $storeManager;
}

然后:

$this->_storeManager->setCurrentStore('YOUR_STORE_ID');

https://magento.stackexchange.com/a/173763/59686 中给出

但是没有成功。店面仅显示(选择)默认商店。

我也试过这个 url 方案 http://mystoreurl.com/?___store=storeId但它只显示具有给定 id 的商店而不是完全切换商店,这意味着当我访问主 url (http:mystoreurl.com) 时,它再次显示默认商店。有没有办法以编程方式切换商店,就像从管理员中选择默认商店一样。

或者有什么方法可以添加一些现成的小部件来切换商店(Store Switcher)。我使用的主题没有默认的 Magento Luma 主题提供的自动填充商店切换器的功能。

最佳答案

你需要做更多:

use Magento\Store\Model\Store;
use Magento\Framework\App\Http\Context as HttpContext;
use Magento\Store\Api\StoreCookieManagerInterface;
use Magento\Store\Api\StoreRepositoryInterface;

[...]

public function __construct
(
HttpContext $httpContext,
StoreCookieManagerInterface $storeCookieManager,
StoreRepositoryInterface $storeRepository

) {
$this->httpContext = $httpContext;
$this->storeCookieManager = $storeCookieManager;
$this->storeRepository = $storeRepository;
}

[...]

public function yourFunction(){

$store = $this->storeRepository->getActiveStoreByCode('YOUR_STORE_CODE');
$this->httpContext->setValue(Store::ENTITY, 'YOUR_STORE_CODE', 'DEFAULT_STORE_CODE');
$this->storeCookieManager->setStoreCookie($store);

}

关于magento - 以编程方式切换商店magento 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47204131/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com