我正试图在order-received
进行再营销的页面dataLayer
. 脚本必须放入<head>
html代码的一节。我怎样才能得到$order
在<head>
部分
我可以得到$order_id
在里面woocommerce_thankyou
但不在wp_head
function tracking_thank_you_page( $order_id ) {
?>
<script>
console.log( \'order_id: <?php echo $order_id; ?>\' );
</script>
<?php
}
add_action( \'woocommerce_thankyou\', \'tracking_thank_you_page\' );
我有$order_id
使用上述代码。function tracking_in_head( $order_id ) {
?>
<script>
console.log( \'order_id: <?php echo $order_id; ?>\' );
</script>
<?php
}
add_action( \'wp_head\', \'tracking_in_head\' );
我没有访问$order_id
在wp_head
更新:在收到Hector有用的回复后,我编辑了我的代码。它创建javascriptdataLayer
产品SKU:
function tracking_in_head() {
$product_skus = \'\';
global $wp_query;
if( !empty( $wp_query->query_vars[ \'order-received\' ] ) ) {
$order = wc_get_order( $wp_query->query_vars[ \'order-received\' ] );
$items = $order->get_items();
echo "<script>
dataLayer = [];
dataLayer.push({
\'event\': \'purchase\',
";
if( !empty( $items ) ) {
echo "\'items\': [";
foreach( $items as $item ) {
$product = wc_get_product( $item[ \'product_id\' ] );
echo "{
\'id\': \'" . $product->get_sku() . "\',
\'google_business_vertical\': \'retail\'
},";
}
echo "]";
}
echo "});
</script>";
}
}
add_action( \'wp_head\', \'tracking_in_head\' );
这个代码有什么需要改进的吗?