This website uses cookies

Our website, platform and/or any sub domains use cookies to understand how you use our services, and to improve both your experience and our marketing relevance.

How to Set Up WooCommerce Tax: Settings, Rates, and Troubleshooting (2026)

Updated on January 12, 2022

15 Min Read

Key Takeaways

  • WooCommerce has built-in tax settings for manual rate configuration, but automated tax calculation requires the official WooCommerce Tax plugin.
  • Tax rates are defined by country and state, down to ZIP code and city if needed. Bulk CSV import handles most work for stores covering many tax regions.
  • Tax exemptions in WooCommerce are controlled through tax classes (Zero Rate), not a separate exemptions panel.
  • The three most common tax problems, not showing in cart, not calculating, and not applying to shipping, each trace back to a different cause.
  • Role-based tax rates need only a small PHP function added to functions.php. No plugin required for basic setups.

One of those problems that pops up late is getting the tax settings wrong on a WooCommerce store. Perhaps a return that was filed incorrectly. Or a customer wants to know why the total at checkout went up without any explanation. After the South Dakota v. Wayfair ruling, new economic nexus laws in the US say that sellers must collect sales tax in states where they meet certain sales thresholds, even if they don’t have a warehouse or office there. Each country has its own rules for VAT and GST. If you set things up wrong, you could end up with refund disputes or fines from the government.

This guide goes over everything you need to know about setting up taxes in WooCommerce, including how to turn them on, set rates, handle exemptions, use role-based logic, and fix the problems that make taxes not show up at all. There is also a part about plugins that you might want to think about when managing rates by hand is no longer possible.

Why Tax Rules Matter in WooCommerce

WooCommerce tax rules decide what rate to use for what transaction and when. If they aren’t set up right, one of two things usually happens: either taxes aren’t collected when they should be, or they are applied differently to different products and customer locations.

Wayfair changed things a lot for sellers in the US. Economic nexus thresholds, which are usually $100,000 in sales per year or 200 transactions in a state, make sellers responsible for collecting taxes in states where they don’t have a warehouse, an office, or any staff. Since 2018, most states have agreed to these limits. If you get the rate configuration wrong at that level, you could get in trouble with the law.

Tax display has a direct effect on conversion, not just compliance. Charges that show up at checkout without warning make people more likely to leave. When a store lists prices in its catalog that include tax but then adds tax at checkout, it confuses customers and makes them less likely to buy. The tax configuration doesn’t just control the math on the back end; it controls the whole pricing experience for the customer.

💡 Tip: WooCommerce tax settings apply store-wide by default. Product-level tax class overrides are available per product under the “Tax” tab in the product editor, useful for items that fall under reduced or zero-rate categories.

Does WooCommerce Calculate Sales Tax Automatically?

Out of the box: no. WooCommerce’s native tax system is manual. Rates are entered by the store owner, assigned to specific regions, and applied based on the customer’s billing or shipping address. For a store selling to a handful of states or countries, that is manageable.

For stores with broader reach, automated calculation is handled through the WooCommerce Tax plugin (available free at WordPress.org, formerly listed as WooCommerce Shipping & Tax). Once the plugin is active and connected to a Jetpack account, tax rates are calculated in real time using geolocation data and kept up to date automatically. There is no manual rate entry required.

What the plugin does, technically, is send the cart contents and customer address to a remote API that returns the applicable rate. The rate is then applied to the order. Because the rates are maintained externally, changes in state or local tax law are reflected without any action on your part.

Third-party plugins like TaxJar and Avalara AvaTax operate on the same principle but with additional features: multi-jurisdiction filing support, economic nexus tracking, and detailed exemption management. Those are covered in the plugins section toward the end of this guide.

Fast, Managed WooCommerce Hosting on Cloudways

Deploy WooCommerce on cloud infrastructure built for performance. Choose your preferred cloud provider, scale resources when you need them, and get expert support around the clock.

How to Enable Taxes in WooCommerce

Taxes in WooCommerce are disabled by default. Here is how to switch them on:

  1. Go to WooCommerce > Settings > General.
  2. Scroll to the General options section and check Enable tax rates and calculations.
  3. Click Save changes.

Once saved, a Tax tab appears in the WooCommerce Settings menu. All tax configuration lives there from this point forward.

WooCommerce General Settings showing the Enable tax rates and calculations checkbox checked under Taxes and coupons.

How to Configure WooCommerce Tax Settings

