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

如何在用户使用指定优惠券完成订单时发送订单详情邮件?

在WooCommerce中针对使用特定优惠券的订单发送专属订单详情邮件

实现思路

利用WooCommerce的订单完成钩子触发检查逻辑,判断订单是否使用了指定优惠券,满足条件则发送包含订单详情的自定义邮件。

具体代码实现

将以下代码添加到主题functions.php文件或自定义插件中:

// 监听订单完成状态事件
add_action('woocommerce_order_status_completed', 'send_email_for_target_coupon_order', 10, 1);

function send_email_for_target_coupon_order($order_id) {
    // 替换为你需要监控的优惠券代码
    $target_coupon = 'YOUR_TARGET_COUPON_CODE';
    
    // 获取订单对象
    $order = wc_get_order($order_id);
    if (!$order) return;
    
    // 检查订单是否使用了目标优惠券
    $used_coupons = $order->get_used_coupons();
    if (!in_array($target_coupon, $used_coupons)) return;
    
    // 配置邮件参数
    $recipient = $order->get_billing_email();
    $subject = '你的订单详情(已使用优惠券:' . $target_coupon . ')';
    
    // 构建邮件内容
    $email_body = '<h2>订单信息</h2>';
    $email_body .= '<p>订单编号:' . $order->get_order_number() . '</p>';
    $email_body .= '<p>下单时间:' . wc_format_datetime($order->get_date_created()) . '</p>';
    $email_body .= '<h3>商品清单</h3>';
    $email_body .= '<ul>';
    foreach ($order->get_items() as $item) {
        $product = $item->get_product();
        $email_body .= '<li>' . $item->get_name() . ' × ' . $item->get_quantity() . ' 单价:' . wc_price($item->get_subtotal()) . '</li>';
    }
    $email_body .= '</ul>';
    $email_body .= '<p>订单总价:' . wc_price($order->get_total()) . '</p>';
    $email_body .= '<p>感谢你的支持,如有问题请联系客服!</p>';
    
    // 发送邮件
    wc_mail($recipient, $subject, $email_body);
}

代码说明

  • 钩子触发时机:woocommerce_order_status_completed钩子确保订单已成功完成后才执行邮件发送逻辑
  • 优惠券校验:通过get_used_coupons()获取订单使用的优惠券列表,精准匹配目标优惠券
  • 内容自定义:可根据需求修改邮件主题和内容,比如添加收货地址、支付方式等额外信息
  • 代码安全性:建议使用自定义插件存放代码,避免主题更新导致代码丢失

注意事项

  • 替换代码中的YOUR_TARGET_COUPON_CODE为实际需要监控的优惠券代码
  • 测试时可手动将订单状态改为「已完成」验证邮件发送效果
  • 确保服务器支持PHP邮件发送功能,若发送失败可检查服务器邮件日志排查问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 04:55:24