Compatibilidad y plugins en Themes Premium para WordPress

Hace unas semanas bajé los datos de algunos themes de WordPress disponibles en ThemeForest y cada tanto en mis ratos libres juego con los datos, como pueden ver en estos artículos anteriores. En el de hoy voy a jugar a ser dios y voy a decirles que tiene que tener su theme para que tengan muchas ventas. Y les voy a mentir, porque obviamente hay muchas variables que no estoy teniendo en cuenta, siendo una de las principales el diseño, el cual es subjetivo, difícil de clasificar/medir, y otras tantas cosas que lo hacen complejo, al menos para mis limitados conocimientos.

¿Pero entonces no tenés en cuenta el diseño?

¡No! Perdón. Bah, más que perdón, es culpa tuya y de tu subjetividad, maldito humano. Lo que si tengo en cuenta en esta ocasión son los plugins que incluye o con los que es compatible cada tema, en general dependiendo del plugin la compatibilidad no es un problema, pero para otros se requiere de algunos detalles para que todo marche sobre ruedas. Un poco el objetivo es identificar aquellos plugins para los que vale la pena invertir tiempo para asegurar la compatibilidad.

DISCLAIMER: En el artículo me refiero a compatibilidad, pero algunos de los plugins están incluidos con el theme directamente.

Empecemos a lo grande, de los 1800 themes de los que tengo datos, estos son los porcentajes de compatibilidad con diferentes plugins o librerías.


Esta tabla incluye todas las plantillas, incluso aquellas que llevaban menos de un día en Themeforest al momento de obtener los datos, por lo que se ve WPML y WooCommerce son 2 plugins populares que hay que considerar.

En la siguiente sección utilizo la información de las plantillas que llevan mas de 30 días en la tienda, ya que he notado que algunas tenían picos de ventas altos al ser publicados pero después decaían. Debería realizar un análisis mas exhaustivo para intentar determinar si se trata de gente que intenta “engañar al sistema” o son cuestiones naturales del mercado.

Datos de los themes con el menor índice de ventas

Ahora voy a por algo que puede brindar un poco mas de información, se tratan de las estadísticas de los últimos 500 y 100 themes cuando se los ordena por el “Índice de ventas”, el cual no es más que la cantidad de ventas que tiene un theme dividido por la cantidad de días que lleva la plantilla en la tienda desde su fecha de creación.

Remarco lo dicho, en las siguientes tablas se dejan de lado los themes que llevan menos de 30 días en la tienda.

Datos de los themes con el mayor índice de ventas

La siguiente tabla contiene a las plantillas con más de 30 días en la tienda que tienen la mayor cantidad de ventas por día (Índice de ventas).


Como se puede apreciar en la tabla, a medida que me acerco a los primeros puestos en este ranking ordenado por “Índice de ventas” se hace más claro que WooCommerce y WPML son importantes en cuanto a compatibilidad se refiere. Eso no implica que no puedan vender un theme que no sea compatible con ninguno de estos plugins, ya que hay que considerar que puede que la razón por la que los themes compatibles con ambos tengan mas ventas esté mas relacionada con el tiempo que le dedica el creador a desarrollar la plantilla, que con la compatibilidad en si.

Una visión global de los plugins y las ventas

Lo siguiente es comparar las plantillas que encabezan la tabla, las que se encuentran al final y el promedio. El “Top 100” se corresponde con los 100 themes con el mayor índice de ventas, y el “Last 100” con los últimos 100 themes ordenados por el mismo índice. Tengan en cuenta que para estos rankings utilicé solo los themes que llevaban mas de 30 días en la tienda, debido a que encontré algunas inconsistencias en el ranking al tomar una muestra unos días después.


Viendo la tabla anterior se hace aparente que la compatibilidad con Woocommerce y WPML es un factor importante a considerar cuando se desarrolla y diseña un theme con el objetivo de venderlo en masa, pero ¿Vale la pena?

Para saber le consulté a Nico Andrade, quien vende themes en Themeforest y está acostumbrado al proceso de hacer una plantilla compatible con Woocomerce y WPML.

Palabras de alguien que sabe:

Hacer un Theme compatible tanto con Woocommerce como con WPML diría que 1 día cada uno.
WPML sin dudas es mas rápido.

Woocommerce puede tardar mas si queres hacer un Shop con un layout distinto en front end. Pero si solo queres hacerlo compatible como en la mayoría de los casos, tardas 1 día a lo sumo 2.

Woocommerce es sin dudas el plugin de ecommerce más popular para WordPress, y considerando el crecimiento que ha tenido el comercio electrónico, tanto en consumidores como en cantidad de vendedores, sin dudas es una alternativa válida. WPML, que es un plugin para traducción, es importante cuando se espera vender en tiendas con usuarios de todo el mundo, y porque también es un plugin popular en su rubro. Nada nuevo bajo el sol.

