Geolocalización de WooCommerce no funciona: clave de MaxMind y caché
"WooCommerce geolocation no funciona" casi siempre tiene una de dos causas, y ninguna es el plugin de moneda: una clave MaxMind faltante, o una caché de página que sirve a un visitante la página construida para otro.
Atención: desde WooCommerce v.3.9 para la funcionalidad de geolocalización se requiere clave maxmind en los ajustes de woocommerce: wp-admin/admin.php?page=wc-settings&tab=integration§ion=maxmind_geolocation
Intenta cambiar las reglas de geolocalización y míralas en diferentes navegadores, porque el mismo navegador te mostrará solo el primer resultado. Mejor aún, envía el enlace a tus amigos, porque si el almacenamiento de datos está seleccionado como transitorio (también memcached o redis) verás el mismo resultado en todos los navegadores en tu computadora (la misma IP) - se necesita otra computadora - comparte el enlace con amigos. Ejemplo: Estás en España y quieres comprobar GeoLocation, así que agrega JPY por ejemplo, guarda, ve a las reglas de Geo y para JPY establece España
Abre el navegador Opera, por ejemplo, me refiero a cualquier otro navegador que no hayas usado para probar tu sitio y verás que ¡JPY está configurado! No hagas la misma prueba en el mismo navegador, hoy exactamente....
GeoLocation proporcionado por la API nativa de woocommerce, por lo que debería funcionar perfectamente... De todas formas, WOOCS utiliza la funcionalidad de woocommerce. A veces sucede que en los lugares cerca de la frontera geo ip muestra otro país, por ejemplo en España en la ciudad de Logroño muestra que está en Francia.
Precisión: https://www.maxmind.com/en/geoip2-city-accuracy-comparison
Desde la versión 2.1.8/1.1.8 es posible usar para pruebas este shortcode: [woocs_geo_hello] - colócalo en un widget de texto o en cualquier página para ver información sobre el estado de la funcionalidad GeoIp en tu sitio.
Solicitud de soporte al cliente: https://pluginus.net/support/topic/currency-switcher-behaving-abnormally/
También puedes probar lo siguiente: inserta el código de abajo en tu archivo functions.php del tema wp actual:
add_filter("woocs_geobone_ip",function(){
return true;
});
Si usas algún plugin de caché, habilita: Ajustes de WooCommerce -> General -> Ubicación predeterminada del cliente
Si usas el plugin rocket cache, desactiva la opción 'Habilitar caché para usuarios conectados de WordPress':
Para probar la funcionalidad GeoIP puedes usar el siguiente servicio: https://www.locabrowser.com
ATENCIÓN: Si estás seguro de que las recomendaciones anteriores se han realizado correctamente, comprueba si la funcionalidad geo de woo funciona en tu sitio: simplemente inserta en un widget de texto normal el shortcode [woocs_geo_hello]
Otros ejemplos de un problema:
El asunto se resolvió hoy. Me gustaría compartir contigo cómo se resolvió después de contactar a mi proveedor y a WC, por si acaso un cliente con el mismo proveedor se presenta con el mismo problema. Mi proveedor es Bluehost. Parece que solo recientemente comenzaron a rellenar HTTP_X_FOWARDED_FOR con la IP estática de mi servidor. Quizás esto ocurrió después de alguna actualización que hicieron, no lo sé. No fueron muy útiles al proporcionar información sobre todo esto. WooCommerce fueron quienes pudieron detectar el problema después de un tiempo y sugirieron una solución/alternativa. WooCommerce generalmente revisará las siguientes variables para la IP real (empezando desde arriba): HTTP_X_REAL_IP HTTP_X_FORWARDED_FOR REMOTE_ADDR Por lo tanto, WooCommerce está buscando el país para esta dirección IP en lugar de la dirección IP que está almacenada en REMOTE_ADDR. WooCommerce espera que HTTP_X_FORWARDED_FOR tenga el siguiente formato: Los servidores proxy pueden enviar este encabezado así: X-Forwarded-For: client1, proxy1, proxy2 Asegúrate de que siempre enviamos solo la primera IP de la lista, que debe ser siempre la IP del cliente. WooCommerce sugirió una solución alternativa que implicaba agregar un fragmento a functions.php para sobrescribirlo:if ( isset( $_SERVER['REMOTE_ADDR'] ) && ! empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
$_SERVER['HTTP_X_FORWARDED_FOR'] = $_SERVER['REMOTE_ADDR'];
}
Después de agregar el fragmento a functions.php todo funcionó bien y finalmente pude activar el cambiador de moneda nuevamente :)
Nota: también descubrimos que hostgator tenía un problema similar https://wordpress.org/support/topic/same-ip-address-for-all-orders/page/2/#post-11362720
Saludos,
Ezz
Cloudflare
Hola, He estado usando este plugin durante años y funcionó muy bien hasta que cambiamos de servidor. Probé la mayoría de las cosas sugeridas en el foro pero no pude tener éxito. Cuando uso el plugin solo muestra la moneda Euro incluso si está configurado para mostrar Lira Turca en Turquía. Estamos usando Ubuntu 22.04 en EC2 con Cloudpanel y nuestros registros DNS en Cloudflare. ¿Tienes alguna sugerencia para nosotros para reactivar la detección de ubicación? Resuelto: Hola Pablo y todos los que leen esto, Gracias por su apoyo, desafortunadamente esta no fue la causa de mi problema. No pude resolverlo ese día pero ahora lo he solucionado. Nuestro nuevo servidor usa Ngnix / Cloudpanel y el sistema Varnish Cache está activo. Cuando Varnish está activo, crea una especie de balanceador de carga como un muro frente al servidor, por lo que cuando un usuario visita el sitio web, en realidad visita Varnish antes y la IP que se envía a Woocommerce es la IP de Varnish. El problema se resolvió cuando agregué" real_ip_header CF-Connecting-IP;" a mi archivo Vhost y luego desactivé Varnish Cache. Todavía estoy trabajando en cómo Varnish y el plugin cambiador de moneda pueden funcionar juntos, si encuentro una solución la compartiré también. Espero que esto ayude a otras personas que tienen el mismo problema o similar. Fuente: https://pluginus.net/support/topic/problem-with-new-server/Notas para WP Rocket: FOX no funciona mientras WP Rocket está activo Leer también: https://pluginus.net/support/topic/issue-with-switch-currency-geoip/ Leer también: /how-to-switch-currency-based-on-billing-address-instead-of-geolocation/