【问题标题】:Append Facebook tracking event to Order received page in Woocommerce将 Facebook 跟踪事件附加到 Woocommerce 中的订单接收页面
【发布时间】:2019-03-14 00:36:46
【问题描述】:

我希望将包含购买金额和货币的 Facebook 跟踪事件添加到 WooCommerce 购买确认页面,而无需借助插件。

我假设下面的内容可以在 functions.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>

【问题讨论】:

    标签: javascript php wordpress facebook woocommerce


    【解决方案1】:

    您的代码中有很多错误和错误。

    • $order 变量未定义
    • 您需要在挂钩函数中添加缺少的参数$order_id
    • 您需要从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 文件中。经过测试并且可以工作。

    【讨论】:

    • 太好了,谢谢。正是我想要找到的。
    猜你喜欢
    • 2019-03-17
    • 2014-09-12
    • 1970-01-01
    • 2016-03-06
    • 1970-01-01
    • 1970-01-01
    • 2015-12-24
    • 2018-11-02
    • 2019-02-23
    相关资源
    最近更新 更多