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 /** * Nome plugin: Reindirizzamento di affiliati Amazon * URI del plugin: https://diymediahome.org/ * Descrizione: Reindirizza tutti i collegamenti affiliati di Amazon a un negozio Amazon locale a seconda della posizione dei visitatori. * Versione: 1.0 * Autore: Jon P Scaife * URI dell'autore: https://jonscaife.com * Licenza: GPL12 */ funzione process_link() { $debug = false; //Rileva la posizione del visitatore da IP se (è impostato($_SERVER["HTTP_CLIENT_IP"])) { $real_ip_address = $ _SERVER["HTTP_CLIENT_IP"]; } se (è impostato($_SERVER["HTTP_X_FORWARDED_FOR"])) { $real_ip_address = $ _SERVER["HTTP_X_FORWARDED_FOR"]; } altro { $real_ip_address = $ _SERVER["REMOTE_ADDR"]; } funzione 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); restituisce $ dati; } $iptolocation = 'https://ip-api.com/php/ " . $real_ip_address; $ipreply = @unserialize(curl_get_contents($iptolocalizzazione)); $iplocation = $ ipreply['prefisso internazionale']; //Rileva la lingua del visitatore dal browser $ browserlang = substr($_SERVER["HTTP_ACCEPT_LANGUAGE"], 0, 2); //Rileva la lingua della pagina utilizzata dal visitatore Se (è impostato($_OTTENERE['lang'])) { $userlang = $ _GET['lang']; } altro { $userlang = "NEL"; } //era un collegamento passato Se (è impostato($_OTTENERE["addr"])) { $link_originale = $ _GET["addr"]; } //Decidi il miglior sito Amazon in base ai dati rilevati $ linkpartone = $ _GET["creativeASIN"]; interruttore ($iplocation) { Astuccio 'GB': $link ="https://www.amazon.co.uk/dp/".$linkpartone."/ref = nosim?tag = dimeho-21"; rompere; Astuccio 'IE': $link ="https://www.amazon.co.uk/dp/".$linkpartone."/ref = nosim?tag = dimeho-21"; rompere; caso "USA": $link ="https://www.amazon.com/dp/".$linkpartone."/ref = nosim?tag = jonstech-20"; rompere; Case "CA": $link ="https://www.amazon.ca/dp/".$linkpartone."/ref = nosim?tag = dimeho-20"; rompere; caso "CN": $link ="https://www.amazon.cn/dp/".$linkpartone."/ref = nosim?tag ="; rompere; caso "HK": $link ="https://www.amazon.cn/dp/".$linkpartone."/ref = nosim?tag ="; rompere; caso 'MO': $link ="https://www.amazon.cn/dp/".$linkpartone."/ref = nosim?tag ="; rompere; caso 'IN': $link ="https://www.amazon.in/dp/".$linkpartone."/ref = nosim?tag ="; rompere; caso "JP": $link ="https://www.amazon.co.jp/dp/".$linkpartone."/ref = nosim?tag ="; rompere; caso "FR": $link ="https://www.amazon.fr/dp/".$linkpartone."/ref = nosim?tag = Dimeho02-21"; rompere; caso "CH": $link ="https://www.amazon.fr/dp/".$linkpartone."/ref = nosim?tag = Dimeho02-21"; rompere; caso 'BE': $link ="https://www.amazon.fr/dp/".$linkpartone."/ref = nosim?tag = Dimeho02-21"; rompere; caso "MC": $link ="https://www.amazon.fr/dp/".$linkpartone."/ref = nosim?tag = Dimeho02-21"; rompere; Case "LU": $link ="https://www.amazon.fr/dp/".$linkpartone."/ref = nosim?tag = Dimeho02-21"; rompere; case di ': $link ="https://www.amazon.de/dp/".$linkpartone."/ref = nosim?tag = dimeho0f-21"; rompere; caso "CZ": $link ="https://www.amazon.de/dp/".$linkpartone."/ref = nosim?tag = dimeho0f-21"; rompere; caso "IT": $link ="https://www.amazon.it/dp/".$linkpartone."/ref = nosim?tag = diymediahome-21"; rompere; caso "NL": $link ="https://www.amazon.nl/dp/".$linkpartone."/ref = nosim?tag ="; rompere; caso "ES": $link ="https://www.amazon.es/dp/".$linkpartone."/ref = nosim?tag = diymediahom05-21"; rompere; caso "MX": $link ="https://www.amazon.com.mx/dp/".$linkpartone."/ref = nosim?tag ="; rompere; casella "AU": $link ="https://www.amazon.com.au/dp/".$linkpartone."/ref = nosim?tag ="; rompere; caso "BR": $link ="https://www.amazon.com.br/dp/".$linkpartone."/ref = nosim?tag ="; rompere; 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('Posizione: '. $ link); il(); } } se (è impostato($_OTTENERE["addr"])) processo_link(); //crea un filtro per sostituire i link amazon con il reindirizzamento interno inc un codice casuale per impedire la memorizzazione nella cache funzione modify_amazon_affiliate_links($contenuto) { $content = str_replace('<a rel ="nofollow" href ="https://www.amazon ", '<copione>var ran_var = Math.random();</copione><uno stile ="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><uno stile ="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, ma non utilizza alcuni dei rilevamenti che può eseguire. Non ha una pagina delle impostazioni per gli ID associati, e utilizza un indirizzo del sito hardcoded, piuttosto che un reindirizzamento invisibile. Tuttavia, utilizza javascript lato client per generare ogni volta un URL di reindirizzamento univoco per evitare che i sistemi di memorizzazione nella cache causino il rilevamento della posizione errata.
“Hi James I realise it has been a long while, but I just checked this on windows 11 (build 23H2)…”