0Localizzazione dei link Amazon Affiliati

Di tanto in tanto riferisco prodotti sui miei vari siti web, e di solito collegarli ad Amazon per chiunque sia interessato ad acquistarli. Molto tempo fa ho usato per collegare con collegare un affiliati Amazon, ma mai guadagnato nulla da esso come il mio tipico lettori è ben distribuita in tutto il mondo. Purtroppo Amazon non forniscono un modo per reindirizzare i visitatori al loro sito di Amazon locale, pur conservando ai pagamenti affiliati. Ci sono varie soluzioni là fuori, ma tutti quelli che ho trovato avuto problemi con loro, così ho sviluppato il mio.

Potrei svilupparlo in un plugin per il rilascio se non v'è una domanda sufficiente. Nel frattempo, il codice è sotto. Sarà necessario apportare alcune modifiche per renderlo abbinare il vostro indirizzo del sito e i tuoi codici affiliati Amazon

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

//Detect visitor location from IP

se (isset($_SERVER['HTTP_CLIENT_IP']))
{
$real_ip_address = $_SERVER['HTTP_CLIENT_IP'];
}

se (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$real_ip_address = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
altro
{
$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 = 'http://ip-api.com/php/' . $real_ip_address;
$ipreply = @unserialize(curl_get_contents($iptolocation));
$iplocation = $ipreply['countryCode'];

//Detect visitor language from browser

$browserlang= substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);

//Detect language of page visitor is using

if (isset($_GET['lang']))
{
$userlang= $_GET['lang'];
}
altro
{
$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'];

interruttore ($iplocation)
{
case 'GB':
        $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;
difetto:
$link="https://www.amazon.com/dp/".$linkpartone."/ref=nosim?tag=jonstech-20";
}


se($debug==true)
{
echo "1. $iplocation.  2. $browserlang.  3. $userlang.  4. $collegamento";
}
altro
{
testata('Location: '.$link);
die();
}

}
se (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($contenuto)
{
$content= str_replace('<a rel ="nofollow" href ="https://www.amazon', '<copione>var ran_var= Math.random();</copione><a style="sfondo: nessuno;" rel ="nofollow" onclick="location.href=this.href+\'?ran=\'+ran_var;return false;" target="_blank" href ="https://jonscaife.com/wp-content/plugins/amazon-affiliates-redirect.php?addr=', $contenuto);
return str_replace('<a href ="https://www.amazon', '<copione>var ran_var= Math.random();</copione><a style="sfondo: nessuno;" rel ="nofollow" onclick="location.href=this.href+\'?ran=\'+ran_var;return false;" target="_blank" href ="https://jonscaife.com/wp-content/plugins/amazon-affiliates-redirect.php?addr=', $contenuto);
}
add_filter( 'il contenuto', 'modify_amazon_affiliate_links' )

?>

Nota - il codice è attualmente prima bozza.  Funziona, 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, e utilizza un indirizzo del sito hardcoded, piuttosto che un reindirizzamento invisibile.  Ha, tuttavia usiamo javascript client-side per generare un reindirizzamento URL univoco ogni volta per evitare che eventuali sistemi di caching di causare rilevamento della posizione non corretta.

Cosa ne pensi? Mandaci un commento qui sotto! Se si desidera iscriversi si prega di utilizzare il link iscriviti sul menu in alto a destra. È inoltre possibile condividere con i tuoi amici usando i link sottostanti sociali. Saluti.

lascia un commento