0

このコードを使用して、GoogleAnalyticsトラッキングに商品を追加しています。

   <?php foreach($orderProducts as $product) { ?>
  _gaq.push(['_addItem',
      "<?php echo $product['order_id']; ?>",
      "<?php echo $product['product_id']; ?>",
      <?php echo json_encode($product['name']); ?>,
      "<?php echo $product['model']; ?>",
      "<?php echo $product['price']; ?>",
      "<?php echo $product['quantity']; ?>"
   ]);

これは基本的な製品では問題なく機能しますが、一部の製品にはオプションがあるため$orderProducts、同じモデルIDで複数のバージョンが追加されます。Google Analyticsは最初のインスタンスのみを取得するため、他のインスタンスの量は追跡されません。

私がする必要があるのは、配列内の同じモデルIDを持つ各エントリのすべての数量を合計してから、新しい「合計」数量を持つそのモデルIDの1つのインスタンスを除くすべてを削除することです。

どんな助けでも大歓迎です。

4

1 に答える 1

1

model配列をループして、一意のquantity(テストされていない)ごとに1つのエントリのみを含む新しい配列を作成します。

$newArray = array();
foreach ($orderProducts as $product) {
  if (isset($newArray[$product['model']])) {
    $newArray[$product['model']]['quantity'] += $product['quantity'];
  } else {
    $newArray[$product['model']] = $product;
  }
}

$newArray次に、最初に行ったのと同じ方法でループできます$orderProducts

 <?php foreach($newArray as $product) { ?>
  _gaq.push(['_addItem',
      "<?php echo $product['order_id']; ?>",
      "<?php echo $product['product_id']; ?>",
      <?php echo json_encode($product['name']); ?>,
      "<?php echo $product['model']; ?>",
      "<?php echo $product['price']; ?>",
      "<?php echo $product['quantity']; ?>"
   ]);
于 2013-01-24T14:13:10.220 に答える