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

如何仅在订单状态为processing或partially_paid时发送WooCommerce新订单邮件

解决WooCommerce新增partially_paid状态触发管理员新订单邮件的问题

直接用下面的代码替换你之前的尝试,放到主题的functions.php文件或者自定义功能插件里:

// 移除默认的仅processing状态触发新订单邮件的动作
remove_action( 'woocommerce_order_status_processing_notification', array( WC()->mailer()->get_emails()['WC_Email_New_Order'], 'trigger' ) );

// 添加自定义触发逻辑:processing和partially_paid状态都触发邮件
add_action( 'woocommerce_order_status_processing', 'trigger_admin_new_order_email_on_selected_statuses', 10, 1 );
add_action( 'woocommerce_order_status_partially_paid', 'trigger_admin_new_order_email_on_selected_statuses', 10, 1 );

function trigger_admin_new_order_email_on_selected_statuses( $order_id ) {
    // 获取新订单邮件实例
    $new_order_email = WC()->mailer()->get_emails()['WC_Email_New_Order'];
    
    // 触发邮件发送
    if ( $new_order_email ) {
        $new_order_email->trigger( $order_id );
    }
}

注意事项:

  • 确认存款插件的订单状态钩子名称是否为woocommerce_order_status_partially_paid,部分插件可能用woocommerce_order_status_partially-paid(横杠代替下划线),如果代码无效,尝试替换钩子名称
  • 代码添加后,测试修改订单状态为processing或partially_paid,检查管理员邮箱是否收到邮件
  • 不要直接修改核心文件,避免主题/插件更新后代码丢失

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 04:00:37