Go to WooCommerce > Settings > Tax. What appears is the main tax options panel, followed by tabs for each tax class (Standard, Reduced Rate, Zero Rate).

1. Prices Entered With Tax

This setting controls whether the prices entered in the product editor are tax-inclusive or tax-exclusive.

  • “Yes, I will enter prices inclusive of tax”: the prices in your catalog already include tax. WooCommerce will back-calculate the tax portion for display and reporting purposes. Common in countries where tax-inclusive pricing is the norm, such as most of the EU.
  • “No, I will enter prices exclusive of tax”: prices in the catalog are net prices. Tax is added on top at checkout. The standard approach for B2B stores and US-based sellers.

2. Calculate Tax Based On

Three address options are available here:

  • Customer shipping address (default): tax is calculated based on where the order is being delivered.
  • Customer billing address: tax follows the billing location instead.
  • Store base address: tax is always calculated using the store’s own location, regardless of where the customer is. Useful for stores in jurisdictions where origin-based sourcing applies.

For most US stores operating under destination-based sourcing rules, the shipping address option is the correct one.

WooCommerce Tax options panel showing Prices entered with tax, Calculate tax based on, Shipping tax class, Rounding, and Additional tax classes settings.

3. Shipping Tax Class

By default, the tax class applied to shipping matches the tax class of the items being shipped. So if a product is in the Reduced Rate class, the shipping on that order is also taxed at the reduced rate. This is the correct behavior in most jurisdictions.

A portion of jurisdictions treat shipping differently: either exempt it from tax entirely, or apply a standard rate regardless of what is in the cart. For those cases, a specific tax class can be selected here. Check your local rules before changing this from the default.

4. Round Tax at Subtotal Level, Instead of Rounding per Line

When this is disabled, WooCommerce rounds the tax amount on each individual line item before summing. When enabled, all line item taxes are summed first and the rounding happens once on the total.

The difference matters in some jurisdictions where tax rounding rules are specified by law. If your jurisdiction requires subtotal-level rounding, enable this option.

5. Additional Tax Classes

WooCommerce comes with three tax classes out of the box: Standard, Reduced Rate, and Zero Rate. Each class is a container for its own set of rates. Clicking a class name in the settings opens that class’s rate table.

Additional classes are created in this field, one per line. Here is a scenario where that is useful: a store selling both general goods and food items, where food is taxed at a different rate than everything else. A “Food” tax class can be added here and assigned a separate rate table.

6. Display Prices in the Shop

Controls whether catalog-facing prices include or exclude tax. The options are Including tax and Excluding tax. This setting is independent of whether prices are stored inclusive or exclusive. WooCommerce does the conversion in the display layer.

7. Display Prices During Cart and Checkout

Same as above, but for the cart and checkout pages specifically. It is possible, and sometimes deliberate, to show prices excluding tax in the catalog and including tax during checkout. Retailers targeting both consumer and trade buyers sometimes do this.

8. Price Display Suffix

Optional text shown after each price. Common uses are “incl. VAT”, “excl. tax”, or similar. Two placeholder values are available: {price_including_tax} and {price_excluding_tax}, which display the calculated inclusive or exclusive price dynamically next to each product price.

9. Display Tax Totals

At checkout, multiple tax rates applied to the same order can be shown either as a single combined total or as separate line items, one per rate. Stores charging both state and local tax, for example, may need to display these separately for compliance purposes.

How to Set Tax Rates in WooCommerce

Adding Rates Manually

Tax classes are displayed as tabs at the top of the Tax settings page. Click Standard Rates (or any other class) to open the rate table for that class.

Click Insert row to add a new rate. Each row takes the following values:

Field What to Enter
Country Code 2-letter ISO country code (e.g., US, GB, DE). Leave blank to match all countries.
State Code 2-letter state or province code (e.g., CA, NY). Leave blank to match the entire country.
ZIP / Postcode Specific postcodes this rate applies to. Wildcards and ranges are supported (e.g., 900* or 90210-90219). Leave blank for all postcodes.
City Semi-colon separated list of city names. Leave blank to apply to all cities in the state.
Rate % The tax percentage (e.g., 8.250 for 8.25%).
Tax Name Label shown to the customer (e.g., VAT, GST, Sales Tax).
Priority Only one rate per priority level is applied. When a state rate and a local rate both exist, assign them different priority numbers so both apply.
Compound When checked, this rate is applied on top of all other taxes already calculated; used for tax-on-tax situations in some Canadian provinces.
Shipping When checked, this rate also applies to the shipping cost on the order.

 

