The `wc_order_email` class or function doesn't exist in WooCommerce, so I have updated your question.
What you are looking at is `$email` variable argument *(the [**`WC_Email`**][1] current type object)*. It's mostly defined everywhere in templates and hooks.
To get the usable current Email ID as a variable you will simply use `$email_id = $email->id`…
To get the current Email ID of your custom emails, you should use this code *(just for **testing**)*:
add_action( 'woocommerce_email_order_details', 'get_the_wc_email_id', 9, 4 );
function get_the_wc_email_id( $order, $sent_to_admin, $plain_text, $email ) {
// Will output the email id for the current notification
echo '<pre>'; print_r($email->id); echo '</pre>';
}
*Code goes in function.php file of your active child theme (or theme) or also in any plugin file.*
You will get the following:
- `new_order`
- `customer_on_hold_order`
- `customer_processing_order`
- `customer_completed_order`
- `customer_refunded_order`
- `customer_partially_refunded_order`
- `cancelled_order`
- `failed_order`
- `customer_reset_password`
- `customer_invoice`
- `customer_new_account`
- `customer_note`
Once you get the **correct email ID slug** for your custom email notification you can use it on any following hook *(instead of overriding email templates)*:
• `woocommerce_email_header` *(2 arguments: `$email_heading`, `$email`)*<br>
• `woocommerce_email_order_details` *(4 arguments: `$order`, `$sent_to_admin`, `$plain_text`, `$email`)*<br>
• `woocommerce_email_order_meta` *(4 arguments: `$order`, `$sent_to_admin`, `$plain_text`, `$email`)*<br>
• `woocommerce_email_customer_details` *(4 arguments: `$order`, `$sent_to_admin`, `$plain_text`, `$email`)*<br>
• `woocommerce_email_footer` *(1 argument: `$email`)*<br>
HERE an **example of code** where I target "New order" email notifications only:
add_action( 'woocommerce_email_order_details', 'add_custom_text_to_new_order_email', 10, 4 );
function add_custom_text_to_new_order_email( $order, $sent_to_admin, $plain_text, $email ) {
// Only for "New Order" email notifications (to be replaced by yours)
if( ! ( 'new_order' == $email->id ) ) return;
// Display a custom text (for example)
echo '<p>'.__('My custom text').'</p>';
}
*Code goes in function.php file of your active child theme (or theme) or also in any plugin file.*
Tested and works.
[1]:
[To see links please register here]