我希望在不借助插件的情况下,将包含购买金额和货币的Facebook跟踪事件添加到WooCommerce购买确认页面。
我假设在function.php文件中可以执行以下操作:
<?php
/**
* Append Facebook tracking Event
*/
add_action( 'woocommerce_thankyou', 'facebook_tracking_thank_you_page' );
function facebook_tracking_thank_you_page() {
$currency = $order->get_order_currency();
$total = $order->get_total();
echo ("<script>fbq('track', 'Purchase', {value: '<?php echo $total ?>',currency: '<?php echo $currency?>'});</script>");
}
?>
但是,在确认页面上根本没有回显该脚本。它还会破坏页面的布局。
我现在尝试将echo语句添加到全局标头(包装在针对该特定页面的if语句中):
Header.php
<!-- Echo Facebook Tracking on Checkout -->
<?php
global $post;
if($post->post_type == 'page' && $post->ID == '3327'){
echo "<script>fbq('track', 'Purchase', {value: '<?php echo $total ?>',currency: '<?php echo $currency?>'});</script>";
}
?>
将其保留在functions.php文件中:
/**
* Append Facebook tracking Event
*/
add_action( 'woocommerce_thankyou', 'facebook_tracking_thank_you_page' );
function facebook_tracking_thank_you_page() {
$currency = $order->get_order_currency();
$total = $order->get_total();
}
但是,我在页面上看到的是这样的:
<script>fbq('track', 'Purchase', {value: '<?php echo ?>',currency: '<?php echo ?>'});</script>
答案 0 :(得分:1)
您的代码中有很多错误和错误。
$order
变量$order_id
WC_Order
对象的实例
WC_Order
方法get_order_currency()
,而用get_currency()
请尝试以下操作:
add_action( 'woocommerce_thankyou', 'facebook_tracking_thank_you_page', 90, 1 );
function facebook_tracking_thank_you_page( $order_id ) {
// Get the WC_Order instance Object
$order = wc_get_order( $order_id );
// Output
echo "<!-- Facebook tracking event -->
<script>fbq('track', 'Purchase', {value: '".$order->get_total()
."',currency: '".$order->get_currency()."'});</script>";
}
代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试并可以正常工作。