Importing Tax Rates via CSV

For stores operating across many states or countries, entering rates manually is impractical. WooCommerce accepts CSV imports directly in the rate table.

Here is how the import works:

  1. Go to WooCommerce > Settings > Tax > Standard Rates (or whichever class needs the rates).
  2. Click Import CSV at the bottom of the table.
  3. Upload a CSV file formatted with these columns in order: country_code, state_code, postcode, city, rate, tax_name, priority, compound, shipping, tax_class.
  4. Click Import. Existing rates are replaced by the import.

WooCommerce provides pre-built CSV files for US state tax rates in its documentation. These are a practical starting point for US sellers, though they do not include county or local rates. Those vary too granularly to maintain in a static file.

WooCommerce Standard tax rates table with Import CSV and Export CSV buttons highlighted in the top right corner.

WooCommerce Import tax rates screen with file upload field and Upload file and import button highlighted

💡 Tip: The CSV export button next to Import lets you download your current rate table. Useful as a backup before making bulk changes, or as a template for structuring new rate files.

Deleting Tax Rates

To remove individual rates: click the rows to select them (they highlight in yellow), then click Remove selected row(s) and save.

To wipe all rates at once: go to WooCommerce > System Status > Tools and use the Delete all WooCommerce tax rates option. This clears every rate across all tax classes simultaneously. There is no undo. Export a CSV backup first.

How to Handle Tax Exemptions in WooCommerce

WooCommerce does not have a dedicated exemption panel. What it has instead is the Zero Rate tax class: a class with a 0% rate, which effectively makes any product or customer assigned to it tax-exempt.

Here is how exemptions are handled in practice:

Product-Level Exemptions

Some products are tax-exempt by category: children’s clothing in certain UK regions, prescription medications, groceries in some US states. For those:

  1. Go to the product editor in Products > All Products.
  2. Scroll to the Product data panel and click the Tax tab.
  3. Set Tax class to Zero Rate.

All orders containing that product will apply a zero rate to it, regardless of what other items are in the cart.

Exemptions for Individual Customers

It’s a little more complicated to exempt certain customers. The native way to do this is to use role-based filtering (which we’ll talk about in the next section) to give Zero Rate to certain user roles. A plugin is the best way to get more control by letting you exempt individual customers instead of whole roles. WooCommerce Tax Exempt (WISDM) and WooTax both take care of exemption certificates for each customer.

Exemptions for B2B and VAT Numbers

Stores that sell to businesses in the EU usually don’t have to pay VAT on sales made within the EU. Plugins like EU VAT Number (by WooCommerce) check the buyer’s VAT number at checkout and automatically take off the tax when the number is confirmed as valid.

Apply Tax Rates Based on Customer Role

If you need to charge different tax rates based on the user’s role, like charging regular customers the normal tax rate or giving administrators and wholesale buyers a tax break, you can add the following code to the active theme’s functions.php file takes care of it:

functions.php

function wc_diff_rate_for_user( $tax_class, $product ) {  
 if ( is_user_logged_in() && current_user_can( 'administrator' ) ) {  
  $tax_class = 'Zero Rate';  
 }  
 return $tax_class;  
}  
add_filter( 'woocommerce_product_tax_class', 'wc_diff_rate_for_user', 1, 2 );

In the example above, the Zero Rate class is applied to any cart belonging to an administrator. Substituting the role in current_user_can() changes which group is affected:

  • current_user_can( 'shop_manager' ): applies to shop managers
  • current_user_can( 'subscriber' ): applies to subscribers
  • current_user_can( 'wholesale_customer' ): applies to a custom wholesale role

The tax class switch happens automatically because this filter runs on every cart calculation. There is no need for manual intervention with each order. The Groups plugin for WooCommerce works with this method for stores with more complicated role structures. It lets groups, not just individual roles, get exemptions.

💡 Tip: Adding this PHP function directly to functions.php means it disappears on theme updates. A code manager plugin like WPCode keeps it intact and independent of whatever theme is active.

How to View WooCommerce Tax Reports

WooCommerce’s older Reports section has been replaced by the Analytics panel, available in WooCommerce 4.0 and above. Tax reporting lives there.

To access it:

  1. Go to WooCommerce > Analytics > Taxes.
  2. Use the date range picker in the top right to set the reporting period.

