Menu Close

WooCommerce: Set Customer Default Tax Location

default

The WooCommerce settings allow you to define the default customer tax location (“Calculate tax based on” -> “Shop base address“). In this case, when a guest customer enters the checkout, tax will be calculated based on the store address.

The problem is that this option is unusual – businesses require the “Calculate tax based on” -> “Customer billing address” option in most cases.

So, today, we will be setting the default tax location when “Customer billing address” has been chosen AND the customer is either logged out (so, no billing address is set) or logged in but have no saved address (for example, a brand new customer). Enjoy!

It’s unusual to pick the “Shop base address” option for establishing the tax amounts. The snippet below will define a default tax location when “Customer billing address” is chosen instead and the customer has no billing address yet.

PHP Snippet: Set Customer Default Billing Country for Tax Calculations @ WooCommerce Checkout

/**
 * @snippet       Set Customer Default Tax Location
 * @how-to        Get CustomizeWoo.com FREE
 * @author        Rodolfo Melogli
 * @compatible    WooCommerce 8
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */

add_filter( 'woocommerce_get_tax_location', 'bbloomer_customer_default_tax_location', 9999, 3 );

function bbloomer_customer_default_tax_location( $location, $tax_class, $customer ) {
    if ( $customer && ! $customer->get_billing_country() ) {
        return array( 'US', '', '', '' );
    }
    return $location;
}

Note: you can even set the default state, postcode and city by using the 3 array values after the country code e.g. ( ‘US’, ‘CA’, ‘90210’, ‘Beverly Hills’ )

View Source
Posted in WooCommerce Tips