Я иногда ссылаться на продукты на моих различных веб-сайтах, и, как правило, связывают их с Amazon для тех, кто заинтересован в покупке. Долгое время назад я использовал для связи с амазонкой аффилированной ссылки, но никогда ничего от него не зарабатывал, как моя типичная читаемость хорошо распределяются по всему миру. К сожалению, Amazon не предоставляют способ перенаправления посетителей на свой локальный сайт амазонки, сохраняя при этих филиалах платежей. Существуют различные решения вне там, но все те, которые я нашел, были проблемы с ними, поэтому я разработал мой собственный.
Я мог бы превратить его в плагин для освобождения, если есть достаточный спрос. В то же время, код ниже. Вам нужно будет внести некоторые изменения, чтобы сделать его сопрягать ваш адрес сайта и ваши амазонки филиалов кодов
<?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: Джон П. Скэйф * Author URI: https://jonscaife.com * License: GPL12 */ function process_link() { $debug=false; //Detect visitor location from IP если (ушел($_SERVER['HTTP_CLIENT_IP'])) { $real_ip_address = $_SERVER['HTTP_CLIENT_IP']; } если (ушел($_SERVER['HTTP_X_FORWARDED_FOR'])) { $real_ip_address = $_SERVER['HTTP_X_FORWARDED_FOR']; } еще { $real_ip_address = $_SERVER['REMOTE_ADDR']; } function curl_get_contents($URL) { $ч = curl_init(); curl_setopt($ч, CURLOPT_HEADER, 0); curl_setopt($ч, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ч, CURLOPT_URL, $URL); $data = curl_exec($ч); curl_close($ч); 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($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); //Detect language of page visitor is using if (ушел($_GET['lang'])) { $userlang= $_GET['lang']; } еще { $userlang= "EN"; } //was a link passed if (ушел($_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(); } } если (ушел($_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('<отн ="Nofollow" HREF ="https://www.amazon', '<сценарий>var ran_var= Math.random();</сценарий><a style="background: никто;" отн ="Nofollow" onclick="location.href=this.href+\'?ran=\'+ran_var;вернуться ложным;" target="_blank" HREF ="https://jonscaife.com/wp-content/plugins/amazon-affiliates-redirect.php?addr=', $содержание); return str_replace('<A HREF ="https://www.amazon', '<сценарий>var ran_var= Math.random();</сценарий><a style="background: никто;" отн ="Nofollow" onclick="location.href=this.href+\'?ran=\'+ran_var;вернуться ложным;" target="_blank" HREF ="https://jonscaife.com/wp-content/plugins/amazon-affiliates-redirect.php?addr=', $содержание); } add_filter( 'Контент', 'modify_amazon_affiliate_links' ) ?>
Примечание - код находится в начале проекта. Оно работает, но он не использует некоторые возможности обнаружения, которые он может сделать. У него нет страницы настроек для ассоциированных идентификаторов., и он использует жёстко прописанный адрес сайта, вместо того невидимого перенаправления. Однако он ДЕЙСТВИТЕЛЬНО использует клиентский JavaScript для генерации уникального URL-адреса перенаправления каждый раз, чтобы предотвратить неправильное определение местоположения любыми системами кэширования..
“Hi James I realise it has been a long while, but I just checked this on windows 11 (build 23H2)…”