iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Antihost offers managed WordPress hosting with free migration, one-click staging and a 14-day free trial.
To set up taxes in WooCommerce, enable tax calculations, choose whether your catalog prices include tax, select the address used for tax calculations, create rates for each jurisdiction, assign a tax class to every taxable product, and place test orders before launch. The settings are under WooCommerce > Settings > Tax, but that Tax tab is hidden until tax calculations are enabled in WooCommerce > Settings > General.
Use the instructions below as a configuration guide, then confirm your obligations and rates with a qualified tax professional. Tax rules depend on the jurisdictions where you are registered or have a collection obligation, and WooCommerce labels or defaults can change between versions.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →What WooCommerce tax settings control
WooCommerce does not decide where your business must collect tax. It applies the rules and rates you configure. Four choices determine most order totals:
- Whether the prices you enter are tax-inclusive or tax-exclusive.
- Which address determines the applicable jurisdiction.
- Which tax class applies to products and shipping.
- Which rate rows match a customer’s country, state, postcode and city, and how their priorities are evaluated.
A correct setup therefore requires both store-wide settings and product-level assignments. A rate can exist in the Tax settings and still never apply if a product is marked None or uses a different class.
#1 Best Overall
Before you configure anything
Confirm your jurisdictional obligations
Make a list of the countries, states or provinces, cities and postal regions where you are required to collect tax. Rates entered manually do not update when laws change, so record who will review them and how often. WooCommerce should be treated as the calculation and display layer, not as legal advice.
Check the installed WooCommerce version
Field labels and default values can change between WooCommerce releases. Match the labels in this guide to the controls shown in your installation. If an extension supplies automated tax, it may hide, lock or replace some core controls.
Free tools Windows power users keep installed
One-click scans. No signup required.
Decide how customers should see prices
Choose an inclusive or exclusive pricing model before entering products in bulk. Changing this choice later changes the way existing catalog prices are interpreted, so document the decision for anyone who imports or edits products.
Step 1: Enable tax calculations
- Open WooCommerce > Settings > General in WordPress.
- Find the option to enable tax rates and calculations and turn it on.
- Save the changes.
- Reopen WooCommerce settings and select the new Tax tab.
If the Tax tab does not appear, return to General, verify that the tax-calculation option was saved, and reload the settings page. A tax extension can also change which controls are visible.
Step 2: Configure Tax options
Go to WooCommerce > Settings > Tax > Tax options. Work through these settings in order; the selections affect every rate and product.
Prices entered with tax
Choose one of the two labels:
- Yes, I will enter prices inclusive of tax: the number entered for a product already contains the tax portion.
- No, I will enter prices exclusive of tax: the number entered is the pre-tax price, and WooCommerce adds the applicable tax.
The official example illustrates the difference with a £9.99 product and a 20% UK rate. In inclusive mode, WooCommerce splits the displayed £9.99 into approximately £8.325 base price and £1.665 tax. In exclusive mode, entering £8.325 produces a £9.99 customer price after 20% tax is added. The displayed result can be rounded for currency presentation.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →TaxCloud recommends exclusive pricing because the underlying item price remains consistent when customers in different states or jurisdictions receive different rates; that is a vendor recommendation, not a WooCommerce default. Details are available in TaxCloud’s WooCommerce sales-tax setup guide.
Calculate tax based on
Select the address WooCommerce should use when matching a rate:
- Customer shipping address: the official WooCommerce documentation identifies this as the default. It requires the customer to provide a shipping address.
- Customer billing address: uses the billing country, state, postcode and city supplied by the customer.
- Shop base address: always uses the store’s configured location, regardless of the customer’s destination.
Shipping- and billing-address options cannot calculate a destination-specific rate until the corresponding address exists in the cart or checkout. TaxCloud notes that most U.S. states require tax based on the customer’s shipping address and recommends that option for those cases; verify the rule for every jurisdiction in which you collect.
Shipping tax class
Choose how shipping lines inherit a class:
- Tax class based on cart items: the default option described in the setup guidance; shipping follows the relevant items in the cart.
- Standard
- Reduced rate
- Zero rate
If your jurisdiction taxes delivery differently from the products being shipped, select the class that reflects that rule instead of relying on the cart-item default.
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchDisplay prices in the shop and during cart and checkout
Set both display controls to agree with Prices entered with tax. If you enter inclusive prices but display them as exclusive, or make the opposite combination, customers can see inconsistent totals and apparent rounding differences. The Use recommended settings button aligns these three controls automatically; review the result before saving.
Rounding
The rounding control determines whether tax is rounded per line item or later at the cart subtotal. TaxCloud advises leaving the per-item rounding option unchecked so rounding occurs at the cart subtotal. The official default for this control is not established here, so inspect the value in your installed version and apply the method required by your accounting process and jurisdiction.
Step 3: Create tax rates
After saving Tax options, open a class such as Standard rates, Reduced rate or Zero rate. Select Insert row and complete a row for each applicable rule.
| Field | What to enter or understand |
|---|---|
| Country code | A two-letter ISO country code. Leave blank to match all countries, if that broad match is intentional. |
| State code | The state or province code used by the jurisdiction. Leave blank when the rate is not restricted by state. |
| Postcode | A specific postcode, a postcode pattern or a blank value for all postcodes, using the matching syntax supported by your WooCommerce version. |
| City | A city restriction, or blank when the rate applies throughout the selected area. |
| Rate % | The percentage tax rate, entered as a numeric percentage. |
| Tax name | The label shown in order totals and tax reports, such as the name required by your jurisdiction. |
| Priority | The order in which matching rows are evaluated. Two applicable rates with the same priority do not both apply; give separate priorities when both a state rate and a local rate must be charged. |
| Compound | Use only for a tax-on-tax rule, such as some Canadian provincial arrangements, and confirm the treatment locally. |
| Shipping | Indicates whether the rate also applies to shipping. |
Insert every needed jurisdictional row, then save the class. A blank country field is deliberately broad: use it only when the same rule really applies to all countries that can order from the store.
Understand priorities with an example
Suppose a state rate and a city surcharge should both apply. Give the state row one priority and the city row another. If both rows share a priority, WooCommerce will apply only one matching rate at that priority instead of adding both. Check the resulting order total with a destination that matches both rows.
Import a CSV when you have many rows
For a large rate list, use the class’s Import CSV function rather than entering rows one at a time. Prepare the file using the columns and value formats accepted by your WooCommerce version, import it from the tax-class rates page, and inspect several imported rows before testing checkout.
Step 4: Add custom tax classes
WooCommerce includes Standard, Reduced Rate and Zero Rate classes by default. To create another class, type its name in the Additional tax classes box in Tax options, using one class per line as indicated by the field. Save the settings. The new class then appears as its own rates section where you can insert or import rows.
Use a separate class when a product group follows a genuinely different set of rates. Do not create multiple names for the same rule merely for organization; each extra class increases the number of rate lists that must be maintained.
Step 5: Assign tax status and class to products
Configure an individual product
- Open Products and edit the product.
- In the Product data panel, open General.
- Set Tax status to the appropriate value: Taxable, Shipping only or None.
- Choose the required Tax class, including Standard or a custom class.
- Update the product.
Taxable allows the product price to receive the selected class’s rate. Shipping only excludes the item price while allowing tax treatment on shipping. None prevents tax from being applied to that product. Confirm that the status matches the legal treatment of the item rather than relying on the product’s category name.
Bulk-edit a catalog
Use the Products list and its bulk-edit controls to assign a tax status and tax class to multiple products. The available status choices are Taxable, Shipping only and None. Filter the selection carefully so one bulk action does not overwrite products that belong to different classes, then spot-check representative products.
Manual rates or automated tax calculation?
Manual WooCommerce rates provide direct control over classes, priorities and matching fields. They also make you responsible for monitoring regulatory changes and updating every affected row. Automated tax extensions can reduce that maintenance, but they may require an external account and can change the settings interface.
| Decision factor | Manual rates | Automated extension |
|---|---|---|
| Keeping rules current | You update rates and jurisdiction changes yourself; manually entered rates do not update automatically. | The service may maintain rates, subject to its coverage and update policy. |
| Control | Direct control of country, state, postcode, city, percentage, priority, compound and shipping fields. | Some controls may be hidden, locked or replaced by the extension. |
| Account requirements | Uses the WooCommerce settings described above. | The WooCommerce Tax plugin connects WordPress cloud services through a Jetpack/WP.com account, according to secondary setup guides; verify current requirements before installation. |
| Coverage | Limited to the jurisdictions and rows you create. | Depends on the extension’s supported jurisdictions and service rules. |
| Cost | Not stated in the setup guidance. | Not stated in the setup guidance; check the current extension terms. |
Choose the approach that fits your compliance process. An automated service is not a substitute for determining where you must register or collect tax, and a manually maintained table is not “set and forget.”
Step 6: Test before going live
Save all settings before creating test orders. Use more than one destination so you test both matching and non-matching rows.
- Create a test order with the shop’s base address and verify the expected class, rate and tax label.
- Use a destination that should receive a different state or provincial rate.
- Use a destination that should receive a local surcharge and confirm that priority settings apply both rates when required.
- Test a postcode or city-specific row, including a nearby value that should not match.
- Add taxable, shipping-only and non-taxable products to separate orders and compare line totals.
- Check shipping tax with each shipping class you use.
- Compare the displayed shop price, cart price, checkout total and order details when prices are inclusive, then repeat with an exclusive-price test product if both modes are part of your workflow.
- Review the order in WooCommerce after payment or a simulated payment and confirm the stored tax lines.
Record the addresses, products and expected totals used in testing. Repeat the tests after changing a rate, class, display mode or tax-calculation address.
Troubleshooting common WooCommerce tax problems
The Tax tab is missing
Enable tax rates and calculations under WooCommerce > Settings > General, save, and reload the settings. If an automated extension is active, check its documentation because it may replace the native tab or controls.
The product is not taxed
Open the product’s Product data > General panel. Confirm that Tax status is not None, the intended class is selected, and at least one rate row matches the customer’s address. A rate in the wrong class cannot apply to a product assigned to another class.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
The total is higher or lower than expected
Check whether the product price was entered inclusive or exclusive, then compare that choice with both display settings. Verify the address basis and inspect the rate’s priority, compound and shipping fields. Differences of a cent can result from cart-subtotal versus per-item rounding.
Only one of two rates is applied
Inspect the priority column. Matching rows at the same priority do not both apply. Assign different priorities to the state and local rows when the jurisdiction requires both.
Shipping tax is wrong
Review Shipping tax class in Tax options, then check the Shipping checkbox in each relevant rate row. A product’s class and the selected shipping-class behavior must agree with the local rule.
Rates become outdated
Manual rates require a maintenance schedule. When a jurisdiction changes, update or replace the affected rows, test historical and new destinations, and retain a record of the effective date. If you use automation, verify that the service covers the jurisdictions you sell into and that its account connection remains active.
Recommended Free Tools
Launch and maintenance checklist
- Tax calculations are enabled and the Tax tab is visible.
- Inclusive or exclusive pricing is documented and matches both display settings.
- The calculation address is appropriate for each jurisdiction and checkout collects the required address.
- Shipping tax class and shipping flags match your delivery rules.
- Every tax class has complete country, state, postcode, city, rate, name and priority data.
- Compound rows are used only where tax-on-tax treatment is required.
- Products have the correct tax status and class, including bulk-edited items.
- Test orders cover multiple addresses, classes, shipping and rounding.
- A person is responsible for reviewing manual rates whenever regulations change.
- Your accountant or tax adviser has reviewed the configuration for the jurisdictions in which you collect.
Key takeaway
WooCommerce tax setup is a chain: enable calculations, define how prices and addresses are interpreted, build matching rate rows with deliberate priorities, assign each product a tax status and class, and verify real checkout scenarios. The calculation engine can only be as accurate as the jurisdiction data and product assignments you maintain.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

