How to get order details for a Javascript tracking script?

Viewed 774

I'm trying to put order id and value to tracking code but can't make it work. I tried to put there

$order_id = $order->get_id();
$order->get_id();
$order->get_total();

and nothing works. Here's code and places where I need these elements:

<script language="JavaScript">
tdconv('init', '2253741', {'element': 'iframe' });
tdconv('track', 'sale', {'transactionId':'ORDER ID HERE', 'ordervalue':ORDER VALUE HERE, 'currency':'PLN', 'event':400532});
</script>

Can anyone give me some tips?

1 Answers

Here is the way to get order data for a javascript tracking script from order received page (thankyou):

add_action( 'wp_footer', 'thankyou_tracking_script_js' );
function thankyou_tracking_script_js(){
    // Order reveived / thankyou page
    if ( ! is_wc_endpoint_url( 'order-received' ) ) return;

    global $wp;

    // If order_id is defined
    if ( isset($wp->query_vars['order-received']) && absint($wp->query_vars['order-received']) > 0 ) :
    
    $order_id       = absint($wp->query_vars['order-received']); // The order ID
    $order          = wc_get_order( $order_id ); // The WC_Order object
    $transaction_id = empty($order->get_transaction_id()) ? $order_id : $order->get_transaction_id(); // The transaction ID
    
    ?>
    <script language="JavaScript">
    tdconv('init', '2253741', {'element': 'iframe' });
    tdconv('track', 'sale', {
        'transactionId' : '<?php echo $transaction_id; ?>', 
        'ordervalue'    : '<?php echo $order->get_total(); ?>', 
        'currency'      : '<?php echo $order->get_order_currency(); ?>', 
        'event'         : 400532
    });
    </script>
    <?php
    endif;
}

Code goes in function.php file of your active child theme (or active theme). Tested and works.

Related:

Related