大家好,感谢您的阅读, 我正在研究magento,我们正在使用geoip扩展来定位客户,然后根据他的位置确定正确的货币。 如果我为每个允许的货币设置一个国家,并为其他世界国家设置美元(如AED用于阿拉伯联合酋长国等等),这样做很有效。 但我被要求查看包含国家货币+美元(这是默认显示货币)的标题中的下拉列表。 我所做的是将所有国家添加到美元货币(允许使用美元货币)并添加我的下降,每件事情都没问题,货币正从下拉变化。 告诉我现在每件事都很好,但我的问题是默认显示货币是第一页加载时使用的货币而不是国家货币(显示在美元货币旁边的dorp中)。 如何强制系统使用国家/地区货币而不是在首页加载时使用USD? 任何帮助,任何想法都表示赞赏。 提前谢谢。
答案 0 :(得分:4)
如果您想根据访问者的国家/地区选择默认货币。请按以下步骤操作。(没有延伸的magento)
使用以下代码获取当前访问者的国家/地区。
define("GEOIP_DAT_FILE", $_SERVER['DOCUMENT_ROOT'] . "/geoip/GeoIP.dat");
define("GEOIP_INC_FILE", $_SERVER['DOCUMENT_ROOT'] . "/geoip/geoip.inc");
include(GEOIP_INC_FILE);
$_geoip = geoip_open(GEOIP_DAT_FILE ,GEOIP_STANDARD);
$_country_code = geoip_country_code_by_addr($_geoip, $_SERVER['REMOTE_ADDR']);
geoip_close($_geoip);
。设置这样的东西,(根据你的要求修改。)
public function getCurrentCurrencyCode()
{
if (is_null($this->_getData('current_currency_code'))) {
// do not use Mage::app()->getStore()->getCurrentCurrencyCode() because of probability
// to get an invalid (without base rate) currency from code saved in session
switch ($_country_code) {
case 'IN':
$currency_code = 'INR';
break;
case 'FR':
$currency_code = 'EUR';
break;
default:
$currency_code = 'USD';
break;
}
$this->setData($currency_code, Mage::app()->getStore()->getCurrentCurrency()->getCode());
}
return $this->_getData('current_currency_code');
}
希望,这会帮助你。