Saltar al contenido

Año: 2015

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

Breve resumen del UNETBots 2015

El pasado 28, 29 y 30 de octubre, se llevó a cabo en la Universidad Nacional Experimental del Táchira (la universidad donde me gradué y actualmente laboro) la competencia nacional de Robótica. Gracias a los profesores Dahyana Nimo y Angel Gil, Mozilla Venezuela pudo contar con un estand para promocinar la Web of things (la web de las cosas).

Día I

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í.

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.

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.

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.

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.

2 comentarios

Hackers Wizards of the Electronic Age: antiguo documental sobre los verdaderos Hackers

No recuerdo como llegué a obtener el enlace a este documental de Hackers, pero cuando leí el título pensé que era un documental reciente porque no conocía el título. Para mi sorpresa al empezar verlo, es un documental de 1984 realizado en un encuentro de Hackers, pero incluye a leyendas como Richard Stallman y Steve Wozniak.

Les recomiendo ver este corto documental (dura menos de media hora) y es interesante como eran los primeros hackers, como ha cambiado la tecnología y la gran influencia de ellos en el movimiento actual.

Hackers - Wizards of the Electronic Age

Si te gustó, no dudes en compartirlo en redes sociales o dame tu opinión del vídeo.

Deja un comentario