In Woocommerce I try to customize the code from this thread to add a custom email as "CC" email address in customer completed order email notification:
/**
* Function adds a BCC header to emails that match our array
*
* @param string $headers The default headers being used
* @param string $object The email type/object that is being processed
*/
function add_cc_to_certain_emails( $headers, $object ) {
// email types/objects to add cc to
$cc_email = get_user_meta( $user_id, 'order_cc_email', true ); // MY CUSTOM CODE
$add_cc_to = array(
'customer_completed_order', // Customer Processing order from WooCommerce
);
// if our email object is in our array
if ( in_array( $object, $add_cc_to ) ) {
// change our headers
$headers = array(
$headers,
// 'Cc: Me <me@example.com>' ."\r\n", // INITIAL CODE
'Cc: '.$cc_email.' <'.$cc_email.'>' ."\r\n", // MY CUSTOM CODE
}
return $headers;
}
add_filter( 'woocommerce_email_headers', 'add_cc_to_certain_emails', 10, 2 );
I can't find the way to get custom user email from user meta data, and so my code doesn't work as expected.
How to get the custom user email from user meta data?
How to add this email (with the customer full name) as "CC" in email header?
There is some missing arguments in your hooked function, as
woocommerce_email_headers
filter hook allow 3 arguments:$header
===> the header data to be return in this filter$email_id
==> the currentWC_Email
ID (but not the$object
…)$order
====> the instance of theWC_Order
object (the missing useful one)Try this revisited code instead:
Code goes in function.php file of your active child theme (or active theme). Tested and work.
Related threads:
I have modified the above code to include a second CC email address which is working for all notifications including a couple of custom emails I have set up, so thanks for the original code!
I do have a couple of questions, why is the below var declared as
and not, in the if statement
Also, would it also be possible to make this into an array of email IDs to apply the cc addresses to?
As in as array like this (found here)
I have tried to incorporate these ideas into the existing code, but failing to get it to work.