WC_Tax::get_tax_location PHP Method

get_tax_location() public static method

Used by get_rates(), get_shipping_rates().
public static get_tax_location ( $tax_class = '' ) : array
$tax_class string Optional, passed to the filter for advanced tax setups.
return array
    public static function get_tax_location($tax_class = '')
    {
        $location = array();
        if (!empty(WC()->customer)) {
            $location = WC()->customer->get_taxable_address();
        } elseif (wc_prices_include_tax() || 'base' === get_option('woocommerce_default_customer_address') || 'base' === get_option('woocommerce_tax_based_on')) {
            $location = array(WC()->countries->get_base_country(), WC()->countries->get_base_state(), WC()->countries->get_base_postcode(), WC()->countries->get_base_city());
        }
        return apply_filters('woocommerce_get_tax_location', $location, $tax_class);
    }

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::get_tax_location