在WooCommerce 3中获取订单运送物品的详细信息 [英] Get orders shipping items details in WooCommerce 3

查看:148
本文介绍了在WooCommerce 3中获取订单运送物品的详细信息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何获取订单运输方式ID ??

例如'flate_rate'.

For example 'flate_rate'.

自WooCommerce 3.x.x以来,一切都已变了,这并不容易.

Since WooCommerce 3.x.x it's not so easy as everything has changed.

我已经在foreach循环中使用 $order->get_data() 进行了尝试,但是数据受到了保护.

I have tried it with $order->get_data() in a foreach loop but the data is protected.

推荐答案

如果要获取订单商品运输"数据,则需要先将它们放入foreach循环中(用于 'shipping' 项目类型)并使用 WC_Order_Item_Shipping 方法访问数据

If you want to get the Order Items Shipping data, you need first to get them in a foreach loop (for 'shipping' item type) and to use WC_Order_Item_Shipping methods to access data

$order_id = 528; // For example

// An instance of 
$order = wc_get_order($order_id);

// Iterating through order shipping items
foreach( $order->get_items( 'shipping' ) as $item_id => $shipping_item_obj ){
    $order_item_name             = $shipping_item_obj->get_name();
    $order_item_type             = $shipping_item_obj->get_type();
    $shipping_method_title       = $shipping_item_obj->get_method_title();
    $shipping_method_id          = $shipping_item_obj->get_method_id(); // The method ID
    $shipping_method_instance_id = $shipping_item_obj->get_instance_id(); // The instance ID
    $shipping_method_total       = $shipping_item_obj->get_total();
    $shipping_method_total_tax   = $shipping_item_obj->get_total_tax();
    $shipping_method_taxes       = $shipping_item_obj->get_taxes();
}

您还可以使用在此foreach循环内 get_data() :

You can also get an array of this (unprotected and accessible) data using the WC_Data method get_data() inside this foreach loop:

$order_id = 528; // For example

// An instance of 
$order = wc_get_order($order_id);

// Iterating through order shipping items
foreach( $order->get_items( 'shipping' ) as $item_id => $shipping_item_obj ){
    // Get the data in an unprotected array
    $shipping_item_data = $shipping_item_obj->get_data();

    $shipping_data_id           = $shipping_data['id'];
    $shipping_data_order_id     = $shipping_data['order_id'];
    $shipping_data_name         = $shipping_data['name'];
    $shipping_data_method_title = $shipping_data['method_title'];
    $shipping_data_method_id    = $shipping_data['method_id'];
    $shipping_data_instance_id  = $shipping_data['instance_id'];
    $shipping_data_total        = $shipping_data['total'];
    $shipping_data_total_tax    = $shipping_data['total_tax'];
    $shipping_data_taxes        = $shipping_data['taxes'];
}

要完成此操作,可以使用以下 WC_Abstract_Order 与运输数据"相关的方法,例如以下示例:

To finish you can use the following WC_Abstract_Order methods related to "Shipping data", like in this examples:

// Get an instance of the WC_Order object
$order = wc_get_order(522);

// Return an array of shipping costs within this order.
$order->get_shipping_methods(); // same thing than $order->get_items('shipping')

// Conditional function based on the Order shipping method 
if( $order->has_shipping_method('flat_rate') ) { 

    // Output formatted shipping method title.
    echo '<p>Shipping method name: '. $order->get_shipping_method()) .'</p>';

这篇关于在WooCommerce 3中获取订单运送物品的详细信息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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