You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅移除WooCommerce客户完成订单邮件中的订单详情表

如何仅移除WooCommerce客户完成订单邮件中的订单详情表

你的原有代码确实能移除订单详情表,但因为没加条件判断,所以会影响所有类型的邮件(包括管理员收件的)。要实现只针对客户的完成订单邮件做移除,只需要在函数里增加两个关键判断即可:

function so_39251827_remove_order_details( $order, $sent_to_admin, $plain_text, $email ){
    // 仅在非管理员收件、且是客户完成订单邮件时执行移除
    if ( !$sent_to_admin && $email->id === 'customer_completed_order' ) {
        $mailer = WC()->mailer();
        remove_action( 'woocommerce_email_order_details', array( $mailer, 'order_details' ), 10, 4 );
    }
}
add_action('woocommerce_email_order_details','so_39251827_remove_order_details', 5, 4 );

代码说明:

  • !$sent_to_admin:这个条件确保我们只处理发给客户的邮件,不会影响管理员收到的订单邮件
  • $email->id === 'customer_completed_order':精准锁定「客户完成订单」这个特定邮件模板,避免误删其他客户邮件(比如订单确认、处理中邮件)里的订单详情表

这样修改后,管理员收到的完成订单邮件依然会保留订单详情表,只有客户收到的对应邮件会移除该表格。

内容的提问来源于stack exchange,提问作者Xwebyna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:30:19