Enviar correo a cli...
 
Avisos
Vaciar todo

Enviar correo a clientes cuando el pedido se cancela o falla

1 Respuestas
1 Usuarios
0 Me gustas
198 Visitas
Respuestas: 20
Admin
Topic starter
(@iguannaweb)
Miembro
Registrado: hace 3 años

No sé si te habrás dado cuenta pero en los pedidos cancelados de woocommerce el correo al que se envía notificación normalmente es el administrador, que se configura en ajustes > correos.

Pero si quieres notificar al usuario (o modificarlo para otra cosa) toca de tirar de código. Normalmente te dicen que lo pongas en el functions.php, aunque siempre es mejor en forma de plugin.

add_action('woocommerce_order_status_changed', 'send_custom_email_notifications', 10, 4 );
function send_custom_email_notifications( $order_id, $old_status, $new_status, $order ){
if ( $new_status == 'cancelled' || $new_status == 'failed' ){
$wc_emails = WC()->mailer()->get_emails(); // Get all WC_emails objects instances
$customer_email = $order->get_billing_email(); // The customer email
}

if ( $new_status == 'cancelled' ) {
// change the recipient of this instance
$wc_emails['WC_Email_Cancelled_Order']->recipient = $customer_email;
// Sending the email from this instance
$wc_emails['WC_Email_Cancelled_Order']->trigger( $order_id );
}
elseif ( $new_status == 'failed' ) {
// change the recipient of this instance
$wc_emails['WC_Email_Failed_Order']->recipient = $customer_email;
// Sending the email from this instance
$wc_emails['WC_Email_Failed_Order']->trigger( $order_id );
}
}

Y también puedes mantener el que tengas en configuración si cambias esto:

// Add a recipient in this instance
$wc_emails['WC_Email_Failed_Order']->recipient .= ',' . $customer_email;