问题
In woocomerce, how to get the tax rate used in an order for one product ? And the tax rate For shipping ?
回答1:
You can get the tax data used for an item (product) through WC_Order_Item_Product object and methods:
// Get the an occurrence of the WC_Order object (if needed, from a defined $order ID)
$order = wc_get_order( $order_id );
// Iterating through WC_Order_Item_Product objects
foreach( $order->get_items() as $item_id => $line_item ){
## -- Get all protected data in an accessible array -- ##
$item_data = $line_item->get_data(); // Get the Tax data in an array
$item_tax_class = $item_data['tax_class'];
$item_subtotal_tax = $item_data['subtotal_tax'];
$item_total_tax = $item_data['total_tax'];
$item_taxes_array = $item_data['taxes'];
## -- OR Use WC_Order_Item_Tax methods -- ##
$item_tax_class = $line_item->get_tax_class(); // Tax class
$item_subtotal_tax = $line_item->get_subtotal_tax(); // Line item name
$item_total_tax = $line_item->get_total_tax(); // Tax rate code
$item_taxes_array = $line_item->get_taxes(); // Tax detailed Array
}
Also you can get Tax data (like shipping) through WC_Order_Item_Tax object and methods
// Get the an occurrence of the WC_Order object (if needed, from a defined $order ID)
$order = wc_get_order( $order_id );
// Iterating through WC_Order_Item_Tax objects
foreach( $order->get_items( 'tax' ) as $item_id => $item_tax ){
## -- Get all protected data in an accessible array -- ##
$tax_data = $item_tax->get_data(); // Get the Tax data in an array
$item_tax_rate_code = $tax_data['rate_code'];
$item_tax_rate_id = $tax_data['rate_id'];
$item_tax_label = $tax_data['label'];
$item_tax_total = $tax_data['tax_total']; // Tax total amount
$item_tax_shipping_total = $tax_data['shipping_tax_total']; // Tax shipping total
## -- OR Use WC_Order_Item_Tax methods -- ##
$item_type = $item_tax->get_type(); // Line item type
$item_name = $item_tax->get_name(); // Line item name
$rate_code = $item_tax->get_rate_code(); // Tax rate code
$tax_rate_label = $item_tax->get_label(); // Tax label
$tax_rate_id = $item_tax->get_rate_id(); // Tax rate ID
$compound = $item_tax->get_compound(); // Tax compound
$tax_amount_total = $item_tax->get_tax_total(); // Tax rate total
$tax_shipping_total = $item_tax->get_shipping_tax_total(); // Tax shipping total
}
来源:https://stackoverflow.com/questions/46852972/get-tax-rate-used-in-an-order-for-one-product-and-for-shipping-in-woocommerce