I am using Woocommerce and try to customize the emails. In the email title I've tried to use {customer_first_name}
and {customer_name}
with no luck. They do not get replaced. Is this a bug or are the strings I use incorrect?
1 Answer
The email template variables can only be used in the body of the emails. If you want to change the email titles/subject lines then you would need to use a the corresponding filter and add some custom code to a child themes functions.php file or via a custom plugin.
The WooCommerce documentation has a snippet for doing this: https://docs.woocommerce.com/document/change-email-subject-lines/
As an example for the processing order you would use:
add_filter( 'woocommerce_email_subject_customer_processing_order', 'change_processing_email_subject', 1, 2 );
function change_processing_email_subject( $subject, $order ) {
global $woocommerce;
$blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
$subject = sprintf( 'Hi %s, thanks for your order on %s', $order->billing_first_name, $blogname );
return $subject;
}
This would change the subject to:
'Hi {customer first name}, thanks for your order on {website name}'