0Lokalisierung von Amazon Affiliates Links

Ich Referenz gelegentlich Produkte auf meine verschiedenen Websites, und in der Regel, sie zu Amazon Link für jedermann interessiert an dem Kauf. Vor langer Zeit habe ich mit einem Amazon Partner Link Link aber verdienen nie etwas von ihm als meine typischen Leserschaft gut auf der ganzen Welt verteilt ist. Leider Amazon bieten keinen Weg, um Besucher auf ihre lokale amazon Site zu umleiten unter Beibehaltung an verbundenen Unternehmen Zahlungen. Es gibt verschiedene Lösungen gibt, aber alle diejenigen, fand ich hatte Probleme mit ihnen, also habe ich mein eigenes entwickelt.

Ich könnte es zu einem Plugin zur Veröffentlichung entwickeln, wenn genügend Nachfrage besteht. In der Zwischenzeit, der Code ist unten. Sie müssen einige Änderungen vornehmen, damit sie mit Ihrer Site-Adresse und Ihren Amazon-Partnercodes übereinstimmt

<?php
/**
* Plugin-Name: Weiterleitung von Amazon-Partnern
* Plugin-URI: https://diymediahome.org/
* Beschreibung: Leitet alle Amazon-Partnerlinks zu einem lokalen Amazon-Shop um, abhängig vom Standort des Besuchers.
* Version: 1.0
* Autor: Jon P Scaife
* Autor URI: https://jonscaife.com
* Lizenz: GPL12
*/
Funktion process_link()
{
$debuggen=falsch;

//Standort des Besuchers erkennen von IP

wenn (weg($_SERVER['HTTP_CLIENT_IP']))
{
$real_ip_address = $_SERVER['HTTP_CLIENT_IP'];
}

wenn (weg($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$real_ip_address = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
sonst
{
$real_ip_address = $_SERVER['REMOTE_ADDR'];
}

Funktion 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);

$data zurückgeben;
}

$iptolocation = 'https://ip-api.com/php/' . $reale_ip_adresse;
$ipreply = @unserialize(curl_get_contents($iptolocation));
$iplocation = $ipreply['Ländercode'];

//Besuchersprache im Browser erkennen

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

//Ermitteln Sie die Sprache des Seitenbesuchers, die er verwendet

wenn (weg($_ERHALTEN['lang']))
{
$Benutzersprache= $_GET['lang'];
}
sonst
{
$Benutzersprache = "AUF";
}

//wurde ein Link übergeben

wenn (weg($_ERHALTEN['Adresse']))
{
$original_link= $_GET['Adresse'];
}

//Entscheiden Sie sich für die beste Amazon-Site basierend auf den erkannten Daten

$linkpartone= $_GET['kreativeASIN'];

Schalter ($iplocation)
{
Fall 'GB':
        $link="https://www.amazon.co.uk/dp/".$linkpartone."/ref=nosim?tag=dimeho-21";
        Unterbrechung;
Fall 'IE':
        $link="https://www.amazon.co.uk/dp/".$linkpartone."/ref=nosim?tag=dimeho-21";
Unterbrechung;
Fall 'USA':
        $link="https://www.amazon.com/dp/".$linkpartone."/ref=nosim?tag=jonstech-20";
Unterbrechung;
'CA'-Häuser:
        $link="https://www.amazon.ca/dp/".$linkpartone."/ref=nosim?tag=dimeho-20";
Unterbrechung;
Fall 'KN':
        $link="https://www.amazon.cn/dp/".$linkpartone."/ref=nosim?tag=";
Unterbrechung;
Fall 'HK':
        $link="https://www.amazon.cn/dp/".$linkpartone."/ref=nosim?tag=";
Unterbrechung;
Fall 'MO':
        $link="https://www.amazon.cn/dp/".$linkpartone."/ref=nosim?tag=";
Unterbrechung;
Fall 'IN':
        $link="https://www.amazon.in/dp/".$linkpartone."/ref=nosim?tag=";
Unterbrechung;
Fall 'JP':
        $link="https://www.amazon.co.jp/dp/".$linkpartone."/ref=nosim?tag=";
Unterbrechung;
Fall 'FR':
        $link="https://www.amazon.fr/dp/".$linkpartone."/ref=nosim?tag=Dimeho02-21";
Unterbrechung;
Fall 'CH':
        $link="https://www.amazon.fr/dp/".$linkpartone."/ref=nosim?tag=Dimeho02-21";
Unterbrechung;
Fall 'BE':
        $link="https://www.amazon.fr/dp/".$linkpartone."/ref=nosim?tag=Dimeho02-21";
Unterbrechung;
Fall 'MC':
        $link="https://www.amazon.fr/dp/".$linkpartone."/ref=nosim?tag=Dimeho02-21";
Unterbrechung;
'LU'-Häuser:
        $link="https://www.amazon.fr/dp/".$linkpartone."/ref=nosim?tag=Dimeho02-21";
Unterbrechung;
Häuser von':
        $link="https://www.amazon.de/dp/".$linkpartone."/ref=nosim?tag=dimeho0f-21";
Unterbrechung;
Fall 'CZ':
        $link="https://www.amazon.de/dp/".$linkpartone."/ref=nosim?tag=dimeho0f-21";
Unterbrechung;
Fall 'ES':
        $link="https://www.amazon.it/dp/".$linkpartone."/ref=nosim?tag = diymediahome-21";
Unterbrechung;
Fall 'NL':
        $link="https://www.amazon.nl/dp/".$linkpartone."/ref=nosim?tag=";
Unterbrechung;
Fall 'ES':
        $link="https://www.amazon.es/dp/".$linkpartone."/ref=nosim?tag = diymediahom05-21";
Unterbrechung;
Fall 'MX':
        $link="https://www.amazon.com.mx/dp/".$linkpartone."/ref=nosim?tag=";
Unterbrechung;
'AU'-Feld:
        $link="https://www.amazon.com.au/dp/".$linkpartone."/ref=nosim?tag=";
Unterbrechung;
Fall 'BR':
        $link="https://www.amazon.com.br/dp/".$linkpartone."/ref=nosim?tag=";
Unterbrechung;
Default:
$link="https://www.amazon.com/dp/".$linkpartone."/ref=nosim?tag=jonstech-20";
}


wenn($debuggen==wahr)
{
Echo "1. $iplocation.  2. $Browsersprache.  3. $Benutzersprache.  4. $Link";
}
sonst
{
Kopfzeile('Ort: '.$link);
die();
}

}
wenn (weg($_ERHALTEN['Adresse'])) process_link();

