如何在WooCommerce中获取订单税费详情和税率?

问题描述 投票:1回答:1

我想获得 税率 为插件中的一个订单中的自定义变量提供数据。当然,我可以通过以下方式请求大量的数据 $order-> get_ ...但我找不到一种方法来获取税率(比如'21' -> 21%)。

有谁有办法把这个简单化?

php wordpress woocommerce orders tax
1个回答
0
投票

你将不得不 获取订单税目 这将给你一个数组的 WC_Order_Item_Tax 受保护属性的对象可以使用 WC_Order_Item_Tax 现有方法 喜欢。

// Get the the WC_Order Object from an order ID (optional)
$order = wc_get_order( $order_id );

foreach($order->get_items('tax') as $item_id => $item ) {
    $tax_rate_id    = $item->get_rate_id(); // Tax rate ID
    $tax_rate_code  = $item->get_rate_code(); // Tax code
    $tax_label      = $item->get_label(); // Tax label name
    $tax_name       = $item->get_name(); // Tax name
    $tax_total      = $item->get_tax_total(); // Tax Total
    $tax_ship_total = $item->get_shipping_tax_total(); // Tax shipping total
    $tax_compound   = $item->get_compound(); // Tax compound
    $tax_percent    = WC_Tax::get_rate_percent( $tax_rate_id ); // Tax percentage
    $tax_rate       = str_replace('%', '', $tax_percent); // Tax rate


    echo '<p>Rate id: '. $tax_rate_id . '<br>'; // Tax rate ID
    echo 'Rate code: '. $tax_rate_code . '<br>'; // Tax code
    echo 'Tax label: '. $tax_label . '<br>'; // Tax label name
    echo 'Tax name: '. $tax_name . '<br>'; // Tax name
    echo 'Tax Total: '. $tax_total . '<br>'; // Tax Total
    echo 'Tax shipping total: '. $tax_ship_total . '<br>'; // Tax shipping total
    echo 'Tax compound: '. $tax_compound . '<br>'; // Tax shipping total
    echo 'Tax percentage: '. $tax_percent . '<br>'; // Tax shipping total
    echo 'Tax rate: '. $tax_rate . '</p>'; // Tax percentage
}

测试和工作

你也可以使用一些 WC_Tax 现有方法 如是

请注意,你可以有 税目繁多,税率不同 在一个订单中。运费也可以有自己的税率。费用也是一样,因为你可以设置税率等级。另外要记住,税率是根据客户所在地而定的。


最后,您还可以使用一些 WC_Abstract_Order 方法 以获得税额的详细信息,如:

// Get the the WC_Order Object from an order ID (optional)
$order = wc_get_order( $order_id );

$discount_tax         = $order->get_discount_tax();
$shipping_tax_total   = $order->get_shipping_tax();
$order_total_tax      = $order->get_total_tax();
$cart_total_tax       = $order->get_cart_tax();
$formatted_tax_totals = $order->get_tax_totals();
© www.soinside.com 2019 - 2024. All rights reserved.