Search code examples
phpwordpresswoocommerceordersemail-notifications

Send on-hold order status email notification to admin


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 following codes but it doesn't seem to work.

Here is my code:

add_filter( 'woocommerce_email_headers', 'mycustom_headers_filter_function', 10, 2);
function mycustom_headers_filter_function( $headers, $object ) {
    if ($object == 'customer_on_hold_order') {
        $headers .= 'BCC: My name <my@email.com>' . "\r\n";
    }
    return $headers;
}

What should be the correct filter/hook to use?

Thanks


Solution

  • 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