【问题标题】:Having trouble passing back values in the function for items无法在项目的函数中传回值
【发布时间】:2018-08-24 22:38:24
【问题描述】:

创建此代码是为了在购买时传回价值。项目部分上方的所有信息均已正确填充。 order.current.items 引用了包含 id、special_price、qty 的站点上的代码,但由于某种原因,它没有填充到函数中。

<script>
    window.liQ = window.liQ || [];
    window.liQ.push({ 
        event: "conversion",
        name: "product_purchase",
        transactionId: "[[Checkout Success | Order | Increment ID]]",
        amount: "[[Checkout Success | Order | Subtotal]]",
        currency: "USD",
        emailHash: "[[Checkout Success | User | MD5 Hash]]",
        items: function() {
            var pl = [];
            var orderItems = order.current.items;
            for (var i = 0; i < orderItems.length; ++i){
                pl.push({
                    id: orderItems[i].id,
                    price: orderItems[i].special_price,
                    quantity: orderItems[i].qty
                });
            }
            return pl;
        }
    }
);
</script>

【问题讨论】:

  • items 这里是一个返回项目数组而不是项目本身的数组的函数。我不确定,但我认为您应该改用自执行功能。

标签: javascript function


【解决方案1】:

目前您只是说items 是一个函数。你实际上并没有执行它。一种解决方案:

items: (function() {
          var pl = [];
          var orderItems = order.current.items;
          for (var i = 0; i < orderItems.length; ++i){
            pl.push({
              id: orderItems[i].id,
              price: orderItems[i].special_price,
              quantity: orderItems[i].qty
            });
            }
            return pl;
          }})();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-30
    • 2011-01-30
    • 1970-01-01
    • 2018-06-30
    相关资源
    最近更新 更多