在Woocommerce的订单收到页面上的JS跟踪代码中订购商品 [英] Order items in a JS tracking code on Order received page in Woocommerce

查看:87
本文介绍了在Woocommerce的订单收到页面上的JS跟踪代码中订购商品的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在Woocommerce Thankyou页面中集成跟踪代码。我发现只是订单ID填写它。但我不知道如何为订单商品数据完成此操作。

I am trying to integrate a tracking code in Woocommerce Thankyou page. I found just the order id to fill it out. But I don't know how to complete this for order items data.

这是我的实际代码:

<script type="text/javascript">
ADMITAD = window.ADMITAD || {};

ADMITAD.Invoice = ADMITAD.Invoice || {};

ADMITAD.Invoice.broker = "adm";     // deduplication parameter (for Admitad by default)

ADMITAD.Invoice.category = "1";     // action code (defined during integration)


var orderedItem = [];               // temporary array for product items


// repeat for every product item in the cart

orderedItem.push({

  Product: {

  productID: 'product_id', // internal product ID (not more than 100 characters, the same as in your product feed)

  category: '1',               // tariff code (defined during integration)

  price: 'price',          // product price

  priceCurrency: "RON",        // currency code in the ISO-4217 alfa-3 format

 },

 orderQuantity: '{{quantity}}',   // product quantity

 additionalType: "sale"           // always sale

 });


ADMITAD.Invoice.referencesOrder = ADMITAD.Invoice.referencesOrder || [];
// adding items to the order

ADMITAD.Invoice.referencesOrder.push({

  orderNumber: "<?php echo $order->get_id(); ?>;", // internal order ID (not more than 100 characters)

  orderedItem: orderedItem

});

// Important! If order data is loaded via AJAX, uncomment this string. 

// ADMITAD.Tracking.processPositions();

</script>

感谢任何帮助。

推荐答案

以下重新访问的代码添加了正确的订单商品循环并使用订单已收到页面(Thankyou)专用操作挂钩:

The following revisited code adds the correct order items loop and uses "Order received" page (Thankyou) dedicated action hook:

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

    // Output
    ?>
    <script type="text/javascript">
    ADMITAD = window.ADMITAD || {};

    ADMITAD.Invoice = ADMITAD.Invoice || {};

    // deduplication parameter (for Admitad by default)
    ADMITAD.Invoice.broker = "adm";

    // action code (defined during integration)
    ADMITAD.Invoice.category = "1";

    // temporary array for product items
    var orderedItem = [];

    <?php
    // Loop through Order items
    foreach( $order->get_items() as $item ) :
        $product = $item->get_product();
    ?>
    orderedItem.push({

      Product: {
        // internal product ID (not more than 100 characters, the same as in your product feed)
        productID: '<?php echo $item->get_product_id(); ?>',

        // tariff code (defined during integration)
        category: '1',

        // product price
        price: '<?php echo $product->get_price(); ?>',

        // currency code in the ISO-4217 alfa-3 format
        priceCurrency: '<?php echo $order->get_currency(); ?>',
      },
      // product quantity
      orderQuantity: '<?php echo $item->get_quantity(); ?>',

      additionalType: "sale" // always sale

    });
    <?php endforeach; // End of Loop ?>

    // adding items to the order
    ADMITAD.Invoice.referencesOrder = ADMITAD.Invoice.referencesOrder || [];

    ADMITAD.Invoice.referencesOrder.push({
      // internal order ID (not more than 100 characters)
      orderNumber: "<?php echo $order->get_id(); ?>;",

      orderedItem: orderedItem

    });

    // Important! If order data is loaded via AJAX, uncomment this string.
    // ADMITAD.Tracking.processPositions();
    </script>
    <?php
}

它应该有效(已测试)

相关:

  • How to get WooCommerce order details
  • Get Order items and WC_Order_Item_Product in Woocommerce 3

加法 - 实时货币转换

1)安装并激活此免费插件: Euro FxRef货币转换器

1) Install and active this free plugin: Euro FxRef Currency Converter

2)启用从RON到EUR的自动货币转换(产品价格示例)。

2) Enable auto currency conversion from 'RON' to 'EUR' (product price example).

替换:

// product price
price: '<?php echo $product->get_price(); ?>',

以下内容:

// Converted product price (rounded with 2 decimals)
<?php $price = EuroFxRef::convert( $product->get_price(), 'RON', 'EUR' ); ?>
price: '<?php echo round( $price, 2 );  ?>',

经过测试和工作......这应该可以解决问题。

Tested and works… This should do the trick.

这篇关于在Woocommerce的订单收到页面上的JS跟踪代码中订购商品的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