在Woocommerce中的Adword转换代码中添加订单数据

时间:2018-06-05 20:20:40

标签: javascript php woocommerce cart google-adwords

我有一个adwords转换代码,我想在我的孩子主题中添加。我想在"值"中插入总购买金额。在这段代码中的属性,以便每次触发代码时,购物车中的总金额都会添加到转化中。

<script async src="https://www.googletagmanager.com/gtag/js?id=AW-806400000"></script>
        <script>
            window.dataLayer = window.dataLayer || [];
            function gtag(){dataLayer.push(arguments);}
            gtag('js', new Date());

            gtag('config', 'AW-806400000"');
            gtag('event', 'conversion', {
                  'send_to': 'AW-806400000"/iHbjCOSfAewkasdowew',
                  'value': 1.0, **[Get the Total from cart and use here]**
                  'currency': 'USD',
                  'transaction_id': ''
              });

        </script>

1 个答案:

答案 0 :(得分:3)

<强>更新

正如Reigel所建议的那样,它应该更加适用于&#34;订单收到&#34;终点(谢谢你的页面)。在这里,我们将目标定为订单总数(因为购物车对象不再存在)。

所以代码应该是:

add_action('wp_head','google_tag_manager_checkout_conversion_script' );
function google_tag_manager_checkout_conversion_script() {
    // Only on "Order received" page
    if( ! is_wc_endpoint_url('order-received') ) 
        return; // Exit

    global $wp;

    $order_id  = absint( $wp->query_vars['order-received'] );
    $order_key = isset( $_GET['key'] ) ? wc_clean( $_GET['key'] ) : '';

    if ( empty($order_id) || $order_id == 0 )
        return; // Exit

    $order = wc_get_order( $order_id );

    if ( $order->get_order_key() != $order_key )
        return; // Exit

    // Get Order total amount and Order transaction ID
    $order_total    = (float) $order->get_total();
    $transaction_id = $order->get_transaction_id();

    ?>
    <script async src="https://www.googletagmanager.com/gtag/js?id=AW-806400000"></script>
    <script>
        window.dataLayer = window.dataLayer || [];
        function gtag(){dataLayer.push(arguments);}
        gtag('js', new Date());

        gtag('config', 'AW-806400000"');
        gtag('event', 'conversion', {
              'send_to': 'AW-806400000"/iHbjCOSfAewkasdowew',
              'value': <?php echo $order_total; ?>,
              'currency': 'USD',
              'transaction_id': '<?php echo $transaction_id; ?>'
          });
    </script>
    <?php
}

代码放在活动子主题(或活动主题)的function.php文件中。经过测试和工作。

这次应该更好,因为这次你得到了交易ID。

原始回答关于如何获取此Adwords脚本的购物车总数的原始问题...

显示您将使用的购物车总金额:

<?php echo number_format( WC()->cart->total + WC()->cart->total_tax, 2 ); ?>

定位结帐页面,您可以尝试以下附加功能,该功能会在<head>部分添加您的脚本,并确保正确的购物总额:

add_action('wp_head','google_tag_manager_order_received_conversion_script' );
function google_tag_manager_order_received_conversion_script() {
    // Only on checkout page
    if( ! ( is_checkout() && ! is_wc_endpoint_url() ) ) return;
    ?>
    <script async src="https://www.googletagmanager.com/gtag/js?id=AW-806400000"></script>
    <script>
        window.dataLayer = window.dataLayer || [];
        function gtag(){dataLayer.push(arguments);}
        gtag('js', new Date());

        gtag('config', 'AW-806400000"');
        gtag('event', 'conversion', {
              'send_to': 'AW-806400000"/iHbjCOSfAewkasdowew',
              'value': <?php echo number_format( WC()->cart->total + WC()->cart->total_tax, 2 ); ?>,
              'currency': 'USD',
              'transaction_id': ''
          });
    </script>
    <?php
}

代码放在活动子主题(或活动主题)的function.php文件中。经过测试和工作。

  

但它似乎很奇怪,因为还没有设置任何交易ID ......