I want the admin to receive on hold order notification as well in WooCommerce. Right now, only customers get that notification.
I have tried the fol
The correct $email_id
for "on-hold" order status email notification is 'customer_on-hold_order'
.
So your code is going to be:
add_filter( 'woocommerce_email_headers', 'custom_admin_email_notification', 10, 3);
function custom_admin_email_notification( $headers, $email_id, $order ) {
if( 'customer_on-hold_order' == $email_id ){
// Set HERE the Admin email
$headers .= 'Bcc: My name <my@email.com>\r\n';
}
return $headers;
}
Code goes in function.php file of your active child theme (or theme) or also in any plugin file.
Code is tested and works.
Similar answers: How to get order ID in woocommerce_email_headers hook
It has been 3 years and the WooCommerce states seem to have changed. I tried using the new states customer_on-hold_order
=> pending_to_on-hold
or woocommerce_order_status_pending_to_on-hold
, but no emails came and the headers were not changed. so I resulted in just using single words for the check:
// Send on-hold order status email notification to admin
add_filter( 'woocommerce_email_headers', 'custom_admin_email_notification', 10, 3);
function custom_admin_email_notification( $headers, $email_id, $order ) {
if( strpos($email_id,'hold') > 0 ){
$headers .= 'Bcc: Admin User <admin@example.com>'. "\r\n";
}
return $headers;
}
I thank you @LoicTheAztec, however for pointing me in the right direction.