Style orders details table in Woocommerce email notifications

11,562

Solution 1

This can be done Overriding the following WooCommerce Templates via a Theme:

1.Template email/email-order-details.php

  • Where you will remove the block at line 38:
<th class="td" scope="col" style="text-align:<?php echo $text_align; ?>;"><?php _e( 'Price', 'woocommerce' ); ?></th>
  • And here also, all this blocks at line 50 to 63 (to remove):
<tfoot>
    <?php
        if ( $totals = $order->get_order_item_totals() ) {
            $i = 0;
            foreach ( $totals as $total ) {
                $i++;
                ?><tr>
                    <th class="td" scope="row" colspan="2" style="text-align:<?php echo $text_align; ?>; <?php echo ( 1 === $i ) ? 'border-top-width: 4px;' : ''; ?>"><?php echo $total['label']; ?></th>
                    <td class="td" style="text-align:<?php echo $text_align; ?>; <?php echo ( 1 === $i ) ? 'border-top-width: 4px;' : ''; ?>"><?php echo $total['value']; ?></td>
                </tr><?php
            }
        }
    ?>
</tfoot>

2.Template emails/email-order-items.php.

  • Where you will remove this block at line 59:
<td class="td" style="text-align:<?php echo $text_align; ?>; vertical-align:middle; border: 1px solid #eee; font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;"><?php echo $order->get_formatted_line_subtotal( $item ); ?></td>

So you will get this:

enter image description here

Solution 2

You have two files to copy, email-order-details.php and email-order-items.php. These two files contains what you want to be removed. email-order-details.php has the <th> tag or the header of the table. And email-order-items.php has the <td> tags. Please check these files out.

Share:
11,562
Shilpi Jaiswal
Author by

Shilpi Jaiswal

Having 6 years of experience working in front-end and back-end technologies like Angular, HTML, CSS, Javascript, PHP , Jquery, Angular JS, Mysql . Exposure on various web applications as well IOS and android apps.

Updated on June 12, 2022

Comments

  • Shilpi Jaiswal
    Shilpi Jaiswal almost 2 years

    I am using WordPress 4.8.1 and using bridge theme.
    I am facing some problem regarding removing price from new order template email.
    I want to remove price column ,however I removed total and subtotal , but not getting anything to remove price column with products as going through files.

    I have found this is coming from this code:

     <?php 
        echo wc_get_email_order_items( $order, array(
                    'show_sku'      => $sent_to_admin,
                    'show_image'    => false,
                    'image_size'    => array( 32, 32 ),
                    'plain_text'    => $plain_text,
                    'sent_to_admin' => $sent_to_admin,
                ) ); ?>
    

    In email-order-details.php template which I have copied to my child theme from woocommerce template folder.

    But , how to customise this hook 'wc_get_email_order_items' or any other way to remove price?

    This is what I have now:

    enter image description here

    Any help will be appreciated as I have spent so much hours finding solution for same.