微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

检查用户在Magento 2中选择一种货币当前用户会话币种

如何解决检查用户在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 举报,一经查实,本站将立刻删除。