从 Woocommerce 电子邮件通知中的订单 table 中删除发货行

Remove the shipping row from the order table in Woocommerce email notifications

在 WooCommerce 中,我试图从电子邮件通知中的订单 table 中删除发货行。

我搜索了很多但没有找到方法。

任何帮助将不胜感激。

Overriding woocommerce templates via the theme,只需向 emails/email-order-details.php 模板添加少量代码即可轻松删除电子邮件通知中的发货行。

这是从 line 51 开始的摘录。因此,您将用以下代码替换 html 打开 <tfoot> 标签和关闭 </tfoot> 标签之间的所有代码:

        <tfoot>
            <?php
                if ( $totals = $order->get_order_item_totals() ) {
                    $i = 0;
                    foreach ( $totals as $key_total => $total ) {
                        $i++;
                        if( $key_total != 'shipping' ):
                        ?><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
                        endif;
                    }
                }
                if ( $order->get_customer_note() ) {
                    ?><tr>
                        <th class="td" scope="row" colspan="2" style="text-align:<?php echo $text_align; ?>;"><?php _e( 'Note:', 'woocommerce' ); ?></th>
                        <td class="td" style="text-align:<?php echo $text_align; ?>;"><?php echo wptexturize( $order->get_customer_note() ); ?></td>
                    </tr><?php
                }
            ?>
        </tfoot>

这已经过测试并且有效。所以你会得到类似 (没有运输行):