如何解决检查用户在Magento 2中选择一种货币当前用户会话币种
我的Magento 2网站上有2种货币。 USD是基础货币,SAR(SAR)是第二种货币。在我的网站标题中,有一个下拉列表,用户可以在其中选择商店的货币。当用户访问该网站时,他可以看到每个以美元为单位的产品价值,如果用户将下拉菜单中的货币更改为里亚尔,那么他可以以SAR看到每个产品价值。
现在,我需要从沙特访问该网站的用户。他需要用SAR货币查看商店。为此,我编写了一个模块,它运行正常。
我的问题是,如果用户访问并尝试更改下拉菜单中的商店货币,页面将重新加载,并且下拉菜单重置为SAR,并且SAR货币会显示在产品上。
这是我在 my-module / observer / changecurrency.PHP
中的代码if($country=='saudi'){
$currency = 'SAR';
$this->storeManager->getStore()->setCurrentCurrencyCode($currency);
}
在这里我要检查用户是否选择了美元货币。如果用户选择美元,则必须以美元货币显示产品,否则必须以特区货币显示产品。
解决方法
您将错误的$currency
值传递给$this->storeManager->getStore()->setCurrentCurrencyCode($currency)
您必须输入正确的货币代码。有关可接受的货币代码的列表,请通过调用并检查以下结果来查看已配置的货币代码:
$this->storeManager->getStore()->getAvailableCurrencyCodes()
然后,您可以将正确的货币代码传递给setCurrentCurrencyCode
if ('saudi' == $country){
$currency = 'SAR';
$this->storeManager->getStore()->setCurrentCurrencyCode($currency);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。