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

时间:2021-02-02 13:33:19

标签: php wordpress woocommerce email-notifications payment-method

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

我们已经搜索并尝试更改

  • email-order-details.php
  • email-order-items.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> 

1 个答案:

答案 0 :(得分:2)

使用钩子从 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;
}

代码位于活动子主题(或活动主题)的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> 

它也应该有效。