【问题标题】:Output purchased order Items data in Woocommerce Tracking tag script在 Woocommerce 跟踪标签脚本中输出购买的订单商品数据
【发布时间】:2018-06-08 15:41:17
【问题描述】:

我正在尝试在订单确认页面上为 woocommerce 结帐调用添加结帐中的项目,但它只是为订购的项目输出空白值。

代码如下:

    <!--Onefeed Tracking -->

<?php
$order = new WC_Order( $order_id );
$items = $order->get_items();
foreach ( $items as $item ) {
    $product_id = $item['product_id'];
}
$items_ordered = implode(',', $items);
?>

<script type="text/javascript" language="javascript">
     var of_ssid = 'xxxx';
     var cs = '<?php echo $order->get_total(); ?>';
     var oi = '<?php echo $order->get_order_number(); ?>';
     var it = '<?php echo $order->get_item_count(); ?>';
     var pr = '<?php echo $items_ordered(); ?>';
     var nc = '';
</script>

<script type="text/javascript" language="javascript" src="https://tracking.onefeed.co.uk/t.js"></script>
<noscript>
    <img border="0" src="https://tracking.onefeed.co.uk/ProcessProductCheckout.ashx?of_ssid=xxxx&cs=<?php echo $order->get_total(); ?>&it=<?php echo $order->get_item_count() ?>&oi=<?php echo $order->get_order_number(); ?>&nc=&pr =<?php echo $items_ordered(); ?>" />
</noscript>
<!--End Onefeed Tracking -->

【问题讨论】:

  • 我已经更新了我的答案...我得到了订单商品数据,但由于我们不知道您的脚本中需要什么订单商品数据,以及需要如何格式化,您将可能需要进行一些更改。

标签: javascript php wordpress woocommerce tracking


【解决方案1】:

我们不知道您的脚本中需要什么订单商品数据,以及需要如何格式化……

尝试以下方法:

add_action('woocommerce_thankyou', 'thankyou_tracking_onefeed_script', 20, 1 );
function thankyou_tracking_onefeed_script( $order_id ) {
    if ( ! $order_id )
        return;

    // Get an instance of the WC_Product object
    $order = wc_get_order( $order_id );

    // Get Order total amount and Order transaction ID
    $transaction_id = $order->get_transaction_id();

    $order_items = array();

    foreach ( $order->get_items() as $item_id => $item ) {
        $product    = $item->get_product();
        $product_id = $item->get_product_id();

        // Set unprotected item data in an array
        $order_items[]  = json_encode($item->get_data());
    }

    $order_items = implode( ',', $order_items );

    ?>
    <script type="text/javascript" language="javascript" src="https://tracking.onefeed.co.uk/t.js"></script>
    <script type="text/javascript" language="javascript">
         var of_ssid = 'xxxx';
         var cs = '<?php echo $order->get_total(); ?>';
         var oi = '<?php echo $order_id; ?>';
         var it = '<?php echo $order->get_item_count(); ?>';
         var pr = '<?php echo $order_items; ?>';
         var nc = '';
    </script>
    <noscript>
        <img border="0" src="https://tracking.onefeed.co.uk/ProcessProductCheckout.ashx?of_ssid=xxxx&cs=<?php echo $order->get_total(); ?>&it=<?php echo $order->get_item_count() ?>&oi=<?php echo $order->get_order_number(); ?>&nc=&pr =<?php echo $order_items; ?>" />
    </noscript>
    <?php
        echo '<p>BLABLA</p>';
}

代码进入您的活动子主题(或活动主题)的 function.php 文件中。经过测试,代码输出订单商品数据。


有用的线程:How to get WooCommerce order details

【讨论】:

  • 太棒了,谢谢。我稍微更改了代码,因为它正在输出所有订单值。我只需要订购的物品,所以我将代码更改为:$order_items[] = json_encode($product_id);
  • 很抱歉很痛苦,但在我自己测试后,代码已停止输出值。我们根本不接任何结帐电话。我只需要“pr”变量中的订单 ID。有机会看看吗?
猜你喜欢
  • 2019-03-17
  • 2021-03-31
  • 2017-09-12
  • 1970-01-01
  • 1970-01-01
  • 2016-08-19
  • 2019-01-08
  • 1970-01-01
  • 2019-02-23
相关资源
最近更新 更多