Saltar al contenido

El blog de Skatox Entradas

Mantenimiento anual del blog

¡Saludos lectores! Casi siempre a final de año, dedico unos días a realizar mantenimiento de este sitio: evaluando plugins, chequeando mejores opciones, incorporar nuevas tecnologías web, entre otros. Este año como el tema actual me sigue gustando, me dediqué a mejorar la versión móvil y mejorar la experiencia de usuario a todas las plataformas.

También realicé los siguientes cambios:

  • La barra lateral ahora ocupa todo el espacio vertical y al desplazar la página, la barra se mantiene al fondo para que siempre veas información.
  • Mejoras de usabilidad en el pie de página.
  • Los enlaces en la versión móviles están mejor organizados para evitar presionar por equivocación otro enlace.
  • Se removió todo el código de mi página en Facebook, pues poca gente lo usa y causa muchos retrasos en la carga del sitio, ademas sirve para rastrearte.
  • Mejor paleta de colores en la foto de mi perfil gracias a Tatica.
  • Grandes optimizaciones a las imágenes de la plantilla, mejora en la carga de JS, compresión del código HTML, mejoras en la cache desde el navegador, mejoras en respuesta de contenido estático, entre otros.

En otras palabras, el sitio debería cargar mejor y verse mas amigable en dispositivos móviles.

Nota: Agradezco que me reporten cualquier detalle incorrecto que encuentren.

Deja un comentario

Charla sobre como mejorar la salud siendo Informático

Ser informático es una profesión con muchas ventajas, pero creo que un problema que nos afecta a todos nosotros, son las consecuencias de estar sentado muchas horas frente a la computadora. Aunque la mayoría sabemos que se incrementa el peso, se afecta el sueño, etc. Pocos toman medidas para reducir o evitar estas consecuencias.

En el Reject.JS 2015, hubo un charla que me llamó la atención porque a pesar de ser un evento con contenido técnico, esta ponencia habló sobre lo comentado en el párrafo anterior,  creando conciencia sobre problemas de salud comunes entre informáticos, medidas para evitarlos y mejorar nuestra salud en general. Les recomiendo verla para que conozcan sobre este tema y vayan aplicando los consejos para mejorar sus vidas.

Chris Ward – Geek Health [Reject.JS 2015]

 

Me pareció extraño ver una charla con ese tema en un evento técnico, pero como los asistentes somos informáticos, creo que sirvió para dar a conocer como mejorar la calidad de vida y salud de todos. Ojalá futuros eventos tomen la iniciativa e incluyan charlas interesantes para los informáticos pero con contenido fuera de lo técnico.

Deja un comentario

Cómo enviar los correos electrónicos predefinidos de Woocommerce

WooCommerce es una excelente herramienta para montar tu propia tienda en línea, es fácil de instalar y usar gracias que está construida sobre WordPress. Ademas es posible modificar todo su comportamiento mediante la instalación o construcción de plugins.

Hace unas semanas construyendo un plugin para cambiar el flujo normal de los estados de una orden, me tocó enviar los correos predefinidos (nueva orden, orden procesada, etc) manualmente. Para mi sorpresa no encontré documentación sobre como hacerlo, y al leer el código fuente de la clase para enviar correos, me dí cuenta que posee estructura extraña porque utiliza muchos hooks y variables globales, así que me costó hacerlo.

Envío de correos

Woocommerce posee una clase llamada WC_Emails (no confundir con WC_Email que es abstracta para definir una plantilla de correo) cuya tarea es cargar todas las plantillas de correos definidas y posee métodos para enviar el correo. Pues simplemente se debe seleccionar una de las plantillas disponibles y ejecutar el método trigger con los parámetros requeridos para enviar el correo electrónico, es importante NO instanciar un objeto desde esta clase, pues al momento de crearse se instancia ciertas cosas de la plantilla y se ejecutan, ocasionando bugs como repetición del encabezado y ejecución múltiple de hooks.

Por ello, solo debemos llamar a la función WC()->mailer() que siempre nos devuelve el objeto global de WC_Emails, seleccionamos la plantilla en el atributo emails, podemos personalizar el texto del sujeto o encabezado del correo y finalmente se ejecuta el método trigger con los parámetros del contenido del correo (los cuales varían en cada plantilla), tal como se puede observar en el siguiente ejemplo:

$wcEmail = WC()->mailer();
$emailer = $wcEmail->emails['WC_Email_Customer_Note']; //Enviar una nota al usuario
$emailer->subject = $subject; //Sujeto del correo
$emailer->heading = $title; //Título del contenido del correo
$emailer->trigger(array(
   'order_id' => $order_id, //Número de la orden
   'customer_note' => $msg  //Contenido de la nota
));

Las plantillas de correo disponibles por defecto (ya que puedes agregar tus propias plantillas) son:

  • WC_Email_New_Order
  • WC_Email_Cancelled_Order
  • WC_Email_Customer_Processing_Order
  • WC_Email_Customer_Completed_Order
  • WC_Email_Customer_Refunded_Order
  • WC_Email_Customer_Invoice
  • WC_Email_Customer_Note
  • WC_Email_Customer_Reset_Password
  • WC_Email_Customer_New_Account

En caso de necesitar los parámetros, simplemente chequeen los archivos con las clases. El nombre del archivo es la misma constante pero todo en minúsculas y cambiando piso por guiones, por ejemplo, WC_Email_Customer_Invoice está definido en el archivo wc-email-customer-invoice.php. Es fácil, aunque parezca lo contrario. Pero descubrir esta información me tomó tiempo al tener que chequear el código fuente de los correos en WooCommerce, así que espero que les haya servido de gran ayuda y ahorra de tiempo.

1 comentario

Uptime Funk (parodia del equipo de SuSE)

Como siempre, en este blog les comparto videos de música geek y esta vez, es una parodia de Uptown Funk la canción de Bruno Mars, pero realizada por el equipo de SuSE para promocionar la funcionalidad de Linux 4.0, que consiste en parchear las actualizaciones del kernel en tiempo real sin tener que reiniciar el equipo (muy cool, ¿no?).

Espero que se hayan fijado en la letra, pues son un poco graciosas. Así que ya sabes: Don’t reboot! Just patch!

Deja un comentario