¿Cómo activar el correo electrónico de pedido completado de WooCommerce?

18 abr 2015, 22:09:23
Vistas: 28.3K
Votos: 12

Quiero poder activar el correo electrónico de pedido completado de WooCommerce en una etapa diferente del proceso de pago. Así que he desactivado el correo electrónico de pedido completado de WooCommerce desde el backend y ahora estoy buscando una línea de código que active el correo electrónico en el punto que yo desee. He investigado un poco y he encontrado cómo eliminar el correo electrónico de pedido completado, pero no cómo activarlo manualmente. ¿Algún consejo?

¡Gracias!

0
Todas las respuestas a la pregunta 3
1
18

Puedes probar esto

$mailer = WC()->mailer();
$mails = $mailer->get_emails();
if ( ! empty( $mails ) ) {
    foreach ( $mails as $mail ) {
        if ( $mail->id == 'customer_completed_order' ) {
           $mail->trigger( $order->id );
        }
     }
}
19 abr 2015 00:06:39
Comentarios

Gracias. ¿Hay alguna manera de asegurarse de que alguien no abuse de esto? Es decir, si coloco eso en un lugar específico de la página de agradecimiento, ¿hay alguna forma de evitar que se envíe un correo electrónico cada vez que una persona actualice la página?

user3210369 user3210369
20 abr 2015 06:51:16
2

En lugar de hacer un bucle o reutilizar el mismo objeto como sugiere @Sumit. Puedes inicializar un nuevo objeto y luego llamar al trigger.

$email_oc = new WC_Email_Customer_Completed_Order();
$email_oc->trigger($order_id);
20 sept 2018 06:50:53
Comentarios

Si esta es una clase de pedido predeterminada de WP, entonces sí... si es personalizada, se agregará usando el filtro woocommerce_email_classes, por lo que la clase de correo personalizada podría no estar disponible al solicitarla.

Ramon Fincken Ramon Fincken
14 may 2021 16:25:38

@RamonFincken esto está en el núcleo de WooCommerce

GeorgeP GeorgeP
9 feb 2024 02:45:14
0

También se puede utilizar de la siguiente manera;

WC()->mailer()->emails['WC_Email_Customer_Completed_Order']->trigger( $order_id );
11 jul 2021 14:38:41