OK ¿Cómo digiero todo esto?

Acá no hubo ningún avance científico, lo que se puede rescatar es que Woocommerce y WPML son dos plugins que es interesante tener en cuenta cuando se hace un theme premium para venta masiva, si hacen algo a medida para algún cliente serán ustedes quienes deban evaluar lo que éste requiere.

 

Eliminar los scripts para Emojis de WordPress

Desde la versión 4.2 de WordPress se ha añadido la compatibilidad con los Emojis, que no tienen nada que ver con los emoticones que soportaba anteriormente el sistema, si quieren pueden leer un poco más en la documentación oficial sobre emojis, aunque está un poco incompleta.

Como eliminar el Javascript y el CSS que se añade al HEAD

Si algunos de ustedes es un fanático de la perfomance y utiliza la herramienta PageSpeed de Google seguramente hayan notado que desde la actualizacion que añadió el soporte para Emojis sus resultados han bajo en las pruebas.

Por ejemplo, con el plugin de cacheo desactivado y poco más que algunas reglas en el .htaccess Ciber Geek tiene un puntaje de 82 en Page Speed para escritorio y 71 para móviles.

Añadiendo las siguientes lineas al archivo “functions.php” del theme los puntajes pasan a 85 y 73, para la versión de escritorio y móvil, respectivamente.

remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');

Además, si así lo desean, pueden eliminar todo rastro de los Emojis con el siguiente código mencionado en este thread de StackOverflow.


function disable_wp_emojicons() {


// all actions related to emojis
remove_action( 'admin_print_styles', 'print_emoji_styles' );
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );


// filter to remove TinyMCE emojis
add_filter( 'tiny_mce_plugins', 'disable_emojicons_tinymce' );
}
add_action( 'init', 'disable_wp_emojicons' );


function disable_emojicons_tinymce( $plugins ) {
if ( is_array( $plugins ) ) {
return array_diff( $plugins, array( 'wpemoji' ) );
} else {
return array();
}
}

No peguen este código directamente en su archivo “functions.php” de un tema en producción, por las dudas primero pruebenlo. O no, y dedíquenle una oración a Richard Stallman.

Bitcoin no está teniendo gran impacto en la economía argentina

Bitcoin es genial, Bitcoin tiene futuro, tal vez no como Bitcoin, sino en el sentido más amplio de las criptomonedas. En el mundo de la tecnología no es raro que llegue algo nuevo, innovador, pero que nunca logre despegar, el mercado simplemente no está preparado y las cosas pasan al olvido. Personalmente me parece que debe haber un balance entre demanda y marketing. ¿De qué estas hablando Willis? Ejemplo, Surface de Microsoft.

Pero, Bitcoin no es tan grande en Argentina

Si usamos Google Trends para tener una idea de la popularidad de Bitcoin, podemos comparar las búsquedas globales contra las búsquedas en Argentina.

bitcoin dolar

Google Trends Bitcoin

Por las dudas, en azul Bitcoin, en rojo Messi, en amarillo el dólar, y en verde un intento de Google por unificar las búsquedas de dolar estadounidense a nivel mundial. Ahora pasamos a Argentina.

bitcoin dolar argentina

Google Trends Bitcoin

En este caso, en azul Bitcoin, Messi en rojo, el dólar en amarillo y dubsmash en verde. ¿Que carajo tiene que ver dubsmash? Lo puse porque hace unos meses se popularizó y estaba en todos lados, es interesante notar que dubsmash comenzó siendo muy popular en Argentina, pero aún no ha logrado el mismo éxito a nivel mundial.

Como se puede ver, Bitcoin no es muy popular en el país. Pero, no es solo culpa de Bitcoin, tengamos en cuenta que la economía nacional es impulsada mayormente por el campo, y la mayor parte de la gente que utiliza criptomonedas está en otros sectores. Además, por el momento ésta criptomoneda tiene su principal ventaja en la transferencia de dinero, ya que debido a su alta volatilidad no es recomendable que sea utilizada como reserva de valor.

En un futuro tal vez no tan cercano

La mayor utilidad de Bitcoin en Argentina es la de evadir, evadir impuestos, evadir restricciones de cambio de divisas, evadir aduanas. El peso argentino no inspira confianza en el argentino promedio, y el dolar por el momento es una de las formas de conservar valor predilectas, y ha sido así desde hace mucho tiempo.

