2014-09-07 7 views
1

안녕하세요. 독서에 대한 감사합니다. 저는 magento에서 일하고 있으며 geoip 확장을 사용하여 고객을 찾고 그의 위치에 따라 정확한 통화를 찾습니다. 허용 된 각 통화에 대해 하나의 국가를 설정하고 나머지 국가 (예 : 아랍 에미레이트 연합국의 경우 AED와 같은 국가)에 대해 USD를 설정하면이 기능이 잘 작동합니다. 하지만 기본 통화 인 USD (기본 표시 통화)가 포함 된 헤더에서 드롭 다운을 보도록 요청 받았습니다. 내가 한 일은 모든 국가를 USD 통화 (USD 통화를 사용할 수 있음)에 추가하고 내 드롭을 추가 한 것입니다. 모든 것이 정상이며 통화가 드롭 다운에서 변경됩니다. 이제는 모든 것이 좋다는 것을 말하십시오. 하지만 내 문제는 기본 표시 통화가 첫 페이지에로드 된 국가 통화가 아닌 것입니다 (USD 통화 옆에있는 dorp에 표시됨). 첫 페이지로드시 달러를 사용하는 대신 시스템에서 국가 통화를 사용하도록하려면 어떻게해야합니까 ?? 도움이 되셨다면 어떤 아이디어라도 감사하겠습니다. 미리 감사드립니다. 각 나라의 magento1에서 통화를 선택하는 방법

+0

나는 magento, 내 첫 번째 단계에서 창턱에 고급 아니에요 내 질문에 명확하지 않은 경우 – rramiii

+0

친절하게 내가 다른 방식으로 설명하려고 애 쓰게 알려주십시오. – rramiii

+0

정확히 무엇을하고 싶습니까? 방문자 국가에 따라 기본 통화를 설정 하시겠습니까? –

답변

4

유 (마 젠토의 어떤 확장)

  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이 단계 방문자의 country.follow에 따라 기본 통화를 선택합니다. 원하지 않고 하나 개의 폴더를 만들 경우 geoip으로 루트 이름을 지정합니다. 해당 폴더에 geoip.inc 및 GeoIP.dat를 저장하십시오.
  3. 는 현재 방문자의 나라를 얻을 수있는 코드 아래 지역/마법사/디렉토리/차단/Currency.php
  4. 사용에 /app/code/core/Mage/Directory/Block/Currency.php를 복사합니다.

    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() 이 같은 설정, (귀하의 요구 사항으로 수정합니다.)

    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'); 
    } 
    

희망이 당신을 도울 것입니다.

+0

이 코드는 기본 통화를 설정하고 드롭 다운에서 원하는 경우 다른 통화를 선택할 수 있습니다. 이는 영향을받지 않습니다. –

+0

고맙습니다. 예,이 코드는 첫 페이지로드시 저장소에 사용 된 기본 통화를 사용합니다. getCurrentCurrencyCode() 함수에서 솔루션을 찾은 것 같습니다. 이제는 하나의 통화에 허용 된 여러 통화의 경우를 처리하려고합니다. 국가에서 첫 페이지로드시 페이지 사용 국가의 통화를 만들어야합니다 (이 국가에 허용 된 다른 국가 통화가 아님). 내 솔루션을 마칠 때 그것을 게시 할 것입니다 :) – rramiii