{"id":353502,"date":"2026-08-20T19:32:18","date_gmt":"2026-08-20T19:32:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/tax-free-weekend-for-woocommerce\/"},"modified":"2026-08-20T19:31:42","modified_gmt":"2026-08-20T19:31:42","slug":"tax-free-weekend-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/tax-free-weekend-for-woocommerce\/","author":23506605,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.1","stable_tag":"1.1.1","tested":"7.0.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Tax Free Weekend for WooCommerce","header_author":"RoundBorders","header_description":"Make qualifying products sales-tax exempt during US state sales tax holidays (\"tax free weekends\"). Choose days, an optional auto-shutoff date, price cap, states, and excluded products or categories. Optionally shows customers how much tax they saved.","assets_banners_color":"34452b","last_updated":"2026-08-20 19:31:42","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.roundborders.com\/tax-free-weekend-for-woocommerce","header_author_uri":"https:\/\/www.roundborders.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":35,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","faq","changelog"],"tags":{"1.1.1":{"tag":"1.1.1","author":"roundborders","date":"2026-08-20 19:31:42"}},"upgrade_notice":{"1.1.1":"<p>The admin reminder shown while the promotion is enabled is now scoped to relevant screens and can be hidden.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3657686,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3657686,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3657686,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3657686,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.1"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Settings section under WooCommerce \u2192 Settings \u2192 Tax \u2192 Tax free weekend.","2":"The persistent admin notice while the promotion is enabled.","3":"A mixed cart: qualifying item tax free, non-qualifying item taxed."}},"plugin_section":[],"plugin_tags":[276709,2012,66629,276710,286],"plugin_category":[45],"plugin_contributors":[264898],"plugin_business_model":[],"class_list":["post-353502","plugin","type-plugin","status-publish","hentry","plugin_tags-sales-tax-holiday","plugin_tags-tax","plugin_tags-tax-exempt","plugin_tags-tax-free-weekend","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-roundborders","plugin_committers-roundborders"],"banners":{"banner":"https:\/\/ps.w.org\/tax-free-weekend-for-woocommerce\/assets\/banner-772x250.png?rev=3657686","banner_2x":"https:\/\/ps.w.org\/tax-free-weekend-for-woocommerce\/assets\/banner-1544x500.png?rev=3657686","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/tax-free-weekend-for-woocommerce\/assets\/icon-128x128.png?rev=3657686","icon_2x":"https:\/\/ps.w.org\/tax-free-weekend-for-woocommerce\/assets\/icon-256x256.png?rev=3657686","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Many US states hold an annual <strong>sales tax holiday<\/strong> \u2014 a \"tax free weekend\" during which certain products under a price threshold are exempt from sales tax (for example, Texas exempts qualifying items priced under $100 during its August holiday).<\/p>\n\n<p>This plugin automates that for WooCommerce. While the promotion is enabled, on the days you select, products at or under your price cap that ship to your selected states are <strong>not charged sales tax<\/strong>. Everything else in the cart is taxed normally \u2014 mixed carts are handled per line item.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>Master toggle<\/strong> \u2014 turn the promotion on and off with one checkbox.<\/li>\n<li><strong>Day selection<\/strong> \u2014 pick which days of the week the exemption applies (e.g. Friday\u2013Sunday), evaluated in your site's timezone.<\/li>\n<li><strong>Auto-shutoff date<\/strong> \u2014 optionally set a date after which the promotion deactivates automatically (it stays active through the end of that date). Leave it blank to keep it enabled until you turn it off.<\/li>\n<li><strong>Price cap<\/strong> \u2014 items at or under this price qualify (default 99.99, matching \"under $100\" rules). Compared per unit against the active (sale) price, pre-tax.<\/li>\n<li><strong>Multiple states<\/strong> \u2014 select one or more US states; the exemption applies when the customer's taxable (shipping) address is in one of them.<\/li>\n<li><strong>Product exclusions<\/strong> \u2014 search and exclude specific products or variations.<\/li>\n<li><strong>Category exclusions<\/strong> \u2014 exclude whole product categories; subcategories are excluded automatically.<\/li>\n<li><strong>Customer savings message<\/strong> \u2014 an optional banner on the cart and checkout pages tells customers exactly how much sales tax they're saving (e.g. \"you're saving $8.25\"), computed from your real tax rates. Classic cart\/checkout templates only.<\/li>\n<li><strong>Order audit trail<\/strong> \u2014 exempt line items and orders are flagged with hidden meta (<code>_rbtfw_exempt<\/code>, <code>_rbtfw_applied<\/code>) so you can report on holiday sales later.<\/li>\n<li><strong>Admin warning notice<\/strong> \u2014 while the promotion is enabled, a persistent notice in wp-admin reminds you that tax is not being charged on qualifying items.<\/li>\n<li><strong>Performance-first<\/strong> \u2014 zero database queries added to the storefront; all checks run from one autoloaded option in memory.<\/li>\n<li><strong>WP-CLI<\/strong> \u2014 <code>wp rbtfw status<\/code> and <code>wp rbtfw check &lt;product_id&gt; [--state=TX] [--day=saturday]<\/code> let you dry-run eligibility without waiting for the weekend.<\/li>\n<li>HPOS (High-Performance Order Storage) compatible.<\/li>\n<\/ul>\n\n<h4>How it works<\/h4>\n\n<p>Eligible items are assigned WooCommerce's built-in <strong>Zero rate<\/strong> tax class at calculation time. WooCommerce then handles mixed carts, refunds, order taxes, and tax reports natively \u2014 this plugin never performs its own totals math and never modifies your tax rate tables.<\/p>\n\n<h4>Developer filters<\/h4>\n\n<ul>\n<li><code>rbtfw_is_product_eligible<\/code> \u2014 final say on a product's eligibility after all built-in rules pass.<\/li>\n<li><code>rbtfw_taxable_location<\/code> \u2014 override the <code>[ country, state ]<\/code> used for the destination check.<\/li>\n<li><code>rbtfw_now<\/code> \u2014 override the \"current\" datetime (used by the WP-CLI dry-run, handy in tests).<\/li>\n<\/ul>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20this%20legal%20%2F%20tax%20advice%3F\"><h3>Is this legal \/ tax advice?<\/h3><\/dt>\n<dd><p>No. This plugin is a tool that changes how tax is charged in your store. <strong>You are responsible for confirming your state's holiday dates, price thresholds, and which product categories legally qualify \u2014 consult your tax advisor.<\/strong> State rules also contain nuances this plugin does not implement (see below).<\/p><\/dd>\n<dt id=\"which%20rules%20does%20the%20plugin%20not%20implement%3F\"><h3>Which rules does the plugin NOT implement?<\/h3><\/dt>\n<dd><p>Two known simplifications: (1) some states (e.g. Texas) count shipping\/delivery charges toward the item's price threshold and exempt shipping allocated to exempt items \u2014 this plugin compares the product price only and does not zero shipping tax; (2) some states let a coupon discount qualify an item that was over the threshold \u2014 this plugin compares the pre-coupon price. If these matter for your store, review with your tax advisor.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20automated%20tax%20services%3F\"><h3>Does it work with automated tax services?<\/h3><\/dt>\n<dd><p>No. If you use an automated tax calculation service (WooCommerce Tax \/ TaxJar \/ Avalara), tax is computed by the external service and the tax-class swap this plugin performs has no effect. It requires standard WooCommerce tax rate tables.<\/p><\/dd>\n<dt id=\"what%20if%20the%20customer%20hasn%27t%20entered%20an%20address%20yet%3F\"><h3>What if the customer hasn't entered an address yet?<\/h3><\/dt>\n<dd><p>No exemption is applied until a qualifying address is known (the safe default is to charge tax). As soon as the customer enters a shipping address in a selected state, qualifying items become tax free at cart\/checkout.<\/p><\/dd>\n<dt id=\"does%20the%20price%20cap%20apply%20per%20item%20or%20per%20cart%3F\"><h3>Does the price cap apply per item or per cart?<\/h3><\/dt>\n<dd><p>Per unit. Three $40 items qualify even though the line totals $120. For variable products, each variation's own price is compared.<\/p><\/dd>\n<dt id=\"what%20data%20does%20uninstalling%20remove%3F\"><h3>What data does uninstalling remove?<\/h3><\/dt>\n<dd><p>Uninstalling deletes the plugin's settings. The hidden order meta flags (<code>_rbtfw_exempt<\/code> on line items, <code>_rbtfw_applied<\/code> on orders) are intentionally kept \u2014 they are historical accounting records of orders that were placed tax free.<\/p><\/dd>\n<dt id=\"why%20don%27t%20i%20see%20the%20savings%20banner%3F\"><h3>Why don't I see the savings banner?<\/h3><\/dt>\n<dd><p>The banner renders on the classic cart and checkout pages (shortcode templates) only \u2014 the block-based cart\/checkout does not run the hooks it uses. It also only appears while it has something true to say: promotion enabled, an active day, a qualifying customer address, and at least one exempt item in the cart. It can be turned off entirely in the settings.<\/p><\/dd>\n<dt id=\"does%20it%20slow%20down%20my%20store%3F\"><h3>Does it slow down my store?<\/h3><\/dt>\n<dd><p>No. All eligibility checks read from one autoloaded option already in memory. The plugin adds zero database queries to the storefront.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Improved: the \"promotion is enabled\" admin reminder is now limited to the Dashboard, Plugins and WooCommerce screens instead of appearing site-wide, and is dismissible via the standard notice dismiss button (persisted per user). It reappears if the promotion's days, states, price cap or auto-shutoff date change, so a configuration is never silently forgotten, and it still disappears on its own once the promotion is switched off or its shutoff date passes.<\/li>\n<li>Improved: the \"WooCommerce is required\" notice is limited to the Dashboard and Plugins screens.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: optional customer savings banner on the classic cart and checkout pages (\"you're saving $X in sales tax\"), computed from your configured tax rates for the customer's address. Enabled by default; toggle in settings. New filter <code>rbtfw_savings_notice_html<\/code>.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: day selection, optional auto-shutoff date, price cap, multi-state selection, product and category exclusions (subcategories included automatically), order audit trail, admin warning notice, WP-CLI status\/check commands, HPOS compatibility.<\/li>\n<\/ul>","raw_excerpt":"Make qualifying products sales-tax exempt during US state sales tax holidays (&quot;tax free weekends&quot;).","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/353502","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=353502"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/roundborders"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=353502"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=353502"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=353502"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=353502"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=353502"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=353502"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}