WC_Tax::find_rates PHP Method

find_rates() public static method

Searches for all matching country/state/postcode tax rates.
public static find_rates ( array $args = [] ) : array
$args array
return array
    public static function find_rates($args = array())
    {
        $args = wp_parse_args($args, array('country' => '', 'state' => '', 'city' => '', 'postcode' => '', 'tax_class' => ''));
        extract($args, EXTR_SKIP);
        if (!$country) {
            return array();
        }
        $postcode = wc_normalize_postcode(wc_clean($postcode));
        $cache_key = WC_Cache_Helper::get_cache_prefix('taxes') . 'wc_tax_rates_' . md5(sprintf('%s+%s+%s+%s+%s', $country, $state, $city, $postcode, $tax_class));
        $matched_tax_rates = wp_cache_get($cache_key, 'taxes');
        if (false === $matched_tax_rates) {
            $matched_tax_rates = self::get_matched_tax_rates($country, $state, $postcode, $city, $tax_class);
            wp_cache_set($cache_key, $matched_tax_rates, 'taxes');
        }
        return apply_filters('woocommerce_find_rates', $matched_tax_rates, $args);
    }

Usage Example

 public function set_base_tax_rates($rates, $tax_class)
 {
     $location = WC_Tax::get_tax_location($tax_class);
     if (in_array($tax_class, array('virtual-rate', 'virtual-reduced-rate')) && isset($location[0]) && sizeof($location) === 4 && $location[0] !== WC()->countries->get_base_country()) {
         list($country, $state, $postcode, $city) = $location;
         $rates = WC_Tax::find_rates(array('country' => $country, 'state' => $state, 'postcode' => $postcode, 'city' => $city, 'tax_class' => $tax_class));
     }
     return $rates;
 }
All Usage Examples Of WC_Tax::find_rates