简体   繁体   English

在收到的Woocommerce订单中的javascript中设置订单ID和订单总数

[英]Set order id and order total in a javascript on Woocommerce order received

I have a script below I did integrate to the thank you page in woocommerce, I do not know what to put in to show the orderID and orderValue , can anyone please help me with that? 我下面有一个脚本,我确实集成到woocommerce中的“谢谢”页面,我不知道要显示什么来显示orderIDorderValue ,有人可以帮我吗?

(function() {
  function c(t) {
    for (var n = document.cookie.split(";"), r = 0; r < n.length; r++)
      if (p = n[r].split("="), p[0] == t)
        return p[1];
    return ''
  }
  adrecord = {
    "programID": 15,
    "orderID": "HERE I NEED TO SHOW orderID (order number)",
    "orderValue": HERE I NEED TO SHOW orderValue inc tax,
    "trackID": c('trackID'),
    "source": c('source')
  };
  var e = document.createElement('script');
  e.src = 'https://track.adrecord.com/track.js';
  var s = document.getElementsByTagName('script')[0];
  s.appendChild(e);
})();

Any help is appreciated. 任何帮助表示赞赏。

You can use the following hooked function in woocommerce_thankyou action hook, that will set in your Javascript the correct Order ID and total: 您可以在woocommerce_thankyou操作挂钩中使用以下挂钩函数,该挂钩函数将在Javascript中设置正确的订单ID和总数:

add_action( 'woocommerce_thankyou', 'thankyou_tracking_script', 10, 1 );
function thankyou_tracking_script( $order_id ) {
    // Get the WC_Order instance Object
    $order = wc_get_order( $order_id );

    // Output Javascript
    ?>
    <!-- JS Order received Script -->
    <script type="text/javascript"> 
    (function() {
        function c(t) {
            for (var n = document.cookie.split(";"), r = 0; r < n.length; r++)
            if (p = n[r].split("="), p[0] == t) return p[1];
            return ''
        }
        adrecord = {
            "programID": 15,
            "orderID": "<?php echo $order_id; ?>",
            "orderValue": <?php echo $order->get_total(); ?>,
            "trackID": c('trackID'),
            "source": c('source')
        };
        var e = document.createElement('script');
        e.src = 'https://track.adrecord.com/track.js';
        var s = document.getElementsByTagName('script')[0];
        s.appendChild(e);
    })(); 
    </script>
    <?php
}

Code goes in function.php file of your active child theme (or active theme). 代码进入您的活动子主题(或活动主题)的function.php文件中。 Tested and works. 经过测试和工作。


Or use this similar code using wp_footer action hook targetting "Order received" (thankyou) page: 或使用wp_footer动作挂钩定位到“收到订单” (谢谢)页面,使用以下类似代码:

add_action( 'wp_footer', 'order_received_tracking_script' );
function order_received_tracking_script() {
    // Only on "Order received" page
    if( ! is_wc_endpoint_url('order-received') ) Return; // Exit

    $order_id  = absint( $wp->query_vars['order-received'] );

    // Get the WC_Order instance Object
    $order = wc_get_order( $order_id );

    // Output Javascript
    ?>
    <!-- JS Order received Script -->
    <script type="text/javascript"> 
    (function() {
        function c(t) {
            for (var n = document.cookie.split(";"), r = 0; r < n.length; r++)
            if (p = n[r].split("="), p[0] == t) return p[1];
            return ''
        }
        adrecord = {
            "programID": 15,
            "orderID": "<?php echo $order_id; ?>",
            "orderValue": <?php echo $order->get_total(); ?>,
            "trackID": c('trackID'),
            "source": c('source')
        };
        var e = document.createElement('script');
        e.src = 'https://track.adrecord.com/track.js';
        var s = document.getElementsByTagName('script')[0];
        s.appendChild(e);
    })(); 
    </script>
    <?php
}

Code goes in function.php file of your active child theme (or active theme). 代码进入您的活动子主题(或活动主题)的function.php文件中。 Tested and works. 经过测试和工作。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM