Ste*_*com 1 php wordpress facebook woocommerce
我一直致力于在我的 woocommerce 网站上制作新的 Facebook 像素跟踪代码功能。我有几件事想做,我从我认为最简单的地方开始。首先,我想更改此代码以使用结帐小计而不是订单总额,因为我使用了存款,将订单总额更改为实际价格的 20%。其次,我使用了一个像素跟踪插件,我想将这个功能添加到插件中,以便能够快速插入其他页面。通过将其添加到functions.php,我已经成功地使代码工作:
// Add purchase code to order received page
function checkout_analytics( $order_id ) {
$order = new WC_Order( $order_id );
$currency = $order->get_order_currency();
$total = $order->get_total();
$date = $order->order_date;
?>
<!-- Facebook Pixel Code -->
<script>
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
document,'script','https://connect.facebook.net/en_US/fbevents.js');
fbq('init', 'XXXXXXXXXX'); // Insert your pixel ID here.
</script>
<script>
fbq('track', 'Purchase', {
value: <?php echo $order->get_total(); ?>,
currency: 'USD'
});
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=XXXXXXXXXX&ev=PageView&noscript=1"
/></noscript>
<!-- DO NOT MODIFY -->
<!-- End Facebook Pixel Code -->
<?php
}
add_action( 'woocommerce_thankyou', 'checkout_analytics' );
Run Code Online (Sandbox Code Playgroud)
因此,为了尝试获取订单小计,我更改了这样的代码,但这是行不通的。它没有提取小计的值,我想我在这里遇到了一些格式问题。像素错误图片
// Add purchase code to order received page
function checkout_analytics( $order_id ) {
$order = new WC_Order( $order_id );
$currency = $order->get_order_currency();
$total = $order->get_total();
$date = $order->order_date;
$cart_subtotal = $order->subtotal_ex_tax;
?>
<!-- Facebook Pixel Code -->
<script>
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
document,'script','https://connect.facebook.net/en_US/fbevents.js');
fbq('init', 'XXXXXXXXXXXXXX'); // Insert your pixel ID here.
</script>
<script>
fbq('track', 'Purchase', {
value: <?php echo $order->subtotal_ex_tax; ?>,
currency: 'USD'
});
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=XXXXXXXXX&ev=PageView&noscript=1"
/></noscript>
<!-- DO NOT MODIFY -->
<!-- End Facebook Pixel Code -->
<?php
}
add_action( 'woocommerce_thankyou', 'checkout_analytics' );
Run Code Online (Sandbox Code Playgroud)
我想让代码正常工作,然后我想将它添加到插件中,但我不知道如何完全做到这一点。我模糊的想法是复制函数,但我觉得这不会完全奏效。
在继续解决这个问题后,我意识到了我的错误。如果有人有兴趣将其用于他们的 facebook 跟踪像素,他们需要做的就是修改脚本以将他们自己的跟踪像素 ID 放在您看到 XXXXXXXX 的位置
这是正确运行的更正代码:
// Add purchase code to order received page
function checkout_analytics( $order_id ) {
$order = new WC_Order( $order_id );
$currency = $order->get_order_currency();
$total = $order->get_total();
$date = $order->order_date;
$checkout_subtotal = $order->get_subtotal();
?>
<!-- Facebook Pixel Code -->
<script>
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
document,'script','https://connect.facebook.net/en_US/fbevents.js');
fbq('init', 'XXXXXXXXX'); // Insert your pixel ID here.
</script>
<script>
fbq('track', 'Purchase', {
value: <?php echo $order->get_subtotal(); ?>,
currency: 'USD'
});
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=XXXXXXXXX&ev=PageView&noscript=1"
/></noscript>
<!-- DO NOT MODIFY -->
<!-- End Facebook Pixel Code -->
<?php
}
add_action( 'woocommerce_thankyou', 'checkout_analytics' );
Run Code Online (Sandbox Code Playgroud)