WooCommerce envía (siempre que las tengas activadas) una serie de notificaciones por correo electrónico a los clientes y/o al administrador relacionadas con los pedidos y su gestión, a las cuentas de usuario y al estado de inventario de los productos.
En este artículo vamos a ver cómo es posible adjuntar documentos a estos correos electrónicos de WooCommerce, tanto mediante código como utilizando un plugin que nos facilitará la tarea bastante.
Tabla de contenidos
Las notificaciones por email de WooCommerce
Ya sabrás seguramente de lo que hablo, son esos correos electrónicos que envía WooCommerce cuando se producen novedades sobre el estado de los pedidos, los productos (o, mejor dicho, su estado de inventario) y las cuentas de cliente. Por si acaso vamos a repasarlos, porque son más de los que seguramente recuerdas:
Correos electrónicos relacionados con la gestión de los pedidos
Puedes verlos, activarlos o desactivarlos e incluso personalizar el texto en WooCommerce > Ajustes > Correos electrónicos. Estos correos se envían al cliente o al administrador cuando se producen cambios en los estados de los pedidos, y son los siguientes:
- Notificaciones al administrador:
- Nuevo pedido
- Pedido cancelado
- Pedido fallido
- Notificaciones al cliente:
- Pedido a la espera
- Procesando tu pedido
- Pedido completado
- Pedido con reembolso
- Recibo del cliente / Detalles del pedido
- Nota para el cliente
Correos electrónicos relacionados con la cuenta de usuario
Además, hay otras dos notificaciones por correo electrónico que también se pueden configurar en esta sección, y que tienen que ver con la cuenta de usuario del cliente:
- Nueva cuenta
- Restablecer contraseña
Correos electrónicos relacionados con el stock de los productos
Pero estos no son las únicas notificaciones por correo electrónico que envía WooCommerce, ya que además pueden activarse emails al administrador en función del estado de stock de los productos en WooCommerce > Ajustes > Inventario > Notificaciones, y son los siguientes:
- Aviso de pocas existencias
- Aviso de inventario agotado
- Producto reservado (en el caso de que esté activada la posibilidad de reservar productos sin existencias)
Pues bien, podemos adjuntar archivos a todos y cada uno de estos correos electrónicos de forma muy sencilla. Vamos a ver cómo.
Adjuntar archivos a los correos electrónicos de WooCommerce mediante código
En realidad es bastante sencillo adjuntar documentos (o cualquier otro tipo de archivo, como imágenes) a estas notificaciones por email, ya que WooCommerce incluye un filtro específico para ello, el filtro woocommerce_email_attachments.
Este filtro nos permite añadir a un array las URLs de los archivos que queramos adjuntar a un correo electrónico, comprobando previamente (mediante un condicional) que se trata de la notificación que estamos buscando.
En fin, vamos a verlo con un ejemplo porque es más fácil de lo que parece al decirlo con palabras. Pongamos que queremos, por ejemplo, adjuntar el archivo politica-de-devoluciones.pdf a la notificación de pedido completado, cuyo ID es customer_completed_order (más adelante explico cómo saber el ID de cada uno de estos correos). El código sería tan sencillo como:
add_filter( 'woocommerce_email_attachments', function ( $adjuntos, $id_email, $pedido ) { if ( 'customer_completed_order' == $id_email ) $adjuntos[] = 'https://ruta_completa_al_archivo/politica-de-devoluciones.pdf'; return $adjuntos; }, 10, 3 );
Y ya está. Podemos adjuntar tantos archivos como queramos añadiendo más elementos al array, y hacerlo con diferentes correos añadiendo otras condiciones (con else if o, si son varios, mejor con switch). Ya ver que la cosa es súper simple.
¿Estás construyendo tu tienda online o eres implementador WordPress?
¿Necesitas plugins de calidad y con soporte para implementar funcionalidades concretas?
Consigue todos los plugins a la venta en la sección de plugins de esta web y todos los que siga añadiendo. Acceso a los 96 plugins (y subiendo) con soporte directo del desarrollador, actualizaciones y uso ilimitado: úsalos en tantas webs como lo necesites.
Averiguar el ID de un correo electrónico de WooCommerce
Pero para poder acertar con la notificación que queremos (si no incluimos el condicional, el archivo se adjuntará a todos los correos electrónicos enviados por WooCommerce) necesitamos conocer el ID del correo en cuestión.
Es fácil, basta con ir a WooCommerce > Ajustes > Correos electrónicos y entrar en la notificación que estamos buscando. El ID de esa notificación aparecerá al final de la URL, en esta forma:
wp-admin/admin.php?page=wc-settings&tab=email§ion=wc_email_[este_es_el_ID_del_email]
En cuanto a los correos electrónicos sobre el estado de inventario de los productos, los IDs son:
- Producto con pocas existencias: low_stock
- Producto agotado: no_stock
- Reserva de producto: backorder
Adjuntar archivos a las notificaciones de WooCommerce con un plugin
Hacerlo así no sólo es incómodo, sino que si cometes errores en el código los correos electrónicos de WooCommerce dejarán de enviarse. La alternativa es usar un plugin para adjuntar archivos a los correos electrónicos de WooCommerce:
Este plugin te permite adjuntar todos los archivos que quieras a las notificaciones que te dé la gana de una forma simple y cómoda. Además podrás subir directamente los archivos a la biblioteca de medios mediante la interfaz para adjuntarlos.
Te dejo aquí un vídeo para que veas cómo funciona:
Archivos adjuntos a los emails de otros add-ons para WooCommerce
Además, el uso del plugin tiene una ventaja adicional: utiliza las funciones de WooCommerce para recuperar la lista de notificaciones por correo electrónico que están registradas, por lo que permite adjuntar archivos también a las notificaciones por correo electrónico de otros plugins para WooCommerce, como WooCommerce Memberships, WooCommerce Subscriptions, WooCommerce Bookings, Product Vendors y muchos otros.
Nicolas dice
Buenas tardes, lo que yo necesito es adjuntar un pdf manualmente a cada pedido (pdfs diferentes en cada pedido), adjuntarlo y dps de marcar el pedido como «completado» que el pdf se envie adjunto en dicha notificacion al cliente. Habra algun plugin para hacer eso? Muchas gracias
Enrique J. Ros dice
Hola Nicolas
No conozco ningún plugin que permita algo así.
Un saludo
Xavi dice
Hola Nicolas buenas noches, quería saber si encontraste alguna solución, ya que necesito adjuntar ticket de venta o factura en cada pedido una vez este sea completado y cada pedido va con un archivo distinto que se genera de acuerdo al pedido y con los datos del cliente.