【问题标题】:Set order id and order total in a javascript on Woocommerce order received在收到的 Woocommerce 订单上的 javascript 中设置订单 ID 和订单总额
【发布时间】:2019-04-20 08:18:11
【问题描述】:

我在下面有一个脚本,我确实集成到了 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);
})();

感谢任何帮助。

【问题讨论】:

    标签: javascript php wordpress woocommerce orders


    【解决方案1】:

    您可以在 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
    }
    

    代码进入您的活动子主题(或活动主题)的 function.php 文件中。经过测试并且可以工作。


    或者使用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
    }
    

    代码进入您的活动子主题(或活动主题)的 function.php 文件中。经过测试并且可以工作。

    【讨论】:

      猜你喜欢
      • 2021-06-12
      • 2016-02-18
      • 2020-08-26
      • 2021-11-23
      • 2019-07-15
      • 2019-07-29
      • 2019-09-08
      • 2021-07-24
      • 2021-05-28
      相关资源
      最近更新 更多