I tried to edit the header and footer of emails of my store, but I’m only able to edit if it goes directly to the template of ALL emails.
I also tried to copy the email-header.php and email-footer.php to my child theme and nothing happens.
Since that the template customer-on-holder-order have listed the code
/* * @hooked WC_Emails::email_header() Output the email header */ do_action( 'woocommerce_email_header', $email_heading, $email ); ?> ... /* * @hooked WC_Emails::email_footer() Output the email footer */ do_action( 'woocommerce_email_footer', $email );
How can I find/edit this? Any advice?
Advertisement
Answer
It is correct that the woocommerce_email_header
and the woocommerce_email_footer
action hook occur in multiple template files.
However, to target a specific email you can use $email->id
, since $email
is passed to both hooks as an argument
So you get:
// Header function action_woocommerce_email_header( $email_heading, $email ) { // Target if ( $email->id == 'customer_on_hold_order' ) { echo 'customer on hold order header'; } } add_action( 'woocommerce_email_header', 'action_woocommerce_email_header', 10, 2 ); // Footer function action_woocommerce_email_footer( $email ) { // Target if ( $email->id == 'customer_on_hold_order' ) { echo 'customer on hold order footer'; } } add_action( 'woocommerce_email_footer', 'action_woocommerce_email_footer', 10, 1 );
Code goes in functions.php
file of the active child theme (or active theme). Tested and works in WordPress 5.8.1 & WooCommerce 5.8.0