如何从 WooCommerce 订单确认电子邮件中删除付款方式?

emm*_*bla 6 php wordpress email-notifications woocommerce payment-method

我们已删除客户电子邮件中的付款信息,但无法删除标题。我们该怎么做?我们使用 Woocommerce 电子邮件模板来发送订单确认电子邮件。

我们不断寻找并尝试改变

  • 电子邮件订单详细信息.php
  • 电子邮件订单项目.php
  • 客户保留订单。php(我们的客户使用保留订单作为向客户发送确认电子邮件的默认模板)

我们在电子邮件订单详细信息中尝试了这一点,它根本不起作用。

<tfoot>
    <?php
        if ( $totals = $order->get_order_item_totals() ) {
            $i = 0;
            foreach ( $totals as $total ) {
                $i++;
                if ( $total['label'] != 'Payment Method:' ){
                    ?><tr>
                        <th scope="row" colspan="2" style="text-align:left; border: 1px solid #eee; <?php if ( $i == 1 ) echo 'border-top-width: 4px;'; ?>"><?php echo $total['label']; ?></th>
                        <td style="text-align:left; border: 1px solid #eee; <?php if ( $i == 1 ) echo 'border-top-width: 4px;'; ?>"><?php echo $total['value']; ?></td>
                    </tr><?php
                }
            }
        }
    ?>
</tfoot> 
Run Code Online (Sandbox Code Playgroud)

Loi*_*tec 5

要使用挂钩从 WooCommerce 电子邮件通知中删除付款方式:

add_filter( 'woocommerce_get_order_item_totals', 'remove_paymeny_method_row_from_emails', 10, 3 );
function remove_paymeny_method_row_from_emails( $total_rows, $order, $tax_display ){
    // On Email notifications only
    if ( ! is_wc_endpoint_url() ) {
        unset($total_rows['payment_method']);
    }
    return $total_rows;
}
Run Code Online (Sandbox Code Playgroud)

代码位于活动子主题(或活动主题)的functions.php 文件中。经过测试并有效。


或者重写email-order-details.php模板文件:

<tfoot>
    <?php
        if ( $totals = $order->get_order_item_totals() ) {
            $i = 0;
            foreach ( $totals as $key => $total ) {
                $i++;
                if ( $key !== 'payment_method' ){
                    ?><tr>
                        <th scope="row" colspan="2" style="text-align:left; border: 1px solid #eee; <?php if ( $i == 1 ) echo 'border-top-width: 4px;'; ?>"><?php echo $total['label']; ?></th>
                        <td style="text-align:left; border: 1px solid #eee; <?php if ( $i == 1 ) echo 'border-top-width: 4px;'; ?>"><?php echo $total['value']; ?></td>
                    </tr><?php
                }
            }
        }
    ?>
</tfoot> 
Run Code Online (Sandbox Code Playgroud)

它也应该有效。