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

WooCommerce:购物车含指定商品时仅向管理员发送通知邮件

实现特定商品下单时仅通知管理员的代码片段

针对你需求的场景,以下是基于WooCommerce的代码实现方案(假设你使用的是WooCommerce电商系统):

核心逻辑

通过挂钩WooCommerce的客户订单邮件收件人过滤钩子,检查订单中是否包含指定ID的商品。如果存在,则清空客户邮件的收件人,仅保留管理员的订单通知。

代码片段

// 定义需要特殊处理的商品ID
$target_product_id = 123; // 替换为你的目标商品ID

// 过滤客户订单邮件收件人
add_filter('woocommerce_email_recipient_customer_on_hold_order', 'disable_customer_email_for_specific_product', 10, 2);
add_filter('woocommerce_email_recipient_customer_completed_order', 'disable_customer_email_for_specific_product', 10, 2);
add_filter('woocommerce_email_recipient_customer_processing_order', 'disable_customer_email_for_specific_product', 10, 2);

function disable_customer_email_for_specific_product($recipient, $order) {
    global $target_product_id;

    // 如果订单对象不存在,返回原收件人
    if (!is_a($order, 'WC_Order')) {
        return $recipient;
    }

    // 遍历订单中的所有商品
    foreach ($order->get_items() as $item) {
        $product_id = $item->get_product_id();
        // 检查是否包含目标商品ID
        if ($product_id == $target_product_id) {
            // 清空收件人,不向客户发送邮件
            return '';
        }
    }

    // 没有目标商品,返回原收件人
    return $recipient;
}

使用说明

  1. 将代码中的123替换为你需要特殊处理的商品ID
  2. 将代码添加到你的WordPress主题的functions.php文件中,或者自定义插件里
  3. 测试下单流程:当购物车包含目标商品时,客户不会收到订单通知邮件,管理员仍会正常收到新订单通知

注意事项

  • 该代码仅针对WooCommerce默认的客户订单邮件(待付款、处理中、已完成),如果有自定义的客户邮件模板,需要额外添加对应的过滤钩子
  • 修改主题文件前建议先备份,避免操作失误导致网站异常

内容的提问来源于stack exchange,提问作者20.miles

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 16:05:21