按顺序获取运费
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了按顺序获取运费相关的知识,希望对你有一定的参考价值。
客户有非常具体的运输要求,所以我建立了一个完美的运输插件。但我需要以特定格式提取所选的送货信息,以便向第三方提供商发送采购订单。
在运输插件中,我存储这些值如下:
$rate1cfree = array(
'id' => 'shipping_method_courier_free',
'label' => 'Courier (free)',
'cost' => '0',
'calc_tax' => 'per_item',
'meta_data' => array(
'delivery_channel' => 'NAT',
'delivery_service' => 'EXP'
)
);
$this->add_rate( $rate1cfree );
我在订单完整钩子中需要的2个元值是'delivery_channel'和'delivery_service'。
现在在我的woocommerce_payment_complete函数中,我可以使用以下方法提取大部分订单数据:
$order = wc_get_order( $order_id );
$order_data = $order->get_data();
问题是元值如下:
[shipping_lines] => Array
(
[358] => WC_Order_Item_Shipping Object
(
[meta_data:protected] => Array
(
[0] => WC_Meta_Data Object
(
[current_data:protected] => Array
(
[id] => 2515
[key] => delivery_channel
[value] => NAT
)
[data:protected] => Array
(
[id] => 2515
[key] => delivery_channel
[value] => NAT
)
)
[1] => WC_Meta_Data Object
(
[current_data:protected] => Array
(
[id] => 2516
[key] => delivery_service
[value] => EXP
)
[data:protected] => Array
(
[id] => 2516
[key] => delivery_service
[value] => EXP
)
)
)
)
)
无论我尝试和使用哪种方法,我似乎都无法访问这些值。我尝试使用get_post_meta(),get_meta_data(),get_meta()以及几乎任何看起来可以在此页面上提供帮助的内容:https://docs.woocommerce.com/wc-apidocs/class-WC_Data.html
任何帮助都会非常感激,因为我完全陷入困境。 :)
答案
好吧,我的共同工作英雄解决了它如下:
$order = wc_get_order( $order_id );
foreach( $order->get_items( 'shipping' ) as $item_id => $shipping_item_obj ){
$shipping_item_data = $shipping_item_obj->get_data();
$ship_info = $shipping_item_data['meta_data'];
foreach($ship_info as $ship_key => $ship_value){
$ship[$ship_key] = $ship_value->get_data();
}
}
print_r($ship);
以上是关于按顺序获取运费的主要内容,如果未能解决你的问题,请参考以下文章
html 将以编程方式附加外部脚本文件的javascript代码片段,并按顺序排列。用于响应式网站,其中ma
csharp 在Swashbuckle Swagger中,此片段允许按字母顺序显示操作。