获取一个产品订单中使用的税率以及WooCommerce中的运费

时间:2017-10-20 16:01:46

标签: php wordpress woocommerce orders tax

在woocomerce中,如何在一个产品的订单中使用税率?税率费率运费?

1 个答案:

答案 0 :(得分:4)

您可以通过WC_Order_Item_Product对象和方法获取用于商品(产品)的税务数据:

// 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
}

您还可以通过WC_Order_Item_Tax对象和方法

获取税务数据(如运费)
// 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
}