میں کبھی کبھار میرے مختلف ویب سائٹس پر مصنوعات حوالہ, اور عام طور پر ان کی خریداری میں دلچسپی رکھنے والے کسی کے لئے ایمیزون کے لئے ان سے منسلک. ایک طویل وقت پہلے میں نے کے ساتھ ایک ایمیزون ملحق ادارے لنک لنک کو استعمال کیا لیکن اپنے مخصوص قارئین اچھی طرح دنیا بھر میں تقسیم کیا ہے کے طور پر کبھی نہیں اس سے کچھ بھی حاصل کی. بدقسمتی ایمیزون ملحق ادارے ادائیگیوں کو برقرار رکھنے کی حالت ان کے مقامی ایمیزون سائٹ پر زائرین ری ڈائریکٹ کرنے کے لئے ایک راستہ فراہم نہیں کرتے. وہاں سے باہر مختلف حل ہیں لیکن میں پایا تمام لوگ ان کے ساتھ مسائل تھے, تاکہ میں اپنے ہی تیار.
کافی مانگ ہے تو مجھے رہائی کے لئے ایک پلگ ان میں ترقی کر سکتا ہے. مطلب وقت میں, کوڈ سے نیچے ہے. آپ اس میں آپ کی ویب سائٹ کے ایڈریس اور آپ ایمیزون ملحق ادارے کوڈ مماثل بنانے کے لئے کچھ تبدیلیاں کرنے کی ضرورت ہوگی
<?پی ایچ پی /** * 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 آئی پی اگر (isset($_SERVER['HTTP_CLIENT_IP'])) { $real_ip_address = $_SERVER['HTTP_CLIENT_IP']; } اگر (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $real_ip_address = $_SERVER['HTTP_X_FORWARDED_FOR']; } اور { $real_ip_address = $_SERVER['REMOTE_ADDR']; } function curl_get_contents($یو آر ایل) { $چوہدری = curl_init(); curl_setopt($چودھری, CURLOPT_HEADER, 0); curl_setopt($چودھری, CURLOPT_RETURNTRANSFER, 1); curl_setopt($چودھری, CURLOPT_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 (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 '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; پہلے سے طے شدہ: $link="https://www.amazon.com/dp/".$linkpartone."/ref=nosim?tag=jonstech-20"; } اگر($debug==true) { گونج "1. $iplocation. 2. $browserlang. 3. $userlang. 4. $link"; } اور { ہیڈر('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('<ایک ریل ="nofollow" href کی ="https://www.amazon', '<سکرپٹ>var ran_var= Math.random();</سکرپٹ><a style="background: کوئی بھی;" rel="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('<ایک href کی ="https://www.amazon', '<سکرپٹ>var ran_var= Math.random();</سکرپٹ><a style="background: کوئی بھی;" rel="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' ) ?>
نوٹ - کوڈ فی الحال ابتدائی مسودے ہے. یہ کام کرتا ہے, لیکن یہ ایسا کر سکتے ہیں کہ پتہ لگانے کے کچھ کا استعمال نہیں کرتا. اس ایسوسی ایٹ آئی ڈیز کے لئے ایک کی ترتیبات کے صفحے کی ضرورت نہیں ہے, اور یہ ایک hardcoded کیا سائٹ کا پتہ استعمال کرتا, بلکہ ایک پوشیدہ ری زائد. It DOES however use client-side javascript to generate a unique redirect url every time to prevent any caching systems from causing incorrect location detection.
“Hi James I realise it has been a long while, but I just checked this on windows 11 (build 23H2)…”