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

如何禁用虚拟及可下载产品的订单已收到邮件,仅发完成邮件

解决WooCommerce虚拟/可下载订单重复发送邮件问题

你的代码会在用户完成结账后自动将全虚拟/可下载产品的订单标记为已完成,但WooCommerce默认会在订单创建时发送「订单已收到」邮件,之后订单状态改为完成时又发送「订单完成」邮件,导致用户收到两封邮件。

可以通过添加邮件过滤器,针对全虚拟/可下载订单禁用「订单已收到」邮件的发送:

// 禁用全虚拟/可下载订单的"订单已收到"邮件
add_filter( 'woocommerce_email_enabled_new_order', 'disable_new_order_email_for_virtual_downloadable', 10, 2 );
function disable_new_order_email_for_virtual_downloadable( $enabled, $order ) {
    if ( ! $order ) return $enabled;

    $only_virtual_downloadable = true;

    foreach ( $order->get_items() as $item ) {
        $product = wc_get_product( $item->get_product_id() );
        if ( ! $product->is_virtual() && ! $product->is_downloadable() ) {
            $only_virtual_downloadable = false;
            break;
        }
    }

    // 仅当订单全为虚拟/可下载产品时,禁用"订单已收到"邮件
    if ( $only_virtual_downloadable ) {
        $enabled = false;
    }

    return $enabled;
}

将这段代码添加到你的主题functions.php文件或自定义插件中,与你现有的自动完成订单代码配合使用即可。这样符合条件的订单只会发送「订单完成」邮件,不会触发「订单已收到」邮件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 12:15:31