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 /** * Nombre del complemento: Redireccionamiento de afiliados de Amazon * URI del complemento: https://diymediahome.org/ * Descripción: Redirige todos los enlaces de afiliados de Amazon a una tienda local de Amazon según la ubicación de los visitantes.. * Versión: 1.0 * Autor: Jon P Scaife * URI del autor: https://jonscaife.com * Licencia: GPL12 */ función process_link() { $debug = falso; //Detectar la ubicación del visitante desde IP si (Está establecido($_SERVIDOR['HTTP_CLIENT_IP'])) { $dirección_ip_real = $ _SERVER['HTTP_CLIENT_IP']; } si (Está establecido($_SERVIDOR['HTTP_X_FORWARDED_FOR'])) { $dirección_ip_real = $ _SERVER['HTTP_X_FORWARDED_FOR']; } más { $dirección_ip_real = $ _SERVER['REMOTE_ADDR']; } función 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); $datos = curl_exec($ch); curl_close($ch); devolver $ datos; } $iptolocation = 'https://ip-api.com/php/ ' . $dirección_ip_real; $ipreply = @unserialize(curl_get_contents($iptolocation)); $iplocation = $ ipreply['código de país']; //Detecta el idioma del visitante desde el navegador $ browserlang = substr($_SERVIDOR['HTTP_ACCEPT_LANGUAGE'], 0, 2); //Detectar el idioma del visitante de la página que está usando Si (Está establecido($_OBTENER['lang'])) { $userlang = $ _GET['lang']; } más { $userlang = "EN"; } //se pasó un enlace Si (Está establecido($_OBTENER['addr'])) { $original_link = $ _GET['addr']; } //Decidir el mejor sitio de Amazon en función de los datos detectados $ linkpartone = $ _GET['creativeASIN']; cambiar ($iplocation) { caso 'GB': $enlace ="https://www.amazon.co.uk/dp/".$linkpartone."/ref = nosim?etiqueta = dimeho-21"; descanso; caso 'IE': $enlace ="https://www.amazon.co.uk/dp/".$linkpartone."/ref = nosim?etiqueta = dimeho-21"; descanso; caso 'US': $enlace ="https://www.amazon.com/dp/".$linkpartone."/ref = nosim?etiqueta = jonstech-20"; descanso; Casas 'CA': $enlace ="https://www.amazon.ca/dp/".$linkpartone."/ref = nosim?etiqueta = dimeho-20"; descanso; caso 'CN': $enlace ="https://www.amazon.cn/dp/".$linkpartone."/ref = nosim?etiqueta ="; descanso; caso 'HK': $enlace ="https://www.amazon.cn/dp/".$linkpartone."/ref = nosim?etiqueta ="; descanso; case 'MO': $enlace ="https://www.amazon.cn/dp/".$linkpartone."/ref = nosim?etiqueta ="; descanso; caso 'IN': $enlace ="https://www.amazon.in/dp/".$linkpartone."/ref = nosim?etiqueta ="; descanso; caso 'JP': $enlace ="https://www.amazon.co.jp/dp/".$linkpartone."/ref = nosim?etiqueta ="; descanso; caso 'FR': $enlace ="https://www.amazon.fr/dp/".$linkpartone."/ref = nosim?etiqueta = Dimeho02-21"; descanso; caso 'CH': $enlace ="https://www.amazon.fr/dp/".$linkpartone."/ref = nosim?etiqueta = Dimeho02-21"; descanso; caso 'BE': $enlace ="https://www.amazon.fr/dp/".$linkpartone."/ref = nosim?etiqueta = Dimeho02-21"; descanso; caso 'MC': $enlace ="https://www.amazon.fr/dp/".$linkpartone."/ref = nosim?etiqueta = Dimeho02-21"; descanso; Casas 'LU': $enlace ="https://www.amazon.fr/dp/".$linkpartone."/ref = nosim?etiqueta = Dimeho02-21"; descanso; casas de ': $enlace ="https://www.amazon.de/dp/".$linkpartone."/ref = nosim?etiqueta = dimeho0f-21"; descanso; caso 'CZ': $enlace ="https://www.amazon.de/dp/".$linkpartone."/ref = nosim?etiqueta = dimeho0f-21"; descanso; caso 'IT': $enlace ="https://www.amazon.it/dp/".$linkpartone."/ref = nosim?etiqueta = diymediahome-21"; descanso; caso 'NL': $enlace ="https://www.amazon.nl/dp/".$linkpartone."/ref = nosim?etiqueta ="; descanso; case 'ES': $enlace ="https://www.amazon.es/dp/".$linkpartone."/ref = nosim?etiqueta = diymediahom05-21"; descanso; caso 'MX': $enlace ="https://www.amazon.com.mx/dp/".$linkpartone."/ref = nosim?etiqueta ="; descanso; cuadro 'AU': $enlace ="https://www.amazon.com.au/dp/".$linkpartone."/ref = nosim?etiqueta ="; descanso; caso 'BR': $enlace ="https://www.amazon.com.br/dp/".$linkpartone."/ref = nosim?etiqueta ="; descanso; defecto: $enlace ="https://www.amazon.com/dp/".$linkpartone."/ref = nosim?etiqueta = jonstech-20"; } si($debug == verdadero) { eco "1. $iplocation. 2. $browserlang. 3. $userlang. 4. $enlace"; } más { encabezamiento('Ubicación: '. $ enlace); el(); } } si (Está establecido($_OBTENER['addr'])) enlace_proceso(); //crear un filtro para reemplazar los enlaces de Amazon con redireccionamiento interno, incluido un código aleatorio para evitar el almacenamiento en caché función modificar_enlaces_afiliados_amazon($contenido) { $contenido = str_replace('<un rel ="nofollow" href ="https://www.amazon ', '<guión>var ran_var = Math.random();</guión><un estilo ="background: ninguno;" rel ="nofollow" onclick ="location.href=this.href+\'?ran=\'+ran_var;falso retorno;" objetivo ="_blanco" href ="https://jonscaife.com/wp-content/plugins/amazon-affiliates-redirect.php?addr = ', $contenido); devolver str_replace('<a href ="https://www.amazon ', '<guión>var ran_var = Math.random();</guión><un estilo ="background: ninguno;" rel ="nofollow" onclick ="location.href=this.href+\'?ran=\'+ran_var;falso retorno;" objetivo ="_blanco" href ="https://jonscaife.com/wp-content/plugins/amazon-affiliates-redirect.php?addr = ', $contenido); } add_filter( 'The_content', 'modificar_enlaces_afiliados_amazon' ) ?>
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, sí usa javascript del lado del cliente para generar una URL de redireccionamiento única cada vez para evitar que cualquier sistema de almacenamiento en caché cause una detección de ubicación incorrecta.
“Hi James I realise it has been a long while, but I just checked this on windows 11 (build 23H2)…”