I would like to ask for some help / advice. Currently, we use the admin new order email as a picking list that gets printed off, but we now have an average of 3 variations per product and the printed name is now getting rather long, as per the format below.

what I would like to ask help for is to determine which hooks control the naming so I can remove all the variant elements, (leaving standard name and sku) and to then apply it to the admin email only.

My initial thought is to do something like the below, but I cannot see how i can determine if it is an admin email or not as I don't have access to $email..

Any help is appreciated.

function variation_title_not_include_attributes( $boolean ){ 

if (  is_email() )  {
$boolean = false; 
return $boolean; 
return true;
Current Sample output:

Test product (Test SKU)
•   Variant 1: 
Variant 1 Option
•   Variant 2: 
Variant 2 Option
•   Variant 3: 
Variant 3 Option

One approach would be to override woocommerce/templates/emails/email-order-items.php (and possibly the version for plain-text emails) with your own version. It has access to $sent_to_admin, so you could replace its call to echo wp_kses_post( apply_filters( 'woocommerce_order_item_name', $item->get_name(), $item, false ) ); with your own.

  • Thanks that has helped me get further on. It was the wc_display_item_meta(...) section that needed commenting out, and then in the bit above to replace $item->get_name() with $product->get_formatted_name() as for some reason $item->get_name() is ignoring my filter add_filter( 'woocommerce_product_variation_title_include_attributes', '__return_true' ); – Steve Jul 12 '19 at 11:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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