Las criptomonedas nacieron para evitar al sistema financiero, su lentitud y sus comisiones, pero es en la ilegalidad donde han encontrado su mayor uso. Esperemos que en los próximos años se hagan mas populares frente al usuario ocasional, y logren ser una alternativa simple al sistema bancario.

NOTA: El NYTimes cambió el titulo de su artículo, paso de “How Bitcoin Is Disrupting Argentina’s Economy” a “Can Bitcoin Conquer Argentina?”.

 

Google añadió al Subte de Buenos Aires a su servicio Transit

Hoy justamente estaba buscando una dirección en Google Maps y vi que entre las opciones que figuraban para ir se encontraba las lineas de subte que hay en la Capital Federal. Córdoba era hasta el momento la única ciudad del país que tenía incorporado parte de su transporte público en Google Transit/Maps.

Decir que Google lo añadió no es del todo correcto, ya que en general es la empresa de transporte la que pide la inclusión en el servicio, y la gente del buscador solo aprueba la solicitud.

subte en google maps

Ejemplo de recorrido en Capital

La información a la que se puede acceder es:

  • Linea
  • Horarios
  • Costo
  • Frecuencia

Además del detalle del recorrido que se debe hacer, obviamente.

Si quieren pueden ver que otras ciudades tienen información sobre sus servicios de transporte público en Google Maps mediante Google Transit. Y ya que están ahí, pueden leer también un poco más sobre el funcionamiento del servicio y la forma en la que Transit incorpora los datos.

Javascript y 2 prácticas de (in)seguridad fáciles de evitar

Javascript es amor. Javascript NO es JAVA. Javascript no es pariente de JAVA. Javascript se llama así porque cuando estaba dando sus primeros pasos JAVA era el lenguaje de moda, todo esto por allá por 1995, en definitiva todo una cuestión de marketing.

En éste post quería resaltar 2 errores que veo comúnmente, el primero es hacer validaciones del lado del cliente de datos que no deberían ser visibles por un tercero, y el segundo esta relacionado con el acceso al sistema y la carga de librerías que no son estrictamente necesarias, recuerden que el código Javascript puede ser leído fácilmente por el usuario.

No expondrás tu validación al cliente

Ojo, se puede validar, por ejemplo, que el campo para el nombre solo contenga letras, espacios y guiones, ése tipo de validaciones están bien. El problema es cuando se valida un código el cual se obtiene a través de una función que toma datos conocidos por el cliente. La realidad es que esto es malo y no se debe hacer, pero si lo van a hacer, por lo menos no incluyan también el script de validación del lado del cliente.

Ejemplo. El sitio web de un municipio pide el DNI del dueño de una casa, la dirección de ésta y un código de validación para acceder a más datos sobre la misma, datos que solo deberían ser accesibles por el dueño. El código de validación se calcula a través del DNI y la dirección. La función realiza algunas modificaciones al DNI y la dirección y luego algunas cuentas mágicas y devuelve un código, que es el código de validación.

La práctica anterior es cuestionable, no deberían utilizarla si de verdad se preocupan por la confidencialidad de los datos, pero si la utilizan lo peor que pueden hacer es calcular el código de validación del lado del cliente utilizando Javascript, no, por favor, no. Y ojo, Javascript no tiene la culpa.

Incluir Javascript antes de autenticar al usuario

Este error ocurre a menudo, pasa mas o menos así.

  1. Un usuario intenta acceder a una función que requiere que éste esté logueado.
  2. El sistema muestra la pantalla de logueo.
  3. El sistema ya cargó los scripts del área “protegida”.

Esto no siempre está mal, el problema surge cuando los scripts exponen información sobre funciones internas del sistema, por ejemplo, llamadas AJAX a ciertos puntos de la aplicación. El peor escenario ocurre cuando esas URLs no verifican que el usuario esté autenticado y tenga la autorización correspondiente para ejecutar la acción.

Ojo, no está mal cargar librerías/scripts genéricos, como por ejemplo jQuery, pero de todos modos siempre intenten solo incluir lo justo y necesario para que el sitio permita realizar las acciones que corresponden. Y siempre verifiquen que el usuario esté autenticado y autorizado (que tiene el rol adecuado) para ejecutar una acción.

Relacionado con este ultimo punto, también se debe deshabilitar el listado de directorios en el servidor, ya que de nada sirve no incluir los archivos si alguien pueden navegar la estructura de archivos para llegar a ellos.

Conclusión

Si están dando sus primeros pasos en el desarrollo de aplicaciones, o si es la primera vez que van a hacer una aplicación que maneja datos sensibles, o si simplemente les interesa el tema, deberían darse una vuelta por el sitio de OWASP, donde van a encontrar mucha información útil sobre seguridad y buenas practicas para el desarrollo de aplicaciones seguras.