0La localización de los enlaces de Amazon Afiliados

De vez en cuando los productos de referencia en mis varios sitios web, y por lo general vincularlos a Amazon para cualquier persona interesada en comprarlos. Hace mucho tiempo yo solía vincular con vincular una afiliados amazon pero nunca ganaba nada de ella como mis lectores típica está bien distribuida en todo el mundo. Desafortunadamente Amazon no proporciona una forma de redirigir los visitantes a su sitio local de Amazon conservando al mismo tiempo a los pagos afiliados. Hay varias soluciones por ahí, pero todos los que encontré tenido problemas con ellos, por lo que he desarrollado mi propia.

Yo podría convertirla en un plugin para el lanzamiento si hay suficiente demanda. En el tiempo medio, el código está por debajo. Usted tendrá que hacer algunas modificaciones para que coincida con la dirección del sitio y sus códigos de afiliados de Amazon

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

//Detect visitor location from IP

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

si (isset($_SERVIDOR['HTTP_X_FORWARDED_FOR']))
{
$real_ip_address = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
más
{
$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($_SERVIDOR['HTTP_ACCEPT_LANGUAGE'], 0, 2);

//Detect language of page visitor is using

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

cambiar ($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;
defecto:
$link="https://www.amazon.com/dp/".$linkpartone."/ref=nosim?tag=jonstech-20";
}


si($debug==true)
{
eco "1. $iplocation.  2. $browserlang.  3. $userlang.  4. $enlace";
}
más
{
encabezamiento('Location: '.$link);
die();
}

}
si (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($contenido)
{
$content= str_replace('<un rel ="nofollow" href ="https://www.amazon', '<guión>var ran_var= Math.random();</guión><a style="fondo: ninguno;" rel ="nofollow" onclick="location.href=this.href+\'?ran=\'+ran_var;falso retorno;" target="_blank" href ="https://jonscaife.com/wp-content/plugins/amazon-affiliates-redirect.php?addr=', $contenido);
return str_replace('<a href ="https://www.amazon', '<guión>var ran_var= Math.random();</guión><a style="fondo: ninguno;" rel ="nofollow" onclick="location.href=this.href+\'?ran=\'+ran_var;falso retorno;" target="_blank" href ="https://jonscaife.com/wp-content/plugins/amazon-affiliates-redirect.php?addr=', $contenido);
}
add_filter( 'The_content', 'modify_amazon_affiliate_links' )

?>

Nota - el código es actualmente primer borrador.  Funciona, pero no hace uso de algunas de la detección que puede hacer.  No tiene una página de valores de los identificadores asociados, y utiliza una dirección de sitio codificado, en lugar de una redirección invisible.  Sin embargo, tiene el uso de JavaScript del lado del cliente para generar una URL de redireccionamiento única cada vez para evitar cualquier sistema de almacenamiento en caché de causar detección de la ubicación incorrecta.

Creo que hemos perdido algo? Avísenos comentarios a continuación. Si desea suscribirse por favor utilice el enlace de suscripción en el menú en la parte superior derecha. También puede compartir esto con tus amigos mediante el uso de los enlaces sociales inferiores. Aclamaciones.

Deja una respuesta