6
votes

Intégration de Google Analytics pour les commandes sans transaction de paiement en ligne dans Woocommerce 3

J'essaie d'ajouter des informations sur les commandes dans Google Analytics. Mais les statistiques ne montrent pas la réception d'informations sur les commandes. Le site n'utilise pas de paiements en ligne (peut-être que la raison est liée à cela). J'ai utilisé le answer

J'ai ajouté du code à functions.php dans mon répertoire de thèmes.

<!-- 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>

J'ai ajouté le code de compteur à header.php

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
}

Paramètres Google Analytics de mon compte: Paramètres Google Analytics

Conflits identifiés dans le script. Le pied de page disparaît. Conflits identifiés Conflits identifiés


0 commentaires

3 Réponses :


0
votes

Cette page vous aidera peut-être:

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

De plus, je ne peux pas voir la ligne précédente où owl est défini, mais il semble qu'elle soit définie à partir d'un jQuery $ () à partir d'un ID d'élément. Vérifiez peut-être qu'il existe et que owlCarousel n'est pas différé et est bien attaché à l'élément auquel vous faites référence avant que .owlCarousel () ne soit appelé.


1 commentaires

Merci! J'ai vérifié. L'erreur avec le carrousel n'a pas d'importance. C'est une conséquence du fait que mon code ci-dessus casse le pied de page. Ainsi, le hibou de script ne se charge pas. Autrement dit, je pense que j'ai le mauvais code de compteur et l'intégration de Google Analytics.



2
votes

Tout d'abord, vérifiez avec les données factices si elles fonctionnent correctement ou non.

  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 }

Pour plus de détails, consultez ce lien: Parcours e-commerce


5 commentaires

Je vous remercie! Ceci est valable pour des raisons compréhensibles. La question est de savoir comment décomposer correctement le code dans le compteur et le code sur la page "merci".


avez-vous vérifier en désactivant les plugins du carrousel hibou ou en commentant le code hibou. j'espère que cela vous aidera à suivre l'erreur. Merci


La raison n'est malheureusement pas dans ce script de hibou. Dans mon code qui supprime le pied de page. Dans le pied de page, le script du carrousel est connecté. Par conséquent, une erreur se produit.


Ok, je peux comprendre ce que vous dites, mais avez-vous vérifié votre code en supprimant le carrousel de hibou, je veux juste déboguer en supprimant hibou peut-être vous aider à déboguer votre code. Parce que si une erreur js se produit, tout script js ne pourra pas s'exécuter.


Oui, mais malheureusement le pied de page a quand même disparu. Il n'y a pas eu d'erreur avec le hibou puisqu'il était éteint.



0
votes

0 commentaires