//Erstellen Sie einen Filter, um Amazon-Links durch interne Weiterleitungen zu ersetzen

Funktion modify_amazon_affiliate_links($Inhalt)
{
$content= str_replace('<a rel ="nofollow" href ="https://www.amazon', '<Skript>var ran_var = Math.zufällig();</Skript><ein Stil ="Hintergrund: keiner;" rel ="nofollow" onclick="location.href=this.href+\'?ran=\'+ran_var;falsch zurückgeben;" Ziel="_leer" href ="https://jonscaife.com/wp-content/plugins/amazon-affiliates-redirect.php?Adresse=', $Inhalt);
Rückgabe str_replace('<a href ="https://www.amazon', '<Skript>var ran_var = Math.zufällig();</Skript><ein Stil ="Hintergrund: keiner;" rel ="nofollow" onclick="location.href=this.href+\'?ran=\'+ran_var;falsch zurückgeben;" Ziel="_leer" href ="https://jonscaife.com/wp-content/plugins/amazon-affiliates-redirect.php?Adresse=', $Inhalt);
}
add_filter( 'The_content', 'modify_amazon_affiliate_links' )

?>

Hinweis – der Code ist derzeit ein früher Entwurf.  Es klappt, aber es nutzt nicht einige der Erkennungsmerkmale, die es tun kann.  Es hat keine Einstellungsseite für die Associate-IDs, und es verwendet eine hartcodierte Site-Adresse, statt einer unsichtbaren Weiterleitung.  Es verwendet jedoch clientseitiges Javascript, um jedes Mal eine eindeutige Umleitungs-URL zu generieren, um zu verhindern, dass Caching-Systeme eine falsche Standorterkennung verursachen.

Hinterlasse eine Antwort