在WooCommerce中结帐完成后,我有一个自定义的感谢页面,我需要将订单数据插入Google电子商务跟踪标签中以在分析中记录销售。其中一部分是为订单中的每个项目添加以下内容......
ga('ecommerce:addItem', {
'id': <?php echo $order_id?>, // Transaction ID. Required.
'name': 'ACME Product', // Product name. Required.
'sku': '1234', // SKU/code.
'category': 'Product Category', // Category or variation.
'price': '10.00', // Unit price.
'quantity': '1' // Quantity.
});
但是使用 PHP 插入订单项的真实数据,而不是您在那里看到的名称、SKU、类别、价格和数量的占位符。
在谷歌搜索答案时,我发现我现在必须使用wc_display_item_meta ( $item );
而不是弃用的$item_meta = new WC_Order_Item_Meta( $item['item_meta'], $_product );
我需要帮助的是,因为我还没有完全了解 PHP,而且我似乎找不到任何接近的例子,我如何开始获取这些值?它是某种 foreach,还是有没有办法直接从订单项中解析出每个项目的各个属性到一个变量中,然后我可以插入到这些占位符中?
请尝试以下操作(您可能需要进行一些更改并添加隶属关系 Id(:
?>
<script>
ga('require', 'ecommerce');
<?php
// GET the WC_Order object instance from, the Order ID
$order = wc_get_order( $order_id );
$order_key = $order->get_order_key();
$transaction_id = $order->get_transaction_id(); // Doesn't always exist
$transaction_id = $order_id; // (Or the order key or the transaction ID if it exist)
?>
ga('ecommerce:addTransaction', {
'id': '<?php echo $transaction_id; // To be checked ?>',
'affiliation': '<?php echo 'UA-XXXXX-Y'; // replace by yours ?>',
'revenue': '<?php echo $order->get_total(); ?>',
'shipping': '<?php echo $order->get_shipping_total(); ?>',
'tax': '<?php echo $order->get_total_tax(); ?>',
'currency': '<?php echo get_woocommerce_currency(); // Optional ?>'
}); <?php
// LOOP START: Iterate through order items
foreach( $order->get_items() as $item_id => $item ) :
// Get an instance of the WC_Product object
$product = $item->get_product();
// Get the product categories for the product
$categories = wp_get_post_terms( $item->get_product_id(), 'product_cat', array( 'fields' => 'names' ) );
$category = reset($categories); // Keep only the first product category
?>
ga('ecommerce:addItem', {
'id': '<?php echo $transaction_id; ?>',
'name': '<?php echo $item->get_name(); ?>',
'sku': '<?php echo $product->get_sku(); ?>',
'category': '<?php echo $category; ?>',
'price': '<?php echo wc_get_price_excluding_tax($product); // OR wc_get_price_including_tax($product) ?>',
'quantity': '<?php echo $item->get_quantity(); ?>',
'currency': '<?php echo get_woocommerce_currency(); // Optional ?>'
});
<?php
endforeach; // LOOP END
?>
ga('ecommerce:send');
</script>
<?php
此代码经过部分测试,不会引发错误...但它需要经过真实的测试。我希望它会起作用。
相关:
- 谷歌分析相关文档(根据本文档制作(
- 如何获取WooCommerce订单详细信息
- 在Woocommerce中获取订单项目和WC_Order_Item_Product 3