1

I need to change the text (label) "Product" to "Ticket" in WooCommerce Order Item table email notifications.

How would I do this?
Is it possible?

Thanks

LoicTheAztec
  • 229,944
  • 23
  • 356
  • 399
Marko I.
  • 542
  • 10
  • 38

2 Answers2

2

First we need to get the Email ID to target the all email notifications. The only way is to get it before and to set the value in a global variable.

Then in a custom function hooked in Wordpress gettext action hook, we can change (translate) "Product" in all email notifications.

Here is that code:

 ## Tested on WooCommerce 2.6.x and 3.0+

// Setting the email_is as a global variable
add_action('woocommerce_email_before_order_table', 'the_email_id_as_a_global', 1, 4);
function the_email_id_as_a_global($order, $sent_to_admin, $plain_text, $email){
    $GLOBALS['email_id_str'] = $email->id;
}


add_filter('gettext', 'wc_renaming_email_label', 50, 3);
function wc_renaming_email_label( $translated_text, $untranslated_text, $domain ) {

    // Getting the email ID global variable
    $refNameGlobalsVar = $GLOBALS;
    $email_id = $refNameGlobalsVar['email_id_str'];

    if( !is_admin() && $email_id ) {
        if( $untranslated_text == 'Product' )
            $translated_text = __( 'Ticket', $domain );
    }
    return $translated_text;
}

This code goes in function.php file of your active child theme (or theme) or also in any plugin file.

This code is tested on WooCommerce from 2.6.x to 3.0+ and works.

LoicTheAztec
  • 229,944
  • 23
  • 356
  • 399
0

If you don't want to modify the WooCommerce files, use this plugin https://wordpress.org/plugins/woo-custom-emails/

If you want to edit it from the WooCommerce files, then modify the email templates in /wp-content/plugins/woocommerce/templates/emails/

Adi Nugroho
  • 151
  • 1
  • 1
  • 15