问题
I try to get the name of the fee attached to my order in Woocommerce, I get an array but I don't know how to get the name.
I tried with function get_name ()
but it does not work.
$the_order->get_items( array( 'line_item', 'fee', 'shipping' ) );
Raw data output:
[137] => WC_Order_Item_Fee Object
(
[extra_data:protected] => Array
(
[tax_class] =>
[tax_status] => taxable
[amount] =>
[total] =>
[total_tax] =>
[taxes] => Array
(
[total] => Array
(
)
)
)
[data:protected] => Array
(
[order_id] => 7795
[name] => Frais de réservation
[tax_class] => 0
[tax_status] => taxable
[amount] =>
[total] => 35
[total_tax] => 0
[taxes] => Array
(
[total] => Array
(
)
)
)
回答1:
To access and to use properties on Order Fee items you need to use the WC_Order_Item_Fee methods using first a foreach loop this way:
// (optional if not defined) An instance of the WC_Order object
$the_order = wc_get_order( $order_id );
// Iterating through order fee items ONLY
foreach( $the_order->get_items('fee') as $item_id => $item_fee ){
// The fee name
$fee_name = $item_fee->get_name();
// The fee total amount
$fee_total = $item_fee->get_total();
// The fee total tax amount
$fee_total_tax = $item_fee->get_total_tax();
}
Tested and works
来源:https://stackoverflow.com/questions/47669922/get-the-order-fee-item-details-in-woocommerce-3