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

如何将Contact Form 7多选框值以数组形式传入Google Tag Manager数据层

解决Contact Form 7多选框值在GTM数据层中合并为数组的问题

你可以通过处理event.detail.inputs字段,将同名称的多选框值合并为数组,修改后的代码如下:

document.addEventListener( 'wpcf7mailsent', function( event ) {
    // 临时存储字段值,键为清理后的字段名,值为对应值的数组
    const fieldMap = {};
    
    event.detail.inputs.forEach(field => {
        // 移除多选框名称末尾的[],统一键名
        const cleanName = field.name.replace(/\[]$/, '');
        
        if (fieldMap[cleanName]) {
            fieldMap[cleanName].push(field.value);
        } else {
            fieldMap[cleanName] = [field.value];
        }
    });
    
    // 转换为目标格式:多选字段保留[]后缀,值为数组;单值字段直接返回单个值
    const formattedFields = Object.entries(fieldMap).map(([name, values]) => ({
        name: values.length > 1 ? `${name}[]` : name,
        value: values.length > 1 ? values : values[0]
    }));

    window.dataLayer.push({
        "event" : "CF7submit",
        "CF7formId" : event.detail.contactFormId,
        "CF7fields" : formattedFields
    });
}); 

代码说明:

  • 遍历原始输入字段,用fieldMap对象收集每个字段的所有值,统一处理掉多选框名称末尾的[],避免重复键名。
  • 将fieldMap转换为目标数组格式:如果字段有多个值(多选框),则给名称加回[],值保留为数组;如果只有单个值,直接返回单个值,保持和普通字段一致的格式。

处理后,多选框的输出会符合你想要的格式:

{name: "Checkboxes-Name[]", value: ["Option 1", "Option 2", "Option 3"]}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 04:30:58