Aproveché recientemente una actualización que realicé de WordPress para instalar y configurar un plugin que agrega un detalle elegante a nuestro blog: identificar la procedencia del usuario desplegando la bandera de su país en los comentarios. Esto es posible a partir de IP2Nation WordPress Plugin, el cual se puede configurar de manera sencilla en nuestro blog. Veamos los pasos para realizar esto.
Antes de continuar, aclaro que la idea no es mía sino fue tomada de la propia página desde la cual se puede descargar el plugin. Dicho esto, manos a la obra.
En primer lugar debemos recopilar los archivos necesarios:
- Descargar el plugin desde el sitio French Frag Factory. Por defecto el nombre es wp_ozh_ip2nation.txt pero hay que guardarlo con extensión PHP.
- Un archivo ZIP con la información que vamos a agregar a la base de datos. Una vez bajado los descomprimimos y obtendremos el archivo ip2nation.sql.
- Otro ZIP con las banderas de cada país en formato GIF.
La lógica
El procedimiento a realizar para mostrar la bandera que identificará el país desde el cual se conecta el usuario según su dirección IP es sencillo. El plugin que bajamos nos permite trabajar con dos nuevas funciones en WordPress.
- wp_ozh_getCountryName() : Devuelve el nombre del país en ingles (Argentina, Spain, Uruguay, etc.)
- wp_ozh_getCountryCode() : Devuelve las dos letras con el dominio que identifica al país (ar, es, uy, etc.)
A partir de la información que agregamos a la base de datos, podemos realizar las direcciones IP con el país al cual está asignada. Las selección de la bandera correspondiente se hace sobre la base del nombre del archivo, puesto que su terminación está codificada con las dos letras que corresponden al dominio del país (flag_ar.gif, flag_es.gif, flag_uy.gif, etc.).
Veamos los pasos a seguir ahora
1. Instalar el plugin
Muy sencillo. Bajamos el archivo, lo guardamos con extensión PHP y como siempre los subimos a nuestro blog en el directorio wp-content/plugins. Luego entramos en la administración y lo activamos.
2. Agregar información a la base de datos
También muy sencillo si contamos con un administrador de base de datos. Con phpMyAdmin es muy fácil: simplemente seleccionamos ejecutar una consulta SQL, buscamos el archivo y le indicamos que lo procese. Hay que tener en cuenta que el archivo pesa 1,5 MB más o menos por lo que el proceso puede tardar algunos minutos.
Como resultado veremos que en la base de datos hay dos nuevas tablas: ip2nation y ip2nationCountries.
3. Subir las banderas
Al descomprimir el ZIP obtendremos una carpeta flag con más de 100 archivos. Podemos subirlo en el lugar del blog que más nos guste. En mi caso, para mantener todo ordenado lo puse dentro de la carpeta images de mi plantilla. Es decir que la ruta quedó: blog/wp-content/themes/mitema/images/flags. Es importante recordar bien la ruta ya que es fundamental para el paso que sigue.
4. Modificar el archivo comments.php
Lo que íbamos a hacer es colocar la bandera que corresponde al país desde el cual se conecta el usuario al lado de su nombre. Tendremos que buscar esta información en el archivo de comentarios, generalmente comments.php.
Lo abrimos con nuestro editor favorito y buscamos la porción del código donde se encuentra la variable $author, que es la que almacena el nombre de quien escribe el comentario. A continuación insertamos el siguiente código basado en las funciones que había mencionado antes:
comment_author_IP).'.gif">' ;
?>
Lo más importante acá es determinar correctamente la ruta donde están las banderas. Si tenemos dudas usar la dirección absoluta, por ejemplo: ‘http://www.misitio.com/blog/wp-content/themes/mitema/images/flags/flag_’
5. Testear
Una vez que todo este listo y el archivo comments.php con las modificaciones esté subido sólo nos queda verificar que todo funcione bien. Para ello podemos ingresar a nuestro blogs a través de proxies de diferentes países y agregar comentarios para comprobar que funcione. Buscando en Google encontré esta lista de servidores proxy abiertos. Luego sólo queda configurar el navegador y hacer las pruebas. Los resultados, aquí abajo.