Añadir un archivo adjunto en los mails de WooCommerce

Si necesitas añadir un archivo adjunto en los mails de WooCommerce, bien porque quieras incluir un pdf sobre condiciones de compra, devoluciones o similar, puedes hacerlo sin necesidad de usar ningún plugin con este snippet en el functions.php de tu child theme

add_filter( 'woocommerce_email_attachments', 'mbcreation_woocommerce_attachments', 10, 3 );
function mbcreation_woocommerce_attachments($attachments, $email_id, $email_object){
	if( $email_id === 'customer_on_hold_order'){
		$attachments[] = get_attached_file( 612 );
	}
	return $attachments;
}

Para adjuntar el archivo súbelo a la biblioteca e introduce el id correspondiente ‘get_attached_file( 612 );’

En el ejemplo el adjunto se añade en el mail cuando el pedido está en espera ‘customer_on_hold_order’ puedes cambiarlo e incluirlo en otros estados como procesando ‘customer_processing_order’ o completado ‘customer_completed_order’

En esta lista puedes ver todos los ids de los mails de WooCommerce

  • cancelled_order
  • customer_completed_order
  • customer_invoice
  • customer_new_account
  • customer_note
  • customer_on_hold_order
  • customer_processing_order
  • customer_reset_password
  • failed_order
  • new_order

Fuente: http://www.mbcreation.com/adding-email-attachments-in-woocommerce/

6 comentarios en “Añadir un archivo adjunto en los mails de WooCommerce”

  1. Sergio Carrasquer

    Hola he puesto ese código me dice si me da error y no sé cómo hacer nada de nada de esto.
    Qué es lo que tengo que sustituir.
    Mi documento PDF está en la biblioteca y tiene un nombre determinado, eso si, pero no tengo ni idea que es ese file 612

      1. Sergio Carrasquer

        Hola, aver si lo entiendo.

        Debo colocar la dirección del archivo que tengo en la biblioteca.

        Dicho archivo tiene esta dirección:

        http://miweb.com/wp-admin/post.php?post=7704&action=edit

        Entonces donde coloco esa dirección? En que lugar exacto? Sustituyo literalmente el 612 que está entre paréntesis por esta dirección?

        Gracias
        —————–

        add_filter( ‘woocommerce_email_attachments’, ‘mbcreation_woocommerce_attachments’, 10, 3 );

        function mbcreation_woocommerce_attachments($attachments, $email_id, $email_object){

        if( $email_id === ‘customer_on_hold_order’){

        $attachments[] = get_attached_file( 612 );

        }

Deja un comentario