Esta es la forma de instalar manualmente el script del evento purchause de Google Tag Manager en la página de confirmación de pedido de WooCommerce para realizar mediciones de conversión, de forma dinámica con los datos reales del pedido.

Situaremos el siguiente código en el archivo de funciones de nuestro tema de WordPress:

  add_action('wp_head','add_datalayer');

  function add_datalayer(){
              
    global $wp;
    if ( is_checkout() && !empty( $wp->query_vars['order-received'] ) ) {

?>
<script>
  dataLayer.push({
    'event': 'purchase',
     'ecommerce': {
          'transaction_id': '<?php echo $order_id ; ?>',
          'affiliation': 'WordCodePress',
          'value': '<?php echo $order_total; ?>',
          'tax': '<?php echo $order_total_tax; ?>',
          'shipping': '<?php echo $order_shipping_total; ?>',
          'currency': '<?php echo $order_currency; ?>',
          'coupon': '<?php echo $coupon_codes; ?>',
          'items': [<?php $i = 0; foreach ($order->get_items() as $item_key => $item ): $i++; ?>{ 
          <?php $item_data= $item->get_data(); $product_name= $item_data['name']; $product_id= $item_data['product_id']; $variation_id = $item_data['variation_id']; $quantity = $item_data['quantity']; $product = $item->get_product(); $product_type = $product->get_type();$product_price = $product->get_price(); 
            $categories = '';
            $terms = get_the_terms( $product_id, 'product_cat' );
            $categories_counter = 0;
            foreach ( $terms as $term ) {
                $categories_counter++;
                $limiter = '';
                if(count($terms) != 1 && $categories_counter != count($terms)): $limiter = ','; endif;
                $categories .= $term->name . $limiter;
            }
          ?>
            'item_name': '<?php echo $product_name; ?>',
            'item_id': '<?php echo $product_id; ?>',
            'price': '<?php echo $product_price; ?>',
            'item_brand': '',
            'item_category': '<?php echo $categories; ?>',
            'item_variant': '<?php echo $variation_id; ?>',
            'quantity': '<?php echo  $quantity; ?>'
          }<?php if($product_number != 1 && $i != $product_number): ?>,<?php endif; ?><?php endforeach ?>]
      }
  });
  </script>
<?php

    }

  }

Si te ha sido de utilidad ¡deja un comentario! 🙂