The Taxes report shows a breakdown by tax rate code, including the number of orders each rate applied to and the total tax collected. Two views are available:

  • By Tax Code: lists each rate separately, useful for stores with multiple rates across jurisdictions.
  • By Date: aggregates tax collected across all rates over time, useful for reconciliation against filing periods.

For export, the download icon in the top right of the report generates a CSV. This is the document you would use to reconcile against a state’s filing portal, or hand to an accountant.

WooCommerce Analytics Taxes report showing total tax, order tax, shipping tax, and a breakdown by tax name with rates and order counts.

💡 Tip: If the Taxes option is missing from Analytics, it usually means taxes are not yet enabled in WooCommerce Settings > General. Enable them, then refresh the Analytics menu.

WooCommerce Tax Not Working: Troubleshooting

Three issues account for the majority of tax problems on WooCommerce stores. Each has a different cause.

Tax Not Showing in Cart

The most common reasons a tax is configured but not appearing in the cart:

  • The address of the customer doesn’t match any of the rates that have been set up. WooCommerce only applies a rate if the customer’s location matches a row in the rate table. The cart doesn’t show any tax if there isn’t a rate that covers that area. Make sure the rate table has the right country and state codes for the areas you sell to. If you leave the country field blank in a rate row, it will apply to everyone, which is like a catch-all.
  • The tax status of the item is “None.” Under the Tax tab in the product editor, each product has a Tax Status field. If it says “None,” that product won’t have a rate applied to it, no matter what the global settings say. Make it “Taxable.”
  • “Calculate Tax Based On” is set to store base address, but the customer has not entered a billing/shipping address yet. Before an address is entered at checkout, WooCommerce may default to the store location for rate lookup. If no rate covers that location, nothing shows in the cart until the address is filled in.

Tax Not Calculating Correctly

Here the tax shows up, but the amount is wrong. A few things to check:

  • Prices entered with tax vs. prices excluding tax mismatch. If prices are stored inclusive of tax while the settings are configured as exclusive, or the reverse, the displayed and charged amounts will not line up with expectations. Verify the “Prices Entered With Tax” setting matches how your product prices were actually entered.
  • Rounding differences. Whether rounding happens per-line or at the subtotal level can produce small but noticeable differences in the total tax. If invoices show minor discrepancies, check the “Round tax at subtotal level” setting and align it with your jurisdiction’s rules.
  • Priority conflicts between multiple rates. When two rates are assigned the same priority for overlapping regions, only one is applied. Separate state and local rates should have different priority values (e.g., state = priority 1, county = priority 2).

Tax Not Applying to Shipping

Your position in results for this issue is determined by one setting: the Shipping checkbox on each individual tax rate row, and the Shipping Tax Class option in the Tax Options panel.

  • Check the rate row in the rate table: the Shipping column checkbox must be enabled for that rate to apply to shipping costs.
  • In Tax Options, the Shipping Tax Class should either be set to “Shipping tax class based on cart items” (default) or a specific tax class that includes rates with the Shipping box checked.
  • If tax applies to products but not to shipping, the likely fix is enabling the Shipping checkbox on the relevant rate rows.

WooCommerce Not Charging Tax After Enabling

Enabling taxes in General Settings is step one, but it’s not sufficient on its own. The full checklist:

  1. Tax enabled under WooCommerce > Settings > General.
  2. At least one rate row exists in the appropriate tax class (Settings > Tax > Standard Rates).
  3. The product’s Tax Status in the product editor is set to Taxable, not None.
  4. The customer’s address at checkout falls within the region covered by a rate row.
  5. No caching layer is serving a stale version of the cart page. Clear server and plugin caches after any tax setting change.

WooCommerce Hosting That Keeps Up With Your Store

Cloudways managed hosting gives WooCommerce stores the infrastructure to handle traffic spikes, plugin-heavy setups, and checkout-heavy workloads, without the server management overhead.

Best WooCommerce Tax Plugins

Manual rate management works for simple setups. Beyond a certain number of jurisdictions, automated plugins become a practical necessity. Here are the most established options:

1. WooCommerce Tax (Official Plugin)

Available free at WordPress.org. Handles automated rate calculation via Jetpack, using real-time data sourced from Avalara. Setup requires a WordPress.com / Jetpack account, but there are no per-transaction charges. For US sellers with moderate complexity, this is the lowest-cost starting point for automation.

2. TaxJar

A dedicated sales tax automation tool with a WooCommerce integration. Beyond rate calculation, TaxJar handles economic nexus tracking, filing in connected states (AutoFile), and generates a detailed transaction-level report. The reporting layer is notably cleaner than the native WooCommerce Analytics view. Pricing is transaction-volume based.

