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.
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.
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?).
Uptime Funk - A SUSE Music Parody
Espero que se hayan fijado en la letra, pues son un poco graciosas. Así que ya sabes: Don’t reboot! Just patch!
El primer día fue de preparación de la logística, los estudiantes preparando sus robots en distintas áreas de la universidad, algo muy cool pues brindaba un ambiente Hacker a la institución. Se inicio una inauguración no formal del evento en el auditorio A, donde se realizaron tres ponencias de distintas organizaciones: la primera fue de Fundaelect sobre el uso de robots para el arreglo de instituciones eléctricas (al principio no estaba motivado por la parte política pero al ver los robots, todo cambió), la segunda fue por parte de Mozilla Venezuela sobre la Web de las Cosas (donde explicó como vivimos parte del futuro propuesto en la película Volver al futuro) y finalmente culminó con la de Telefónica sobre el uso de redes neuronales para detectar fallos en los equipos de telecomunicaciones. Fue un día suave, sin eventos de robots como tal y que sirvió para conocerse entre sí.
Estudiantes en el laboratorio de PrototiposCharla de MozillaCharla de MozillaCharla de Telefonica
Día II
El segundo día fue el mas cargado de actividades, comenzó con una excelente inauguración: primero con una obra de teatro de un profesor loco y sus robots, luego el coro de la universidad interpretó varias canciones de películas y series geek, dando un toque único al evento, posteriormente hubo palabras de las autoridades de la universidad, luego una ponencia de la Universidad Simón Bolívar para mostrar los avances de la investigación realizada en el país y promover en alumnos, la ejecución de ideas de negocio.
UNET BOTS 2015 #1 (Coro Universitario UNET)
Al finalizar la inauguración, se hizo una exposición de robots infantil. Para mí fue algo muy bien porque es impresionante la imaginación de los niños, quienes no se dejan llevar por limitaciones o ideas «no factibles». Ademas, siempre es bueno contar con una generación de relevo para que sigan llevando este tipo de actividades en el futuro.
Luego comenzaron las competencias en las distintas disciplinas, la mayoría de la gente iba por SUMO pues es la única donde se ven dos robots compitiendo al mismo tiempo. A pesar de que la universidad estaba en paro de docencia de pregrado, la asistencia fue masiva.
En el stand de Mozilla Venezuela, pudimos seguir expandiendo información sobre la Web de las cosas, hicimos reclutamiento para fundar el Firefox Club de la UNET, se promovió Firefox OS e inclusive tuve la oportunidad de conversar con unos alumnos que les gustaría modificar el sistema operativo para migrar a dispositivos de seguridad.
Inaguración del eventoPalabras del Prof. de la USBExposición infantilExposición infantilExposición infantilExposición infantilExposición infantilExposición infantilExposición infantilNiño con su robot de Legos que recoje basuraCompetencia de velocidadEstand de Mozilla VenezuelaReclutando nuevos miembrosReclutando nuevos miembrosEstudiantesReclutando a los organizadores del eventoLa nueva generaciónReclutando nuevos miembrosLas pistas del eventoCompetencia de SumoNuestro estandSesión de fotosParte del equipo de Mozilla VenezuelaEntrevista al canal regional
Día III
El día final la atención se la llevó las finales de las competencias de robots, en el caso de Mozilla Venezuela logramos conversar con personas de otras universidades para motivarlos a participar en la organización y fundar sus propios clubs en sus universidades. Ya en este día hicimos una rifa de una franela y entregábamos recuerdos de Firefox a cambio de Tweets que promocionaran las tecnologías de Mozilla y la web abierta.
Finalmente procedimos al acto final, donde se entregaron los respectivos premios, reconocimientos, la estudiantina de la UNET tocó canciones regionales y luego nos fuimos todos a la celebración post-evento.
El ambiente en la finalEstudiantes de oriente promocionando FirefoxRifa de la franelaGanadores de la franelaPresentes en nuestro estandEn la cabina de LourdesEn la cabina de LourdesCon Alirio MacabeoPromocionando Mozilla
Fue una gran oportunidad participar en este evento, me alegra como existe una nueva generación de estudiantes que sigan realizando investigaciones de robótica a pesar de las dificultades que atraviesa el país, fue posible dar a conocer el futuro de la web (que va mas allá de los navegadores) a estudiantes de todas partes del país, ver la competencias de robots fue una nueva experiencia para mí y sobre todo, que fue organizado por mi universidad.
Espero que este tipo de eventos se repitan a lo largo del país.