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

如何通过Contact Form 7插件在邮件中发送WooCommerce购物车商品

实现WooCommerce快速订单表单+购物车详情邮件推送方案

1. 创建仅含手机号的Contact Form7表单

在WordPress后台「联系我们 → 添加新」页面,创建极简表单,代码如下:

<label> 手机号
    [tel* phone-number id:quick-order-phone]
</label>

[submit "提交快速订单"]

用tel*确保字段必填,ID用于后续样式或逻辑拓展。

2. 编写函数获取并传递购物车详情

在主题的functions.php(或自定义插件)中添加以下代码,实现购物车数据的抓取与邮件追加:

// 生成购物车详情HTML
function get_wc_cart_details() {
    if ( ! WC()->cart->is_empty() ) {
        $cart_html = '<h3>购物车商品明细</h3><ul>';
        foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
            $product = $cart_item['data'];
            $quantity = $cart_item['quantity'];
            $total_price = wc_price( $product->get_price() * $quantity );
            $cart_html .= sprintf( '<li>%s × %s - %s</li>', $product->get_name(), $quantity, $total_price );
        }
        $cart_html .= '</ul><p>订单总计: ' . WC()->cart->get_cart_total() . '</p>';
        return $cart_html;
    } else {
        return '<p>当前购物车为空</p>';
    }
}

// 将购物车详情追加到CF7邮件
add_action( 'wpcf7_before_send_mail', 'add_cart_details_to_cf7_mail' );
function add_cart_details_to_cf7_mail( $contact_form ) {
    $submission = WPCF7_Submission::get_instance();
    if ( $submission ) {
        $cart_details = get_wc_cart_details();
        $mail = $contact_form->prop( 'mail' );
        $mail['body'] .= "\n\n---\n" . $cart_details;
        $contact_form->set_prop( 'mail', $mail );
    }
}

这段代码会在CF7发送邮件前,自动把购物车商品列表、数量、总价拼接到邮件正文末尾。

3. 配置CF7邮件模板

在CF7的「邮件」设置面板中,设置基础邮件内容,比如:

用户提交了快速订单:
手机号: [phone-number]

---
购物车详情如下:

上述函数会自动将购物车内容追加到此处。

4. 将表单嵌入结账页面

两种嵌入方式可选:

  • 短代码嵌入: 在结账页面编辑器中插入CF7生成的短代码,例如[contact-form-7 id="123" title="快速订单表单"](替换为你的表单ID和标题)。
  • 模板嵌入: 若要把表单放到结账页特定位置(如默认结账表单上方),修改主题的checkout.php文件,添加代码:
echo do_shortcode( '[contact-form-7 id="123" title="快速订单表单"]' );

注意:修改主题文件建议使用子主题,避免主题更新丢失修改。

5. 可选:隐藏默认结账表单

如果只需要保留快速订单表单,可通过CSS隐藏默认结账模块:

.woocommerce-checkout .woocommerce-form.checkout {
    display: none;
}

或通过PHP钩子移除:

add_action( 'init', 'remove_default_checkout_elements' );
function remove_default_checkout_elements() {
    remove_action( 'woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20 );
    remove_action( 'woocommerce_checkout_after_customer_details', 'woocommerce_checkout_shipping' );
}

内容的提问来源于stack exchange,提问作者Максим Грабов

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 14:17:09