1. Hjem
  2. Dokumentation
  3. WooCommerce EAN Payment G...
  4. Udviklere
  5. Jeg vil gerne tracke med Google Analytics 4

Jeg vil gerne tracke med Google Analytics 4

Hvis du gerne vil tracke dine salg via pluginnet EAN Betaling til WooCommerce, skal du ind og tilføje den kode, du ser nedenfor.

Det skyldes at når en EAN ordre oprettes via pluginnet EAN Betaling til WooCommerce, er der ikke en ekstern betalingsgateway, da alt håndtering foregår på selve webshoppen.

Der sendes altså ikke et transaktions ID retur, som er det Google Analytics normalt kigger efter, og derfor skal tracking af køb foretages på følgende måde:

Bemærk nedenstående er et eksempel du skal selv tilpasse koden så den passer med jeres opsætning.

<?php

add_action('woocommerce_thankyou', 'yanco_ean_payment_track_google_analytics_4_orders', 12, 1);
function yanco_ean_payment_track_google_analytics_4_orders($order_id)
{
    $order = wc_get_order($order_id);

    $total = $order->get_total();
    $total_tax = $order->get_total_tax();
    $total_shipping = $order->get_shipping_total();
    $order_items = $order->get_items();

    $order_email = $order->get_billing_email();
    $order_phone = $order->get_billing_phone();

    $google_analytics_conversion_id = 'AW-123456789/XXXXXXX-YYYYYYY'; // IMPORTANT: Modify this ID to the correct ID
    $trasaction_id = $order_id; // Defaults to the order ID
    $transaction_affiliation = 'YOUR COMPANY NAME HERE'; // IMPORTANT: Modify this


    $script = "<!-- Event snippet for Google Ads sporing conversion page -->";
    $script .= "<script>";
    $script .= "gtag('event', 'conversion', {";
    $script .= "'send_to': '".$google_analytics_conversion_id."',";
    $script .= "'value': " . $total . ",";
    $script .= "'currency': 'DKK',";
    $script .= "'transaction_id': '" . $order_id . "'";
    $script .= "});";
    $script .= "</script>";

    $script .= "<script>
		dataLayer.push({";
    $script .= "'event': 'itmrevenue',";
    $script .= "'transactionId': '" . $order_id . "',";
    $script .= "'transactionAffiliation': '".$transaction_affiliation."',";
    $script .= "'transactionTotal': " . $total . ",";
    $script .= "'transactionTax': " . $total_tax . ",";
    $script .= "'transactionShipping': " . $total_shipping . ",";
    $script .= "'transactionEmail': '" . $order_email . "',";
    $script .= "'transactionPhone': '" . $order_phone . "',";

    if (count($order_items) > 0) {
        $number_items = count($order_items);
        $current_count = 1;
        $script .= "'transactionProducts': [";
        foreach ($order_items as $item_id => $order_item) {
            $product = $order_item->get_product();

            if ($product) {
                $sku = $product->get_sku();
                if (empty($sku)) {
                    $sku = $product->get_id();
                }

                $categories = '';
                $wc_categories = wc_get_product_category_list($product->get_id(), ',', '', '');
                if (!empty($wc_categories)) {
                    $categories = strip_tags($wc_categories);
                }

                $script .= "{";
                $script .= "'sku': '" . $sku . "',";
                $script .= "'name': '" . $order_item->get_name() . "',";
                $script .= "'category': '" . $categories . "',";
                $script .= "'price': " . $order_item->get_total() . ",";
                $script .= "'quantity': " . $order_item->get_quantity();
                $script .= "}";

                if ($current_count != $number_items) {
                    $script .= ",";
                }
            }
            $current_count++;
        }
        $script .= "]";
    }

    $script .= "});";
    $script .= "</script>";

    // Set meta_data to prevent double tracking if the browser gets reloaded for the order received page
    $ean_order_has_been_custom_tracked = get_post_meta($order_id, 'ean_order_has_been_custom_tracked', true);

    if ($ean_order_has_been_custom_tracked == false ) {
        echo $script;
        update_post_meta($order_id, 'ean_order_has_been_custom_tracked', true);
    }
}

Hvordan kan vi hjælpe?