在WooCommerce中,我试图从电子邮件通知的订单表中删除发货行。
brjng4g31#
Overriding woocommerce templates via the theme,删除电子邮件通知中的发货行可以很容易地完成,添加一些代码到emails/email-order-details.php模板。下面是从**line 51**开始的摘录。因此,您将用以下代码替换html开始<tfoot>标记和结束</tfoot>标记之间的所有代码:
emails/email-order-details.php
line 51
<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>
这是经过测试的,可以正常工作。所以你会得到类似 (没有发货行):
7kqas0il2#
在@LoicTheAztec上扩展并更新至2022年:用下面的代码替换“email-order-details.php”WooCommerce模板中的<tfoot>。1.向foreach循环添加一个键名key_total1.添加条件以忽略打印key_total === 'shipping'时的行
key_total
key_total === 'shipping'
<tfoot> <?php $item_totals = $order->get_order_item_totals(); if ( $item_totals ) { $i = 0; // Add "$key_total" to be able to grab the key name foreach ( $item_totals as $key_total => $total ) { $i++; // Add conditional to only print row if row key is not "shipping" if( $key_total !== 'shipping' ): ?> <tr> <th class="td" scope="row" colspan="2" style="text-align:<?php echo esc_attr( $text_align ); ?>; <?php echo ( 1 === $i ) ? 'border-top-width: 4px;' : ''; ?>"><?php echo wp_kses_post( $total['label'] ); ?></th> <td class="td" style="text-align:<?php echo esc_attr( $text_align ); ?>; <?php echo ( 1 === $i ) ? 'border-top-width: 4px;' : ''; ?>"><?php echo wp_kses_post( $total['value'] ); ?></td> </tr> <?php endif; } } if ( $order->get_customer_note() ) { ?> <tr> <th class="td" scope="row" colspan="2" style="text-align:<?php echo esc_attr( $text_align ); ?>;"><?php esc_html_e( 'Note:', 'woocommerce' ); ?></th> <td class="td" style="text-align:<?php echo esc_attr( $text_align ); ?>;"><?php echo wp_kses_post( nl2br( wptexturize( $order->get_customer_note() ) ) ); ?></td> </tr> <?php } ?> </tfoot>
我们可以看到一个键名称在OrderDetails对象中布局的示例。
2条答案
按热度按时间brjng4g31#
Overriding woocommerce templates via the theme,删除电子邮件通知中的发货行可以很容易地完成,添加一些代码到
emails/email-order-details.php
模板。下面是从**
line 51
**开始的摘录。因此,您将用以下代码替换html开始<tfoot>
标记和结束</tfoot>
标记之间的所有代码:这是经过测试的,可以正常工作。所以你会得到类似 (没有发货行):
7kqas0il2#
在@LoicTheAztec上扩展并更新至2022年:
用下面的代码替换“email-order-details.php”WooCommerce模板中的
<tfoot>
。1.向foreach循环添加一个键名
key_total
1.添加条件以忽略打印
key_total === 'shipping'
时的行我们可以看到一个键名称在OrderDetails对象中布局的示例。