3. Avalara AvaTax for WooCommerce

The enterprise-grade option. AvaTax is the same engine behind several other plugins’ automated rates, accessed directly here with the full feature set: product taxability mapping, exemption certificate management, international VAT/GST calculation, and compliance reporting. The pricing reflects the scope; it is aimed at high-volume and mid-market sellers.

4. Simple Sales Tax (TaxCloud)

Uses TaxCloud’s API to calculate rates for US transactions. The plugin is free; TaxCloud charges a small percentage per transaction (and offers free filing in states where it has a contract). Worth considering for US-only sellers who want automated calculation without TaxJar’s subscription cost.

5. EU VAT Number

A WooCommerce-built plugin for stores selling to EU businesses. It validates VAT numbers entered at checkout via the EU’s VIES system and removes tax for verified business buyers. Handling of the reverse charge mechanism on B2B cross-border sales is also supported. Essential for EU-facing WooCommerce stores, and free.

6. YITH WooCommerce EU VAT

An alternative to the above for EU VAT handling, with additional options for stores that also need to display OSS (One Stop Shop) compliance information. The premium version adds more granular control over which customer types are prompted for a VAT number.

Does WooCommerce collect taxes automatically?

A) Not by default. WooCommerce’s built-in system requires manual rate entry. Automated tax collection, where rates are calculated in real time based on customer location, requires either the official WooCommerce Tax plugin (free, via Jetpack) or a third-party service like TaxJar or AvaTax.

Does WooCommerce track sales tax?

A) Yes. Every taxed transaction is recorded, and tax totals are visible under WooCommerce > Analytics > Taxes. Reports can be filtered by date range and exported as CSV for filing or reconciliation purposes.

Why is tax not showing in the WooCommerce cart?

A) Three things to check first: (1) whether taxes are enabled in General Settings, (2) whether at least one rate exists in the tax class for the customer’s region, and (3) whether the product’s Tax Status is set to Taxable in the product editor. Any one of these being misconfigured is enough to suppress tax display entirely.

Why is WooCommerce not charging tax on shipping?

A) The Shipping checkbox on the relevant rate row in the rate table needs to be enabled. Beyond that, the Shipping Tax Class option under Tax Options should be set to either “Shipping tax class based on cart items” or a specific class that includes rates with the Shipping box checked.

How do I import WooCommerce tax rates via CSV?

A) Go to WooCommerce > Settings > Tax > Standard Rates (or another class), then click Import CSV at the bottom of the table. The file should have columns for: country_code, state_code, postcode, city, rate, tax_name, priority, compound, shipping, and tax_class. WooCommerce’s documentation provides pre-built CSV files for US state rates as a starting point.

How do tax exemptions work in WooCommerce?

A) The Zero Rate tax class functions as the exemption mechanism in WooCommerce. Assign it to a product in the product editor to exempt that product from tax. For customer-level exemptions, role-based filtering via functions.php works for role-wide cases; per-customer exemption certificates require a dedicated plugin like WooCommerce Tax Exempt or WooTax.

Does WooCommerce calculate sales tax for US states?

A) Yes, but the accuracy depends on what is configured. WooCommerce can apply the correct state rate if rates are entered in the Standard Rates table. Local and county rates need to be added separately, as they vary by ZIP code. For full US sales tax compliance across multiple states, an automated plugin like TaxJar or the WooCommerce Tax plugin is the more reliable choice.

Share your opinion in the comment section. COMMENT NOW

Share This Article

Zain Imran

Zain is an electronics engineer and an MBA who loves to delve deep into technologies to communicate the value they create for businesses. Interested in system architectures, optimizations, and technical documentation, he strives to offer unique insights to readers. Zain is a sports fan and loves indulging in app development as a hobby.

×

Webinar: How to Get 100% Scores on Core Web Vitals

Join Joe Williams & Aleksandar Savkovic on 29th of March, 2021.

Do you like what you read?

Get the Latest Updates

Share Your Feedback

Please insert Content

Thank you for your feedback!

Do you like what you read?

Get the Latest Updates

Share Your Feedback

Please insert Content

Thank you for your feedback!

Want to Experience the Cloudways Platform in Its Full Glory?

Take a FREE guided tour of Cloudways and see for yourself how easily you can manage your server & apps on the leading cloud-hosting platform.

Start my tour