Commit 0eb2885e2ea for woocommerce
commit 0eb2885e2ea7a2521c208857fc410cab00efc2af
Author: Vladimir Reznichenko <kalessil@gmail.com>
Date: Fri Jun 12 16:21:49 2026 +0200
[Taxes] Harden types handling in WC_Tax class get-methods. (#65711)
diff --git a/plugins/woocommerce/changelog/dev-65710-stricter-types-control-in-tax-class b/plugins/woocommerce/changelog/dev-65710-stricter-types-control-in-tax-class
new file mode 100644
index 00000000000..0a8bb64897c
--- /dev/null
+++ b/plugins/woocommerce/changelog/dev-65710-stricter-types-control-in-tax-class
@@ -0,0 +1,4 @@
+Significance: patch
+Type: fix
+
+Harden types handling in WC_Tax class get-methods.
diff --git a/plugins/woocommerce/includes/class-wc-tax.php b/plugins/woocommerce/includes/class-wc-tax.php
index 427476a7f81..a78fb6cd4d9 100644
--- a/plugins/woocommerce/includes/class-wc-tax.php
+++ b/plugins/woocommerce/includes/class-wc-tax.php
@@ -702,8 +702,8 @@ class WC_Tax {
global $wpdb;
if ( is_object( $key_or_rate ) ) {
- $key = $key_or_rate->tax_rate_id;
- $compound = $key_or_rate->tax_rate_compound;
+ $key = (int) $key_or_rate->tax_rate_id;
+ $compound = (bool) $key_or_rate->tax_rate_compound;
} else {
$key = $key_or_rate;
$compound = (bool) $wpdb->get_var( $wpdb->prepare( "SELECT tax_rate_compound FROM {$wpdb->prefix}woocommerce_tax_rates WHERE tax_rate_id = %s", $key ) );
@@ -722,7 +722,7 @@ class WC_Tax {
global $wpdb;
if ( is_object( $key_or_rate ) ) {
- $key = $key_or_rate->tax_rate_id;
+ $key = (int) $key_or_rate->tax_rate_id;
$rate_name = $key_or_rate->tax_rate_name;
} else {
$key = $key_or_rate;
@@ -744,7 +744,7 @@ class WC_Tax {
*/
public static function get_rate_percent( $key_or_rate ) {
$rate_percent_value = self::get_rate_percent_value( $key_or_rate );
- $tax_rate_id = is_object( $key_or_rate ) ? $key_or_rate->tax_rate_id : $key_or_rate;
+ $tax_rate_id = is_object( $key_or_rate ) ? (int) $key_or_rate->tax_rate_id : $key_or_rate;
return apply_filters( 'woocommerce_rate_percent', $rate_percent_value . '%', $tax_rate_id );
}
@@ -778,7 +778,7 @@ class WC_Tax {
global $wpdb;
if ( is_object( $key_or_rate ) ) {
- $key = $key_or_rate->tax_rate_id;
+ $key = (int) $key_or_rate->tax_rate_id;
$rate = $key_or_rate;
} else {
$key = $key_or_rate;