不正确的Javascript对象语法

问题描述 投票:0回答:1

我正在尝试为Google Analytics创建一个JavaScript数组。

下面是我的代码。我认为语法不正确。语法的第一部分是正确的,即购买,但我认为当我尝试在此对象中创建数组时遇到问题。

i.e:      'products': []

我不知道如何向这个对象添加数组。

window.dataLayer = window.dataLayer || [];
dataLayer.push({
 'ecommerce': {
    'purchase': {
    'actionField': {
            'id': '<?php echo $order->getId()?>',                         // Transaction ID. Required for purchases and refunds.
            'affiliation': '<?php echo $order->getAffiliation() ?>',
            'revenue': '<?php echo $orderGrandTotal?>',                     // Total transaction value (incl. tax and shipping)
            'tax': '<?php echo $orderTax?>',
            'shipping': '<?php echo $orderShippingTotal?>',
            'coupon': '<?php echo $order->getCouponCode() ?>'
        },

        'products': [
            <?php foreach($orderItems as $item): ?>
        <?php $intCtr++;?>
        <?php if($item->getParentItemId()) continue;?>
          {                            

            'name': '<?php echo $this->jsQuoteEscape($item->getName()) ?>',     // Name or ID is required.

            'id': '<?php echo $item->getSku() ?>',

            'price': '<?php echo ($helper->sendBaseData()==true ? $item->getBasePrice() : $item->getPrice()) ?>',
            'brand': '<?php echo $helper->getBrand($item->getProduct()) ?>',

            'category': '<?php echo $helper->getQuoteCategoryName($item) ?>',

            'quantity': <?php echo $item->getQtyOrdered()?>

            <?php if ($intCtr==count($orderItems)):?>
                        <?php endif;?>  
                }            
                <?php endforeach;?>            
        ]
    },

   }

});
javascript php arrays
1个回答
0
投票

我会用PHP做很多事情。

$array = [
    'ecommerce' => [
        'purchase' => [
            'id'=> $order->getId(),
            // etc etc
        ],
    ],
];

$json = json_encode($array);

然后在你的Javascript中一次性回复这个地段!

{"ecommerce":{"purchase":{"id":12345}}}
© www.soinside.com 2019 - 2024. All rights reserved.