Posted on

Show the product thumbnail in WooCommerce emails

As an admin and customer, you receive some emails from WooCommerce, when the order is created, processing, completed, etc.

From WooCommerce 2.5 there’s also an email sent to the admin when an order status changes to Failed.

Those emails all include a table with the order items purchased. They include by default the product name, the price and the quantity of each item.

If you want you can also include the product thumbnail, but how?

You need to override the default template email-order-details.php and change some code in it.

Start by going to wp-content/plugins/woocommerce/templates/emails/ via FTP and copy the file email-order-details.php.
Then save the copy of this file in wp-content/themes/your-child-theme-name/woocommerce/emails/.

Once saved, open the file and find this code:

As you probably noticed already, the second item in the array is a boolean value that indicates if the product image should show or not.
Change it from 'show_image' => false, to 'show_image' => true,.

That’s it. Now your emails (for the admin and for the customer) will include the product thumbnail, like in the example below:

Order items table with product thumbnail

You can further customize the email style with some custom CSS.

6 thoughts on “Show the product thumbnail in WooCommerce emails

  1. Thank you for explaining this clearly. I was under the impression that overriding the WC templates was not the ideal way. Using hooks was the preferred way.

    When the WC files get upgraded, these overridden files show up as being outdated. Any thoughts?

    1. Hi Amit,
      you are right. The preferred way is by using hooks, but it’s not always possible. In this case you can’t use hooks, so overriding the template is the second best option.

      When the WC files get upgraded, these overridden files show up as being outdated. Any thoughts?

      You will need to apply your changes to the updated template again.

  2. What if you would like to hide the price?

    1. HI Daniel,
      To do that you need to override and edit the templates in your theme and remove the price directly from the code.

      You can learn how to override templates here.

  3. Thanks Nicola Mustone;

    I see only one details, I had to change the ‘$image_size’ to ‘image_size’;
    email_order_items_table( array(
    ‘show_sku’ => $sent_to_admin,
    ‘show_image’ => false,
    ‘$image_size’ => array( 32, 32 ), // change to ‘image_size’
    ‘plain_text’ => $plain_text,
    ‘sent_to_admin’ => $sent_to_admin
    ) ); ?>

    Jose Carlos Ramos Carmenates

    1. Hi Jose,
      You’re right! I Fixed that, thanks!

Leave a Reply

Your email address will not be published. Required fields are marked *