You’d think WooCommerce had an easy way to get the order tax rate percentage, the same way as you can get almost everything inside the “order object” with a single line of PHP. Well, that’s not the case unfortunately.
The reason is that probably each order can have multiple tax rates, and that tax is not only applied to product prices, but also optionally to shipping, fees and more.
So, how do we get the list of tax rates in a WooCommerce order? Here’s a quick snippet that you can use – enjoy!
PHP Snippet: Get List of WooCommerce Order Tax Percentages
The function below “returns” an array of percentages – you can then use that in a plugin, snippet or theme in order to do calculations or print it somewhere.
/**
* @snippet Get Order Tax Percentages
* @usage Use bbloomer_woocommerce_get_tax_rates( $order );
* @how-to businessbloomer.com/woocommerce-customization
* @author Rodolfo Melogli, Business Bloomer
* @compatible WooCommerce 8
* @community https://businessbloomer.com/club/
*/
function bbloomer_woocommerce_get_tax_rates( $order ) {
$rates = array();
foreach ( $order->get_items('tax') as $item_id => $item ) {
$tax_rate_id = $item->get_rate_id();
$rates[] = WC_Tax::get_rate_percent( $tax_rate_id );
}
return $rates;
}