如何为每个国家选择magento 1中的货币

时间:2014-09-07 05:42:26

标签: php magento currency geoip

大家好,感谢您的阅读, 我正在研究magento,我们正在使用geoip扩展来定位客户,然后根据他的位置确定正确的货币。 如果我为每个允许的货币设置一个国家,并为其他世界国家设置美元(如AED用于阿拉伯联合酋长国等等),这样做很有效。 但我被要求查看包含国家货币+美元(这是默认显示货币)的标题中的下拉列表。 我所做的是将所有国家添加到美元货币(允许使用美元货币)并添加我的下降,每件事情都没问题,货币正从下拉变化。 告诉我现在每件事都很好,但我的问题是默认显示货币是第一页加载时使用的货币而不是国家货币(显示在美元货币旁边的dorp中)。 如何强制系统使用国家/地区货币而不是在首页加载时使用USD? 任何帮助,任何想法都表示赞赏。 提前谢谢。

1 个答案:

答案 0 :(得分:4)

如果您想根据访问者的国家/地区选择默认货币。请按以下步骤操作。(没有延伸的magento)

  1. 下载https://www.maxmind.com/download/geoip/api/php-20120410/geoip.inchttp://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
  2. 提取GeoIP.dat.gz并将根目录中的一个文件夹命名为geoip。将geoip.inc和GeoIP.dat保存在该文件夹中。
  3. 将/app/code/core/Mage/Directory/Block/Currency.php复制到local / Mage / Directory / Block / Currency.php
  4. 使用以下代码获取当前访问者的国家/地区。

    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);
    
  5. 方法getCurrentCurrencyCode()中的
  6. 。设置这样的东西,(根据你的要求修改。)

    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');
    }
    
  7. 希望,这会帮助你。