0アマゾンアフィリエイトリンクのローカリゼーション

私は時々私のさまざまなウェブサイト上の製品を参照します, 通常はそれらを買うことに興味がある人のためにアマゾンにリンクします. 昔、私は、Amazonアフィリエイトリンクをしてリンクするために使用されるが、私の典型的な読者がよく世界中に分散しているとして、そこから何かを獲得したことはありません. 残念ながら、Amazonは関連会社の支払いに維持しながら、地元のアマゾンのサイトへの訪問者をリダイレクトする方法を提供していません。. そこに出て様々なソリューションがありますが、私が見つけたすべてのものは、それらの問題を持っていました, 私は自分自身を開発しました.

I could devel­op it into a plu­gin for release if there is suf­fi­cient demand. 平均時間の, コードは以下の通りです. You will need to make some modi­fic­a­tions to make it match your site address and your amazon affil­i­ates codes

<?PHP
/**
* Plugin Name: Amazon Affiliates Redirect
* Plugin URI: https://diymediahome.org/
* 説明: Redirects all amazon affiliates links to a local amazon store depending on visitors location.
* バージョン: 1.0
* Author: Jon P Scaife
* Author URI: https://jonscaife.com
* License: GPL12
*/
function process_link()
{
$debug=false;

//Detect visitor location from IP

もし (isset($_サーバ['HTTP_CLIENT_IP']))
{
$real_ip_address = $_SERVER['HTTP_CLIENT_IP'];
}

もし (isset($_サーバ['HTTP_X_FORWARDED_FOR']))
{
$real_ip_address = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
ほかに
{
$real_ip_address = $_SERVER['REMOTE_ADDR'];
}

function curl_get_contents($URL)
{
$CH = curl_init();

ますcurl_setopt($CH, CURLOPT_HEADER, 0);
ますcurl_setopt($CH, CURLOPT_RETURNTRANSFER, 1);
ますcurl_setopt($CH, CURLOPT_URL, $URL);

$data = curl_exec($CH);
curl_close($CH);

return $data;
}

$iptolocation = 'https://ip-api.com/php/' . $real_ip_address;
$ipreply = @unserialize(curl_get_contents($iptolocation));
$iplocation = $ipreply['countryCode'];

//Detect visitor language from browser

$browserlang= substr($_サーバ['HTTP_ACCEPT_LANGUAGE'], 0, 2);

//Detect language of page visitor is using

if (isset($_GET['lang']))
{
$userlang= $_GET['lang'];
}
ほかに
{
$userlang= "EN";
}

//was a link passed

if (isset($_GET['addr']))
{
$original_link= $_GET['addr'];
}

//Decide best amazon site based on data detected

$linkpartone= $_GET['creativeASIN'];

スイッチ ($iplocation)
{
case 'ギガバイト':
        $link="https://www.amazon.co.uk/dp/".$linkpartone."/ref=nosim?tag=dimeho-21";
        break;
case 'IE':
        $link="https://www.amazon.co.uk/dp/".$linkpartone."/ref=nosim?tag=dimeho-21";
break;
case 'US':
        $link="https://www.amazon.com/dp/".$linkpartone."/ref=nosim?tag=jonstech-20";
break;
case 'CA':
        $link="https://www.amazon.ca/dp/".$linkpartone."/ref=nosim?tag=dimeho-20";
break;
case 'CN':
        $link="https://www.amazon.cn/dp/".$linkpartone."/ref=nosim?tag=";
break;
case 'HK':
        $link="https://www.amazon.cn/dp/".$linkpartone."/ref=nosim?tag=";
break;
case 'MO':
        $link="https://www.amazon.cn/dp/".$linkpartone."/ref=nosim?tag=";
break;
case 'IN':
        $link="https://www.amazon.in/dp/".$linkpartone."/ref=nosim?tag=";
break;
case 'JP':
        $link="https://www.amazon.co.jp/dp/".$linkpartone."/ref=nosim?tag=";
break;
case 'FR':
        $link="https://www.amazon.fr/dp/".$linkpartone."/ref=nosim?tag=Dimeho02-21";
break;
case 'CH':
        $link="https://www.amazon.fr/dp/".$linkpartone."/ref=nosim?tag=Dimeho02-21";
break;
case 'BE':
        $link="https://www.amazon.fr/dp/".$linkpartone."/ref=nosim?tag=Dimeho02-21";
break;
case 'MC':
        $link="https://www.amazon.fr/dp/".$linkpartone."/ref=nosim?tag=Dimeho02-21";
break;
case 'LU':
        $link="https://www.amazon.fr/dp/".$linkpartone."/ref=nosim?tag=Dimeho02-21";
break;
case 'DE':
        $link="https://www.amazon.de/dp/".$linkpartone."/ref=nosim?tag=dimeho0f-21";
break;
case 'CZ':
        $link="https://www.amazon.de/dp/".$linkpartone."/ref=nosim?tag=dimeho0f-21";
break;
case 'IT':
        $link="https://www.amazon.it/dp/".$linkpartone."/ref=nosim?tag=diymediahome-21";
break;
case 'NL':
        $link="https://www.amazon.nl/dp/".$linkpartone."/ref=nosim?tag=";
break;
case 'ES':
        $link="https://www.amazon.es/dp/".$linkpartone."/ref=nosim?tag=diymediahom05-21";
break;
case 'MX':
        $link="https://www.amazon.com.mx/dp/".$linkpartone."/ref=nosim?tag=";
break;
case 'AU':
        $link="https://www.amazon.com.au/dp/".$linkpartone."/ref=nosim?tag=";
break;
case 'BR':
        $link="https://www.amazon.com.br/dp/".$linkpartone."/ref=nosim?tag=";
break;
デフォルト:
$link="https://www.amazon.com/dp/".$linkpartone."/ref=nosim?tag=jonstech-20";
}


もし($debug==true)
{
エコー "1. $iplocation.  2. $browserlang.  3. $userlang.  4. $リンク";
}
ほかに
{
ヘッダー('Location: '.$link);
die();
}

}
もし (isset($_GET['addr'])) process_link();

//create filter to replace amazon links with internal redirect inc a random code to prevent caching

function modify_amazon_affiliate_links($コンテンツ)
{
$content= str_replace('<REL ="nofollowを" HREF ="https://www.amazon', '<スクリプト>var ran_var= Math.random();</スクリプト><a style="バックグラウンド: なし;" REL ="nofollowを" onclick="location.href=this.href+\'?ran=\'+ran_var;falseを返します;" target="_blank" HREF ="https://jonscaife.com/wp-content/plugins/amazon-affiliates-redirect.php?addr=', $コンテンツ);
return str_replace('<HREF ="https://www.amazon', '<スクリプト>var ran_var= Math.random();</スクリプト><a style="バックグラウンド: なし;" REL ="nofollowを" onclick="location.href=this.href+\'?ran=\'+ran_var;falseを返します;" target="_blank" HREF ="https://jonscaife.com/wp-content/plugins/amazon-affiliates-redirect.php?addr=', $コンテンツ);
}
ADD_FILTER( 'the_content', 'modify_amazon_affiliate_links' )

?>

Note — the code is cur­rently early draft.  できます, but it does­n’t make use of some of the detec­tion that it can do.  It does­n’t have a set­tings page for the asso­ci­ate IDs, and it uses a hard­coded site address, rather than an invis­ible redir­ect.  It DOES how­ever use cli­ent-side javas­cript to gen­er­ate a unique redir­ect url every time to pre­vent any cach­ing sys­tems from caus­ing incor­rect loc­a­tion detection.

返信を残す