为 woocommerce 设置 Google 广告购买,但我没有在数据层中获取正确的数据

问题描述 投票:0回答:1

我有一个 Google 广告标签,用于跟踪我在 woocommerce 网站上的购买情况。 但在数据层内我没有得到值或订单号。 我将此代码放入我的 function.php 中:

function thankyou_page_tracking_code() {
    if ( ! is_wc_endpoint_url( 'order-received' ) ) {
        return;
    }
?>
<script> gtag('event', 'conversion', { 'send_to': 'Here i write my number', 'value': 0.0, 'currency': 'EUR', 'transaction_id': '' }); </script>
<?php
}
add_action( 'wp_footer', 'thankyou_page_tracking_code' );

但是我在数据层中没有看到任何内容。

我确实收到一个错误(荷兰语):
Variabele 也是 onwaar geretourneerd vanwege een onbekende fout tijdens de uitvoering
电子商务商品总价值(价格 * 数量)
英文的意思是:
由于执行期间发生未知错误,变量返回 false
电子商务商品总价值(价格 * 数量)

我尝试了多种方法,但像这样:

function thankyou_page_tracking_code() {
    if ( ! is_wc_endpoint_url( 'order-received' ) ) {
        return;
    }

    // Haal de order ID op uit de URL
    $order_id = isset( $_GET['order-received'] ) ? $_GET['order-received'] : '';

    // Haal de WooCommerce order op
    $order = wc_get_order( $order_id );

    if ( ! $order ) {
        return; // Als de order niet bestaat, stop dan
    }

    // Haal de order totaal en valuta op
    $order_total = $order->get_total();
    $currency = get_woocommerce_currency();

    // Voeg de Google Ads tracking code toe met de juiste transaction_id, value en currency
    ?>
    <script>
        gtag('event', 'conversion', {
            'send_to': 'here i write my number',
            'value': <?php echo $order_total; ?>,
            'currency': '<?php echo $currency; ?>',
            'transaction_id': '<?php echo $order->get_id(); ?>'
        });
    </script>
    <?php
    }
    add_action( 'wp_footer', 'thankyou_page_tracking_code' );`

这使得网上商店甚至无法进入购买页面。 有人有想法吗?

wordpress woocommerce google-datalayer google-ads-script
1个回答
0
投票

在您的第二次代码尝试中,

$_GET['order-received']
将不允许您获取订单 ID。

请尝试以下操作:

function thankyou_page_tracking_code() {
    global $wp;

    // Exit if no order ID available
    if ( ! isset($wp->query_vars['order-received']) ) return; 
    
    $order_id = absint($wp->query_vars['order-received']); // The order ID
    $order    = wc_get_order( $order_id ); // The WC_Order object

    // Exit if $order is not a WC_Order object
    if ( ! is_a($order, 'WC_Order') ) return; 
    ?>
    <script type="text/javascript">
    gtag('event', 'conversion', {
        'send_to': 'here i write my number',
        'value': <?php echo $order->get_total(); ?>,
        'currency': '<?php echo $order->get_currency(); ?>',
        'transaction_id': '<?php echo $order_id; ?>'
    });
    </script>
    <?php
}
add_action( 'wp_footer', 'thankyou_page_tracking_code', 5 );

应该可以。

© www.soinside.com 2019 - 2024. All rights reserved.