Google analytics integration for orders without on

2019-06-18 07:55发布

I'm trying to add information about orders in the Google analytics. But the statistics do not show the receipt of information about orders. The site does not use online payments (perhaps the reason is related to this). I used the answer

I added code to functions.php in my theme directory.

add_action( 'woocommerce_thankyou', 'google_analytics_integration', 20 );
function google_analytics_integration(){
    ?>
    <script>
        ga('require', 'ecommerce');
        <?php

        // GET the WC_Order object instance from, the Order ID
        $order = wc_get_order( $order_id );

        $order_key = $order->get_order_key();

        $transaction_id = $order->get_transaction_id(); // Doesn't always exist

        $transaction_id = $order_id; // (Or the order key or the transaction ID if it exist)

        ?>
        ga('ecommerce:addTransaction', {
            'id':          '<?php echo $transaction_id; // To be checked ?>',
            'affiliation': '<?php echo 'UA-130000602-1'; // replace by yours ?>',
            'revenue':     '<?php echo $order->get_total(); ?>',
            'shipping':    '<?php echo $order->get_shipping_total(); ?>',
            'tax':         '<?php echo $order->get_total_tax(); ?>',
            'currency':    '<?php echo get_woocommerce_currency(); // Optional ?>'
        }); <?php

        // LOOP START: Iterate through order items
        foreach( $order->get_items() as $item_id => $item ) :
        // Get an instance of the WC_Product object
        $product = $item->get_product();

        // Get the product categories for the product
        $categories = wp_get_post_terms( $item->get_product_id(), 'product_cat', array( 'fields' => 'names' ) );
        $category = reset($categories); // Keep only the first product category
        ?>
        ga('ecommerce:addItem', {
            'id':       '<?php echo $transaction_id; ?>',
            'name':     '<?php echo $item->get_name(); ?>',
            'sku':      '<?php echo $product->get_sku(); ?>',
            'category': '<?php echo $category; ?>',
            'price':    '<?php echo wc_get_price_excluding_tax($product);  // OR wc_get_price_including_tax($product) ?>',
            'quantity': '<?php echo $item->get_quantity(); ?>',
            'currency': '<?php echo get_woocommerce_currency(); // Optional ?>'
        });
        <?php
        endforeach; // LOOP END
        ?>
        ga('ecommerce:send');
    </script>
    <?php
}

I added the counter code to header.php

<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-130000602-1"></script>
<script>
    window.dataLayer = window.dataLayer || [];
    function gtag(){dataLayer.push(arguments);}
    gtag('js', new Date());

    gtag('config', 'UA-130000602-1');
</script>

My account Google analytics settings: Google analytics settings

Identified conflicts in the script. Footer disappears. Identified conflicts Identified conflicts

3条回答
爷的心禁止访问
2楼-- · 2019-06-18 08:23

Perhaps this page will help:

https://stackoverflow.com/a/54111464/7118098

Also, can't see the previous line where owl is defined, but it looks like it's defined from a jQuery $() from an element ID. Perhaps check that it exists and that owlCarousel isn't deferred and is indeed attached to the element you're referencing before .owlCarousel() is called on it.

查看更多
萌系小妹纸
3楼-- · 2019-06-18 08:29

First check with the dummy data is its working fine or not.

  add_action('wp_head','add_gscript_trans');

        function add_gscript_trans(){?>

        <!-- Google Analytics -->
        <script>
        (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
        })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

        ga('create', 'UA-130000602-1', 'auto');
        /* To load the ecommerce plugin, use the following command: */
        ga('require', 'ecommerce');
    /* You add transaction data to the shopping cart using the ecommerce:addTransaction command:*/

    ga('ecommerce:addTransaction', {
      'id': '1234',                     // Transaction ID. Required.
      'affiliation': 'Acme Clothing',   // Affiliation or store name.
      'revenue': '11.99',               // Grand Total.
      'shipping': '5',                  // Shipping.
      'tax': '1.29'                     // Tax.
    });

    /* Next, to add items to the shopping cart, you use the ecommerce:addItem command: */

    ga('ecommerce:addItem', {
      'id': '1234',                     // Transaction ID. Required.
      'name': 'Fluffy Pink Bunnies',    // Product name. Required.
      'sku': 'DD23444',                 // SKU/code.
      'category': 'Party Toys',         // Category or variation.
      'price': '11.99',                 // Unit price.
      'quantity': '1'                   // Quantity.
    });
   /* Finally, once you have configured all your ecommerce data in the shopping cart, you send the data to Google Analytics using the ecommerce:send command: */

   ga('ecommerce:send');

    </script>
    <!-- End Google Analytics -->
    <?php }

For more details see this link : E-commerce Track

查看更多
登录 后发表回答