如何将 Google 广告转化购买事件添加到我的 WooCommerce 感谢页面

How to add Google Ads conversion purchase event to my WooCommerce Thank you Page

我看到了这个

但我的情况不同。我正在使用“感谢页面上的自动完成处理 WooCommerce 订单”和“重定向 WooCommerce 结帐页面”,所有这些都在我的 functions.php 文件中。

这就是我的 functions.php 文件的样子。我用“*********”隐藏了我的网站

//Auto Complete Processing WooCommerce orders on Thankyou Page

add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_order' );
function custom_woocommerce_auto_complete_order( $order_id ) { 
    if ( ! $order_id ) {
        return;
    }

    $order = wc_get_order( $order_id );
    if ( $order->has_status('processing') ) {
        $order->update_status( 'completed' );
    }
   
}

// Redirect WooCommerce checkout page to ******************** after the payament
add_action( 'woocommerce_thankyou', 'pfwp_redirect_woo_checkout');
function pfwp_redirect_woo_checkout( $order_id ){
    $order = wc_get_order( $order_id );
    $url = 'https://*********/*********/*********/';
    if ( ! $order->has_status( 'failed' ) ) {
        wp_safe_redirect( $url );
        exit;
    }
}

我想在感谢 google 广告中添加活动片段。

<!-- Event snippet for Purchase conversion page -->
<script>
  gtag('event', 'conversion', {
      'send_to': 'AW-***********/********kDENy8vL4o',
      'value': 1.0,
      'currency': 'SAR',
      'transaction_id': ''
  });
</script>
<!-- End Event snippet for Purchase conversion page -->


因为我将感谢页面重定向到另一个页面,脚本会触发吗?还是不行?

因为我有很多控制 WooCommerce 的代码,所以我应该如何以及在何处添加事件片段 functions.php?

如果您将脚本与其他教程一起添加:

add_action( 'woocommerce_thankyou', 'ds_checkout_analytics' );

以及您的重定向:

add_action( 'woocommerce_thankyou', 'pfwp_redirect_woo_checkout');

只需执行此操作即可在重定向前触发跟踪:

add_action( 'woocommerce_thankyou', 'pfwp_redirect_woo_checkout', 12 );
add_action( 'woocommerce_thankyou', 'ds_checkout_analytics', 11 );

通过指定挂钩“优先级”,我们刚刚告诉 WordPress 在 pfwp_redirect_woo_checkout() 之前 运行 ds_checkout_analytics()。默认优先级为 = 10

由于您要重定向到另一个页面,因此必须在该页面上添加转换代码。为此,我设置了一个瞬态来传递该值。

您的 thank_you 功能可以合并。

这已经过测试,应该适合您。

add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_order' );
function custom_woocommerce_auto_complete_order( $order_id ) {
    if ( ! $order_id ) {
        return;
    }
    $order = wc_get_order( $order_id );
    if ( $order->has_status( 'processing' ) ) {
        $order->update_status( 'completed' );
    }
    $url = 'https://*******/'; // Your redirect URL.
    if ( ! $order->has_status( 'failed' ) ) {
        ob_start();
        set_transient( 'wc_order_total_for_google', $order->get_total( 'edit' ), 1 * MINUTE_IN_SECONDS );
        wp_safe_redirect( $url );
        exit;
    }
}

add_action( 'wp_print_footer_scripts', 'dd_add_conversion_code' );
function dd_add_conversion_code() {
    if ( is_page( your_custom_page_id ) ) { //Set your custom page ID here.
        if ( false !== get_transient( 'wc_order_total_for_google' ) ) {
            $order_total = get_transient( 'wc_order_total_for_google' );
            ?>
            <!-- Event snippet for Purchase conversion page -->
            <script>
                gtag('event', 'conversion', {
                    'send_to': 'AW-***********/********kDENy8vL4o',
                    'value': <?php echo esc_attr( $order_total ); ?>,
                    'currency': 'SAR',
                    'transaction_id': ''
                });
            </script>
            <!-- End Event snippet for Purchase conversion page -->
            <?php
            delete_transient( 'wc_order_total_for_google' );
        }
    }
}