目前,税收似乎是根据登录客户的位置显示的。
这对我不起作用有两个原因。我有一个扩展程序,可以根据客户 ip 自动显示货币,而且没有登录选项,它只是客人结帐。
所以我真的需要它根据显示的货币显示正确的价格。
有谁知道代码在哪里,或者如何正确调整显示的价格?
任何帮助是极大的赞赏。
谢谢
-詹姆士
我想您应该扩展您用于基于 IP 地址显示货币的扩展名。
找到填充基于用户 IP 地址的货币的代码行并调用:
$this->currency->set($currency_code);
其中$currency_code
应该是管理中设置的货币的 3 个字符的货币 ISO 代码(例如USD、EUR等)。
通过这种方式,您可以设置用于价格计算的货币——这反映了基于用户 IP 地址的货币。然后将此货币代码保存到会话和 cookie 中,以便它可以在 OpenCart 前端的任何页面上工作。
我认同
返回当前设置货币的 3 字符 ISO 4217 货币代码。
// Return when Pound Sterling is the set currency
$currency_code = $this->currency->getCode();
var_dump($currency_code); // string 'GBP' (length=3)
你也可以
$this->currency->set($currency_code);
请找到货币文件https://github.com/opencart/opencart/blob/master/upload/system/library/currency.php
谢谢
我想我找到了正确的方法:转到文件系统/库/tax.php。
第 27 行:
if(!$reg){
if($currentCurrency == "CHF"){
$country_id = 204;
}else if($currentCurrency == "EUR"){
$country_id = 81;
}
}
这将根据所选货币设置用户所在的国家/地区,并将设置国家/地区进行税收计算。