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

如何在Ninja Form邮件中发送WooCommerce购物车详情

Ninja Form发送WooCommerce购物车详情实现方案

扩展插件方案

  • 直接使用Ninja Forms官方推出的WooCommerce集成扩展,内置购物车数据同步能力,配置后可直接在邮件通知模板中插入购物车相关预置占位符,无需代码开发即可完成需求。
  • 支持自定义抓取展示的购物车字段:商品名称、SKU、单价、购买数量、小计、购物车总金额、优惠信息等,可按需调整邮件展示内容。

自定义Hook实现方案(无额外插件依赖)

如果不想使用付费扩展,可借助Ninja Forms提供的ninja_forms_submit_data过滤器钩子自行实现数据注入,操作步骤如下:

  1. 进入目标Ninja Form表单编辑页,新增一个隐藏字段,将字段的key设置为cart_details,保存表单。
  2. 将以下代码添加到站点当前主题的functions.php文件,或自定义代码片段插件中:
add_filter( 'ninja_forms_submit_data', 'inject_wc_cart_to_ninjaform' );
function inject_wc_cart_to_ninjaform( $form_data ) {
    // 替换123为你的目标表单ID
    if ( $form_data['form_id'] != 123 ) {
        return $form_data;
    }
    // 校验WooCommerce已激活
    if ( ! function_exists( 'WC' ) || empty( WC()->cart ) ) {
        return $form_data;
    }
    $cart = WC()->cart;
    $cart_content = "=== 购物车详情 ===\n";
    // 遍历购物车商品拼接内容
    foreach ( $cart->get_cart() as $item ) {
        $product = $item['data'];
        $cart_content .= sprintf(
            "商品名称:%s × %d | 单价:%s | 小计:%s\n",
            $product->get_name(),
            $item['quantity'],
            wc_price( $product->get_price() ),
            wc_price( $item['line_total'] )
        );
    }
    $cart_content .= "购物车总金额:" . wc_price( $cart->get_total() );
    // 写入隐藏字段
    foreach ( $form_data['fields'] as &$field ) {
        if ( $field['key'] === 'cart_details' ) {
            $field['value'] = $cart_content;
        }
    }
    return $form_data;
}
  1. 进入表单的通知邮件设置页,在邮件内容模板中插入刚才创建的cart_details隐藏字段的占位符,保存设置即可。

注意:修改代码前请提前备份站点数据,避免语法错误导致站点异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 23:39:03