Cuando una empresa está presente en varios países lo correcto es que tenga una web distinta, adaptando sus contenidos no sólo idiomática sino también culturalmente. Sin embargo a veces eso no es eficiente o, simplemente, no es posible. Para estos casos podemos mostrar diferente contenido según el país del visitante.
Tabla de contenidos
Mismo idioma, distintos contenidos
Y no hablo aquí de una web multilenguaje, sino a mostrar realmente distinto contenido en función del país desde el que se acceda, independientemente del idioma elegido (o incluso si la web no tiene soporte multilenguaje).
Puede ser, por ejemplo, el caso que me presentó un cliente hace poco. Es un cliente con fuerte presencia nacional y que está comenzando a abrir mercado en Latinoamérica. Como decía al principio, lo ideal es hacer una nueva web adaptada culturalmente: no sólo el español hablado en los distintos países es diferente, sino que también las imágenes e, incluso, el diseño o la disposición de los contenidos deberían adaptarse.
Mi cliente se mostró de acuerdo y sin duda también lo cree necesario… si finalmente su crecimiento en Latinoamérica se materializa. De momento es sólo una prueba y sólo cuenta con la web actual.
¿Cómo, entonces, adaptamos los contenidos? ¿Cómo mostramos (por ejemplo) las tarifas nacionales a los clientes que accedan desde España, y las de exportación a los que accedan desde un país americano? ¿Cómo «ocultar» promociones u ofertas pensadas para los distribuidores a los posibles importadores? Y lo más difícil, ¿cómo hacerlo de forma transparente para el usuario e independientemente de su buena fe (sin que él tenga que elegir qué contenido necesita ver)?
Contenido personalizado por países: Custom Content by Country
La única solución que encaje con todas esas condiciones (relativamente comunes, por otro lado) y técnicamente factible es la detección por IP: averiguar de qué país proviene el visitante a partir de la IP que utiliza y, en función de eso, mostrarle uno u otro contenido.
No, tranquilo, no hay que ponerse a programar nada. No tendrás que hacer un script que detecte la IP del visitante, la coteje con una base de datos y entonces decida qué contenido imprimir en pantalla. Porque todo ese trabajo ya está hecho.
La solución es tan sencilla como instalar el plugin (gratuito) Custom Content by Country y comenzar a discriminar el contenido a mostrar mediante shortcodes.
Este plugin hace uso de la base de datos ip2nation para detectar el país de origen de la visita. La efectividad de esta base de datos es de entre el 98 y el 99%, por lo que el margen de error es muy pequeño (al instalar el plugin verás el aviso pidiéndote actualizar la base de datos de IP2Nation a la última versión).
¿Estás construyendo tu tienda online o eres implementador WordPress?
¿Necesitas plugins de calidad y con soporte para implementar funcionalidades concretas?
Consigue todos los plugins a la venta en la sección de plugins de esta web y todos los que siga añadiendo. Acceso a los 96 plugins (y subiendo) con soporte directo del desarrollador, actualizaciones y uso ilimitado: úsalos en tantas webs como lo necesites.
Distinto contenido según el país mediante shortcodes
El plugin utiliza el shortcode [CBC][/CBC] con tres parámetros:
- country, para indicar el país o la lista de países (códigos de dos letras) a los que se refiere el contenido entre shortcodes
- show, que indica si el contenido debe mostrarse (y) u ocultarse (n) a los países indicados (si no se especifica lo muestra por defecto)
- message, un texto (opcional) que se mostrará a los visitantes de los países que no pueden acceder al contenido (algo como Lo sentimos, este contenido no está disponible en tu país o algo así)
- html, una opción algo más técnica, por si se quiere dar un formato especial a este tipo de contenido, pero no es en absoluto necesario usarlo
Pero se verá mucho mejor con algunos ejemplos.
Contenidos distintos por países, ejemplos prácticos
En el caso de mi cliente que explicaba más arriba la solución es muy sencilla. Algo así como:
[CBC country="es" show="y"]Contenido para los visitantes de España[/CBC] [CBC country="es" show="n"]Contenido para los visitantes del resto de países[/CBC]
Pero igualmente se podría discriminar por país (eso sí, es algo más trabajoso):
[CBC country="es" show="y"]Contenido para los visitantes de España[/CBC] [CBC country="cl" show="y"]Contenido para los visitantes de Chile[/CBC] [CBC country="mx" show="y"]Contenido para los visitantes de México[/CBC] [CBC country="ar" show="y"]Contenido para los visitantes de Argentina[/CBC] [CBC country="co" show="y"]Contenido para los visitantes de Colombia[/CBC] [CBC country="ve" show="y"]Contenido para los visitantes de Venezuela[/CBC] [CBC country="pe" show="y"]Contenido para los visitantes de Perú[/CBC] etc.
Por supuesto, esto no sólo se aplica a texto. El contenido bien puede ser un vídeo, una imagen o un enlace. Cualquier cosa, en realidad:
[CBC country="es" show="y"][/CBC] [CBC country="es" show="n"][/CBC]
Así de sencillo. Si tienes cualquier duda acerca de este tema o cualquier otro relacionado con WordPress o con WooCommerce, no dudes en ponerte en contacto conmigo. Estoy a tu disposición.
Elena dice
Buenos días,
Muchas gracias por tu artículo, muy interesante.
Quería consultarte si conoces algún plugin que realice la geolocalización para aplicarla a la moneda de los productos de woocommerce.
Tengo una pequeña tienda online que vende a 2 países (Ecuador y España) y dado que tiene sede física en ambos países desde los cuales se envían las compras a los clientes de forma local, lo ideal sería que en función del país donde se conecte le aparezca la tienda 1 con moneda de Ecuador o la tienda 2 con moneda de España.
¿Sabrías decirme si esto sería posible?
Gracias de antemano.
Enrique J. Ros dice
Hola Elena, gracias por tu comentario. Bueno, bastante complicado es ya el tema de multicurrency como para añadirle geolocalización 🙂 aunque debería ser posible. Este plugin lo hace (además es gratuito) pero yo no lo he probado, y el foro de soporte parece bastante «concurrido».
El caso es que con algo tan complicado técnicamente pueden fallar mil cosas, y que funcione bien o no dependerá seguramente de la compatibilidad con el theme, los otros plugins, etcétera. Yo lo probaría en un entorno de pruebas antes de pasarlo a la web en producción.
Un saludo.
Elena dice
Muchísimas gracias por tu respuesta.
Lo probaré y te comentaré por si te puede servir la información.
¡Saludos!
Emiliana dice
Excelente, voy a probarlo a ver que tal trabaja con Woocommerce. Me interesa que una lista específica de productos se muestre a un país solamente. Espero que sea lo que estoy buscando.
Gracuas
Enrique Ros dice
Hola Emiliana
Este plugin sólo te servirá para contenidos. Hay un plugin específico para mostrar u ocultar productos de WooCommerce en función del país, puedes verlo en este artículo.
Un saludo.
Laura dice
Hola Enrique,
Gracias por tu aporte!!! Es justo lo que estoy buscando.
¿Sabrías decirme si el contenido a mostrar tambien se puede filtrar por categorías? Por ejemplo, si quiero mostrar los posts con categoría «x» en España y los de categoria «y» en el resto de paises. ¿Como sería el codigo?
Un saludo!
Enrique J. Ros dice
Hola Laura
El plugin por sí sólo no lo hace, habría que usarlo en combinación con algún plugin de contenido condicional (es decir, un plugin que te inserte un shortcode u otro de este plugin en función de la categoría) o bien hacerlo por programación.
Un saludo.
Reinaldo dice
Hola un gusto saludarte, muy buen artículo, quisiera preguntar si se podría utilizar este plugin conjuntamente con el plugin WPML multilenguaje. Gracias.
Enrique J. Ros dice
Hola Reinaldo, gracias por tu comentario.
Sí, no veo por qué no, pero tampoco hay relación: son funcionalidades completamente diferentes. Este plugin simplemente muestra un contenido u otro en función del país. Lógicamente, tendrás que cuidar de utilizar el shortcode y lo que quieres mostrar en el idioma correspondiente al contenido en el que está.
Un saludo.
Luis Javier Alonso dice
Hola Enrique, gracias por tu trabajo!! He usado este plugin para mostrar un teléfono u otro según estés en uno de los 4 países que tienen teléfono. La pregunta es, para el resto de países se puede poner uno de esos teléfonos? O sea, que si hay para mostrar un contenido por defecto. Gracias.
Te envío el código:
[CBC show=»s» country=»es»]+XXXXXXXXX[/CBC]
[CBC show=»s» country=»co»]+YYYYYYYYYY[/CBC]
[CBC show=»s» country=»gb»]+ZZZZZZZZZ Ext 777[/CBC]
[CBC show=»s» country=»us»]+1 TTTTTTTT[/CBC]
Enrique J. Ros dice
Hola Luis
Puedes poner para el resto de países lo que quieras. Sólo tienes que meterlo en un shortcode que excluya a esos cuatro con un show=»n», y es lo que verán todos los visitantes excepto los que provengan de estos países excluidos.
Un saludo
naason dice
Hola Enrique, excelente tus articulos como siempre, aprovecho para hacerte una consulta acerca de otro tema, existe algun plugin que me permita introducir un numero para verificar un certificado digital de una persona, aplicado a lo academico
Saludos
amaia dice
Buenas Enrique,
Tengo una tienda (con solo un producto) la tienda esta en dos idiomas, graces y español pero los dos países comparten el euro como moneda. Me gustaría poner un precio diferente en francia. Imagina 59,95€ en España y 75€ en Francia. La traducción esta hecha con WPML y ni este plugin ni woocomerce me da la opción de cambiar el precio según el idioma.
A ver si me puedes ayudar.
saludos
Enrique J. Ros dice
Hola Amaia
Puedes probar con WooCommerce Price Based on Country.
Un saludo.
VICENTE dice
Hola Enrique,
He probado la instalación del plugin pero la base de ip2nation no llega a instalarse.
Me pregunto si habrá que crearla a mano con phpmyadmin
SALUDOS
adrian dice
hola
muy buen contenido
yo quisiera saber si hay forma de comprobar esto desde mi computadora, es decir, que los mensajes corran bien en los diferentes paises
Enrique J. Ros dice
Hola Adrián
Puedes utilizar un proxy para que el servidor «crea» que estás accediendo desde otro país.
Un saludo.
adrian dice
Muchas gracias ! Funciona genial
Mon dice
Hola Enrique,
Interesante plugin, pero ¿este plugin solo sirve para texto escrito, no? Porque, si yo tengo una página con tarifas que solo quiero que se muestre en España y no a los demás países, ¿no me vale ya que la pagina está montada con visual composer ¿sabes algún plugin para que toda una página solo se vea en España y no al resto y que otra página de tarifas solo se vea en América ?
Saludos
Luis dice
Hola amigo, una duda, como se haría cuando quieres usar el shortcode para IP? [ CBC_IP ] porque lo que quiero es que un mensaje se muestre sólo para cuando se detecte que vienen de IP’s de Venezuela. Gracias por tu ayuda.
Enrique J. Ros dice
Hola Luis
No tienes que lidiar con IPs, eso ya lo hace el plugin, tienes que usar el shortcode (sólo hay uno) con el atributo para el país.
Un saludo
Daniel dice
Hola Enrique, muy util y simple de utilizar… pero tengo un tema con el Cache…!!!! pues uso comet, ya que tengo un multisite… anda muy bien, habia configurado un sector de precio en dolares y otros en pesos argentinos (donde vivo)… de maravilla… un dia abro mi tablet para chequear la web y estaba en dolares, lo mismo con el telefono!!! limpio cache y ya me salió en pesos… me dio un susto tremendo, encontre el plugin «Country Caching» que trabaja con comet… donde «separas» las caches… pero aún tengo dudas si realmente funciona… si lo veo en pesos y otros paises ¿lo veran en dolares?… que debo hacer para comprobas que las caches esten bien… ¿deberia usar otro plugin?
Agradezco los consejos, muchas gracias
Enrique J. Ros dice
Hola Daniel
Usa un proxy web para comprobarlo como si accedieras desde otros países.
Un saludo
cesar dice
…Hola, no me aclaro como lo tengo que hacer con los enlaces de amazon.
saludos y gracias
David CB dice
Si mi web esta hecha con un constructor visual ¿Donde insertaria el codigo?
[CBC country=»mx» show=»y»][/CBC]
Psdt: Te comento que intente añadirlo con el plugin: Code Snippets, sin embargo no me funciona
¿Qué me recomiendas hacer?
Enrique J. Ros dice
Hola David
Los shortcodes se ponen dentro del contenido.
Un saludo
jhon vanegas dice
Interesante pero estoy buscando una soluciion para buddypress que me muestre solo miembros y contenido de acuerdo al pais del miembros que se registre y no me muestre todo en general, hace falta y he visto muchos intersados en esto. si es compatible con buddyboss platform excelente.
Alex dice
Hola que tal, el plug in ya no está disponible, sabes si existe otro que haga lo mismo? Gracias