// Hook Into Order Status Change add_action( 'woocommerce_order_status_changed', function( $order_id, $status_from, $status_to ) { // Only For Change To This Status if( $status_to != 'TARGET-ORDER-STATUS' ) { return; } // Get Woo Emails $mailer = WC()->mailer(); $mails = $mailer->get_emails(); if( empty( $mails ) ) { return; } foreach( $mails as $mail ) { // Get Completed Email if( $mail->id != 'customer_completed_order' ) { continue; } // Replace Subject Line add_filter( 'woocommerce_email_subject_customer_completed_order', function( $subject ) { return 'NEW SUBJECT LINE GOES HERE'; } ); // Replace Heading remove_action( 'woocommerce_email_header', array( WC()->mailer(), 'email_header' ) ); add_action( 'woocommerce_email_header', function( $email_heading, $email ) { if( $email->id == 'customer_completed_order' ) { $email_heading = 'NEW EMAIL HEADING GOES HERE'; } wc_get_template( 'emails/email-header.php', [ 'email_heading' => $email_heading ] ); }, 10, 2 ); // Replace Content add_filter( 'gettext', function( $original ) { switch( $text ) { case 'We have finished processing your order.': return 'NEW BODY CONTENT GOES HERE'; } return $original; } ); // Send It $mail->trigger( $order_id ); } // End Emails Loop }, 10, 3 );

Hook transactional email into custom order status
Sends a modified Order Completed email when order status changes to a specific status.