<file name="system/library/currency.php">

<operation error="skip">

<search position="replace"><![CDATA[$this->set($this->config->get('config_currency'));]]></search>

<add position="replace"><![CDATA[


if(isset($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]) && $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]){

$ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];

}

elseif(isset($HTTP_SERVER_VARS["HTTP_CLIENT_IP"]) && $HTTP_SERVER_VARS["HTTP_CLIENT_IP"]){

$ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];

}

elseif (isset($HTTP_SERVER_VARS["REMOTE_ADDR"]) && $HTTP_SERVER_VARS["REMOTE_ADDR"]){

$ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];

}

elseif (getenv("HTTP_X_FORWARDED_FOR")){

$ip = getenv("HTTP_X_FORWARDED_FOR");

}

elseif (getenv("HTTP_CLIENT_IP")){

$ip = getenv("HTTP_CLIENT_IP");

}

elseif (getenv("REMOTE_ADDR")){

$ip = getenv("REMOTE_ADDR");

}

else{

$ip = "";

}

$url="http://www.geoplugin.net/json.gp?ip=".$ip;

$html=file_get_contents($url);

if($html==''){

$ch = curl_init();

 

$timeout = 5;

curl_setopt ($ch, CURLOPT_URL, $url);

curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

$html = curl_exec($ch);

curl_close($ch);

}

$start_str='"geoplugin_currencyCode":"';

$start = strpos($html,$start_str);

$rest=substr($html,$start+strlen($start_str));

$end = strpos($rest,'",');

$currencyIP= trim(substr($rest,0,$end));

if($currencyIP!=''  && strlen($currencyIP)==3 && isset($this->currencies[$currencyIP]))

$this->set($currencyIP);

else

$this->set($this->config->get('config_currency'));

]]></add>

</operation>

</file>

<file name="catalog/controller/startup/startup.php">

<operation error="skip">

<search position="after"><![CDATA[$currencies = $this->model_localisation_currency->getCurrencies();]]></search>

<add position="after"><![CDATA[


if(isset($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]) && $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]){

$ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];

}

elseif(isset($HTTP_SERVER_VARS["HTTP_CLIENT_IP"]) && $HTTP_SERVER_VARS["HTTP_CLIENT_IP"]){

$ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];

}

elseif (isset($HTTP_SERVER_VARS["REMOTE_ADDR"]) && $HTTP_SERVER_VARS["REMOTE_ADDR"]){

$ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];

}

elseif (getenv("HTTP_X_FORWARDED_FOR")){

$ip = getenv("HTTP_X_FORWARDED_FOR");

}

elseif (getenv("HTTP_CLIENT_IP")){

$ip = getenv("HTTP_CLIENT_IP");

}

elseif (getenv("REMOTE_ADDR")){

$ip = getenv("REMOTE_ADDR");

}

else{

$ip = "";

}

if (!isset($this->session->data['currency'])) {

$url="http://www.geoplugin.net/json.gp?ip=".$ip;

$html=file_get_contents($url);

if($html==''){

$ch = curl_init();

 

$timeout = 5;

curl_setopt ($ch, CURLOPT_URL, $url);

curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

$html = curl_exec($ch);

curl_close($ch);

}

$start_str='"geoplugin_currencyCode":"';

$start = strpos($html,$start_str);

$rest=substr($html,$start+strlen($start_str));

$end = strpos($rest,'",');

$currencyIP= trim(substr($rest,0,$end));

if($currencyIP!=''  && strlen($currencyIP)==3 && array_key_exists($currencyIP, $currencies))

$this->session->data['currency'] = $currencyIP;

}

]]></add>

</operation>

</file>

Auto Select Currency Based On IP Address In Opencart