Javascript GTM根据现有变量创建新变量(WPForms跟踪)

Javascript GTM根据现有变量创建新变量(WPForms跟踪),javascript,variables,google-tag-manager,Javascript,Variables,Google Tag Manager,我使用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.le

我使用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;
}
我想将具有真实名称的产品提交给analytics,而不是id。如何根据产品id获得具有真实产品名称的新变量(每个变量)

var1:2705=产品1

var2:1446=产品2

var3:2772=产品3


thx

听起来您需要一系列产品名称。从一个值转换到另一个值的最简单方法是使用像下面示例中的
productIdNameMap
变量这样的对象。这段修改后的代码将返回一个产品名称列表,因此如果需要,可以使用for循环对每个产品名称进行处理

(函数(){
var selectList=document.querySelector('wpforms-1397-field_16');
var options=selectList?selectList.options:[];
var productIdNameMap={
2705:‘产品1’,
1446:‘产品2’,
2772:‘产品3’,
2020年:“产品4”
};
var VAL=[];
变量i,len,productId;
对于(i=0,len=options.length;i

2705
1446
2772
2020

thx,效果很好。是否也可以将id存储在数组中而不是“270514462772”?当然可以!只需替换vals.push(productIdNameMap[productId])带有
vals.push(productId)并且该代码将打印一个ID数组。
'2705 1446 2772'