4Manuals

  • PDF Cloud HOME

如何将PHP变量传递到数据层中的多个GA产品数组 Download

    CSS / JS-如何覆盖一个孩子而不是其他孩子的父母过渡 反应:更改方向后触发重新渲染和offsetWidth的重新计算 我的Javascript从'string'转换为'integer'或'number'无效 碳日期差异方法在Laravel 5.7中给出了错误的日期差异 如何删除外部索引并合并内部json 在React Native 图片无法通过javascript刷新 如何使用PHP将https错误状态设置为404,以便可以通过.htaccess文件处理? 如何在react图表上的datakey中操作DateTime 在Cypress中保存变量

我正在尝试在商店的“谢谢”页面上设置Google Analytics(分析),以跟踪购买情况,但我很难将购买的每一项商品都传递给Google Analytics(分析)。

我拥有的当前代码正在获取最后的产品详细信息,但我需要所有已售商品的详细信息。

这是我正在使用的PHP:

<? $i=1;foreach($previousorder->LineItems->OrderDetailLineItems as $order){
        $previousOrderHTML = "";
        if($i == 2){
            $i=1;
            $class = " odd";
        }else{
            $i++;
            $class = "";
        }
        if(!$order->LineDiscountAmountGross == "0"){
            $lineDiscount = sprintf('<span class="required">-%s</span>', $locale->formatCurrency($order->LineDiscountAmountGross, $nwc->getTemplateValue("lb_CurrencySymbol")));
        }else{
            $lineDiscount = "-";
        }
        $previousOrderHTML .= sprintf('<tr><td align="left" valign="top" class="extra-padding first-column details-row-one%s">%s</td><td align="left" valign="top" class="item-name extra-padding details-row-one%s">%s %s %s', $class, $order->ProductCode, $class, $order->ProductGroupName,  $order->Size,  $order->Colour);
        if(isset($order->BundleProductList->PriceListBundleProductList) && count($order->BundleProductList->PriceListBundleProductList) >= 1){
            $previousOrderHTML .= '<span class="offer-small">';
            foreach($order->BundleProductList->PriceListBundleProductList as $bundleItem){
                $previousOrderHTML .= sprintf("<br />- %s %s %s (%s) - %s %s", $bundleItem->ProductGroupName, $bundleItem->Size, $bundleItem->FabricColour, $bundleItem->ProductCode, $nwc->getValue("lb_RRP"), $locale->FormatCurrency($bundleItem->Original_GROSS_Price));
            }
            $previousOrderHTML .= '</span>';
        }
        $previousOrderHTML .= sprintf('</td><td align="left" valign="top" class="extra-padding details-row-one%s">%s</td><td align="center" valign="top" class="extra-padding details-row-one%s">%s</td><td align="right" valign="top" class="extra-padding details-row-one%s">%s</td></td><td align="right" valign="top" class="extra-padding details-row-one last-column%s">%s</td></tr>', $class, $locale->formatCurrency($order->RRP, $nwc->getTemplateValue("lb_CurrencySymbol")), $class, $order->Quantity, $class, $lineDiscount, $class, $locale->formatCurrency($order->GrossDiscountPrice, $nwc->getTemplateValue("lb_CurrencySymbol")));
        echo $previousOrderHTML;
    }
    ?>

这是将数据推送到Google跟踪代码管理器和Google Analytics(分析)的数据层的Javascript

<script type="text/javascript">
    $(function(){
        var cartTot = '<?=$previousorder->TotalOrderAmountExVAT;?>';
        var curr = '<?=$ShoppingCartSummary->Currency;?>';
        var ref = '<?=$previousorder->OurReferenceNumber;?>';
        var vatx = '<?=$previousorder->TotalVATAmount;?>';
        var prodid = '<?=$order->ProductCode;?>';
        var prodname = '<?=$order->ProductGroupName;?>';
        var rrp = '<?=$order->RRP;?>';
        var qnty = '<?=$order->Quantity;?>'
            dataLayer.push({
              'ecommerce': {
                'purchase': {
                  'actionField': {
                    'id': ref,                         // Transaction ID. Required for purchases and refunds.
                    'affiliation': 'Online Store',
                    'revenue': cartTot,                // Total transaction value (incl. tax and shipping)
                    'tax': vatx,
                    'shipping': '',
                  },
                  'products': [{          // List of productFieldObjects.
                    'name': prodname,     // Name or ID is required.
                    'id': prodid,
                    'price': rrp,
                    'quantity':qnty,       // Optional fields may be omitted or set to empty string.
                   }]
                }
              }
            });

请问我该怎么做才能获得出售的每件商品的产品详细信息?

非常感谢

1 个答案:

答案 0 :(得分:0)

在循环中:     foreach($ order-> BundleProductList-> PriceListBundleProductList as $ bundleItem){        '...     } 尝试使用PHP在JavaScript变量中创建一个对象数组(productFieldObjects列表),例如“ [{...},{...},{...}]”,例如:

[
  {'name': prodname1,
   'id': prodid1,
   'price': rrp1,
   'quantity':qnty1
   },
  {'name': prodname2,
   'id': prodid2,
   'price': rrp2,
   'quantity':qnty2
   },
  {'name': prodname3,
   'id': prodid3,
   'price': rrp3,
   'quantity':qnty3
   }
]

然后在推送中,将此值分配给'product'键:

//...
'purchase': {
    'actionField': {
    'id': '...',
    'affiliation': '...',
    'revenue': ...,
    'tax': ...,
    'shipping': ...,
},
'products': YOUR_ARRAY_OF OBJECTS // <-- HERE
//...



Similar searches
    如果尚未将数据附加到json文件中 Moshi JsonAdapter处理翻新中的Observable <Bitmap> 使用SODA API Python从数据集中导入所有行 如何将OpenMP控制台项目更改为GUI应用程序? 进行ajax调用后如何呈现结果?