I am using this hook woocommerce_email_subject_customer_procesing_order to change email subject but it is not working. I have tried other hooks to update subject for order completion woocommerce_email_subject_customer_completed_order or on hold woocommerce_email_subject_customer_on_hold_order and these hooks are working fine. Can anybody guide me about this issue. I do not have a lot of woo commerce experience and need some help to fix this issue. Here is my code

add_filter('woocommerce_email_subject_customer_procesing_order', 'change_admin_email_subjects', 999, 2 );
  function change_admin_email_subjects( $subject, $order ) {
  global $woocommerce;
  $subject = 'Your Job Posting Receipt';
  return $subject;
}

I know we can change subject via woo commerce settings but I have some conditions for this update so that is why I am trying to do this using woo commerce hook.

  • try this add_filter(' woocommerce_email_subject_customer_processing_order', 'change_admin_email_subject', 1, 2); function change_admin_email_subject( $subject, $order ) { global $woocommerce; $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES); $subject = sprintf( '[%s] New Customer Order (# %s) from Name %s %s', $blogname, $order->id, $order->billing_first_name, $order->billing_last_name ); return $subject; } – vikrant zilpe Dec 4 at 12:25
up vote 1 down vote accepted

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;
}
  • Thank you for your help. I was using same hook but was missing one 's' from processing and that is why it was not working and I copied this from this page. stackoverflow.com/questions/51214789/… – wpdd Dec 4 at 16:38

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.