GTM 根据现有变量创建新变量(WPForms 跟踪)
GTM create new variables in dependence to existing variable (WPForms tracking)
我使用 GTM 跟踪 WPForms 表单的值,并使用以下代码从多选下拉列表中获取所选值:
function() {
var selectList = {{wpFormElement}}.querySelector('#wpforms-1397-field_16');
var options = selectList ? selectList.options : [];
var vals = [];
var i, len;
for (i = 0, len = options.length; i < len; i++) {
if (options[i].selected) {
vals.push(options[i].value);
}
}
return vals.length ? vals.join(' ') : undefined;
}
输出是产品 ID 的:
'2705 1446 2772'
我想提交真实姓名的产品给分析,而不是id。如何根据产品 ID 获取具有真实产品名称的新变量(每个)?
var1: 2705 = 产品 1
var2: 1446 = 产品 2
var3: 2772 = 产品 3
感谢
听起来您需要一组产品名称。从一个值转到另一个值的最简单方法是使用像下面示例中的 productIdNameMap
变量这样的对象。此修改后的代码将 return 产品名称列表,因此您可以根据需要使用 for 循环对每个产品名称执行操作。
(function() {
var selectList = document.querySelector('#wpforms-1397-field_16');
var options = selectList ? selectList.options : [];
var productIdNameMap = {
2705: 'product 1',
1446: 'product 2',
2772: 'product 3',
2020: 'product 4'
};
var vals = [];
var i, len, productId;
for (i = 0, len = options.length; i < len; i++) {
if (options[i].selected) {
productId = options[i].value
vals.push(productIdNameMap[productId]);
}
}
console.log(vals);
return vals;
})();
<select multiple id="wpforms-1397-field_16">
<option selected>2705</option>
<option selected>1446</option>
<option selected>2772</option>
<option>2020</option>
</select>
我使用 GTM 跟踪 WPForms 表单的值,并使用以下代码从多选下拉列表中获取所选值:
function() {
var selectList = {{wpFormElement}}.querySelector('#wpforms-1397-field_16');
var options = selectList ? selectList.options : [];
var vals = [];
var i, len;
for (i = 0, len = options.length; i < len; i++) {
if (options[i].selected) {
vals.push(options[i].value);
}
}
return vals.length ? vals.join(' ') : undefined;
}
输出是产品 ID 的:
'2705 1446 2772'
我想提交真实姓名的产品给分析,而不是id。如何根据产品 ID 获取具有真实产品名称的新变量(每个)?
var1: 2705 = 产品 1
var2: 1446 = 产品 2
var3: 2772 = 产品 3
感谢
听起来您需要一组产品名称。从一个值转到另一个值的最简单方法是使用像下面示例中的 productIdNameMap
变量这样的对象。此修改后的代码将 return 产品名称列表,因此您可以根据需要使用 for 循环对每个产品名称执行操作。
(function() {
var selectList = document.querySelector('#wpforms-1397-field_16');
var options = selectList ? selectList.options : [];
var productIdNameMap = {
2705: 'product 1',
1446: 'product 2',
2772: 'product 3',
2020: 'product 4'
};
var vals = [];
var i, len, productId;
for (i = 0, len = options.length; i < len; i++) {
if (options[i].selected) {
productId = options[i].value
vals.push(productIdNameMap[productId]);
}
}
console.log(vals);
return vals;
})();
<select multiple id="wpforms-1397-field_16">
<option selected>2705</option>
<option selected>1446</option>
<option selected>2772</option>
<option>2020</option>
</select>