Style orders details table in Woocommerce email no

2020-02-08 21:47发布

问题:

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:

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

回答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:



回答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.