PluginProbe
Tiered Pricing Table for WooCommerce / 8.1.0
Tiered Pricing Table for WooCommerce v8.1.0
8.1.0 8.0.2 7.1.7 7.1.5 7.1.4 7.1.1 6.5.0 6.4.0 6.1.0 trunk 1.0 1.1 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.2.0 2.2.1 2.2.2 2.2.3 2.3.0 2.3.1 2.3.2 All 92 releases
← All changes | readme.txt +54 -70 8.0.2 → 8.1.0 View file →
@@ -4,9 +4,9 @@
4 4 Tags: woocommerce, tiered pricing, dynamic price, price, wholesale
5 5 Requires at least: 5.0
6 6 Tested up to: 7.1
7 7 Requires PHP: 7.4
8 -Stable tag: 8.0.2
8 +Stable tag: 8.1.0
9 9 License: GPLv2 or later
10 10 License URI: https://www.gnu.org/licenses/gpl-2.0.html
11 11
12 12 Create bulk, wholesale, and quantity-based pricing in WooCommerce with flexible tables, role-based pricing, and powerful upsells.
@@ -182,107 +182,91 @@
182 182 Each order has the "recalculate with tiered pricing" button, which recalculates the cost according to the tiered pricing rules.
183 183
184 184 == Changelog ==
185 185
186 += 8.1.0 [2026-10-06] =
187 +* New: Pricing test (Settings → Advanced → Utilities): see what a customer pays for a product and which global rule is applied.
188 +* New: priority for global pricing rules; the editor shows the rules that override the one you edit.
189 +* New: start and end dates for global pricing rules.
190 +* New: Rule status box in the rule editor with the status, Suspend / Reactivate, priority, schedule and overriding rules.
191 +* New: "Include subcategories" switch and "Guests (not logged in)" role in global pricing rules.
192 +* Improvement: the rules list shows status, priority, scope and pricing in four columns and filters by status.
193 +* Improvement: rules that change nothing are marked "Skipped" and never block other rules.
194 +* Improvement: savings badge styles (text, pill, outline), positions and an "Auto" colour.
195 +* Improvement: faster layout configurator preview.
196 +* Improvement: filters for the discount decimals and the CSV rule separator; the CSV import accepts "20=100" and maps role columns automatically.
197 +* Fix: global rules created before 8.0.0 and never re-saved were ignored.
198 +* Fix: block cart quantity changes that break the minimum, maximum or step are rejected.
199 +
186 200 = 8.0.2 [2026-09-24] =
187 -* New: the catalog quantity box now works with the Product Button block too (Product Collection, block themes): it sits next to the button, the button adds the typed quantity, and Enter in the box adds to the cart.
188 -* Improvement: in the catalog the quantity box and the add-to-cart button share one line, with the button filling the rest of the row.
189 -* Improvement: no space above the catalog pricing and 20px below it, so the price and the tiers sit together in the product card.
190 -* Fix: block themes showed the catalog pricing, the badge and the quantity box a second time outside the product card's layout, which stretched the card; WooCommerce fires the classic loop hooks inside product template blocks as well, and the plugin now renders through the blocks only.
191 -* Fix: the catalog pricing and the badge no longer appear on the single product page of block themes, whose template uses the same blocks.
192 -* Fix: the integrated "Request a quote" row of the table layouts spans every column when custom columns are added to the table.
201 +* New: the catalog quantity box works with the Product Button block (Product Collection, block themes).
202 +* Improvement: in the catalog, the quantity box and the add-to-cart button share one line, and the tiers sit right under the price.
203 +* Fix: block themes no longer show the catalog pricing, badge and quantity box twice, nor on the single product page.
204 +* Fix: the integrated "Request a quote" row spans every column when the table has custom columns.
193 205
194 206 = 8.0.1 [2026-09-23] =
195 -* Improvement: PHP 8.1+ code compatibility: htmlspecialchars() and html_entity_decode() calls pass explicit flags (WooCommerce QIT code compatibility test).
196 -* Fix: the plugin no longer clears the "section" parameter on other WooCommerce settings tabs; since 7.2.0 this broke the REST API keys screen and saving webhooks, and could affect tax and shipping sections.
197 -* Improvement: security hardening from the WooCommerce QIT audit: every layout template output is escaped, server and request variables are sanitized, the plain-text quote e-mails escape field values, and the quote request endpoint verifies the REST nonce in its permission callback unless reCAPTCHA is configured.
207 +* Fix: the plugin no longer clears the "section" parameter on other WooCommerce settings tabs; since 7.2.0 this broke the REST API keys screen and saving webhooks.
208 +* Improvement: security hardening and PHP 8.1+ compatibility from the WooCommerce QIT audit: escaped template output, sanitized request variables, a nonce check on the quote request endpoint.
198 209
199 210 = 8.0.0 [2026-09-23] =
200 -* New: wholesale registration and approval, part of the "Non-Logged-In Users" module, now called "Wholesale & Guest Users": an application form via the [tiered_pricing_wholesale_registration] shortcode with a form builder (add, reorder and remove fields; label, type and required per field; text, paragraph, phone, e-mail, website, number, dropdown and checkbox types), an approval queue under WooCommerce → Wholesale Applications with approve, reject and bulk actions, automatic or manual approval, four WooCommerce e-mails (new application, received, approved, rejected), an "Apply for a wholesale account" link on the login form, a login redirect for wholesale customers, an optional terms checkbox, a honeypot and reCAPTCHA v3 with its own keys. Switched on under the new Wholesale settings tab.
201 -* New: private store, off by default. "Closed store" sends visitors to the login page except for My Account, the wholesale registration page and chosen pages. "Catalog visibility by role" adds a "Who can see" rule to every product and product category (everyone, only selected roles, everyone except selected roles; guests count as a role) for wholesale-only or retail-only catalogs. Hidden products leave the shop, search, related, upsell and cross-sell lists, menus, the sitemap and the Store API, cannot be bought, and their pages send guests to the login page or show a not-found page; hidden categories leave category lists, menus and their archives. The products list and the product categories list show a "Who can see" column, and the products list can be filtered by it.
202 -* New: cart rules by role (premium), off by default: a minimum order amount or quantity for the whole cart per role (guests count as a role, the strictest minimum applies), enforced in the cart and at checkout for the classic pages and the blocks with editable messages; and payment methods and shipping methods limited to selected roles, for example invoice payment for wholesale customers only or free shipping for retail only.
203 -* Improvement: the Guest Users options (hide prices, require login to purchase) moved from the General tab to the Wholesale tab, next to the other B2B settings; both belong to the same module now.
204 -* Improvement: the Tools tab merged into the Modules tab, now called Advanced: modules, roles management, data clean-up, cache and debug in one place. Old links to the Tools tab still open it.
205 -* Improvement: the experimental "WooCommerce Product Editor integration" module is no longer listed under Modules; a store that switched it on keeps it.
206 -* Fix: table design styles #1 to #6 no longer break a quantity range onto two lines when a tier label sits in the row; the label wraps under the quantity instead.
211 +* New: wholesale registration and approval: an application form with a form builder (shortcode [tiered_pricing_wholesale_registration]), an approval queue under WooCommerce → Wholesale Applications, automatic or manual approval, four WooCommerce e-mails, a link on the login form, a login redirect, an optional terms checkbox, a honeypot and reCAPTCHA v3.
212 +* New: private store, off by default: "Closed store" sends visitors to the login page, and "Catalog visibility by role" adds a "Who can see" rule to every product and category (guests count as a role). Hidden products and categories leave every list, menu, search, the sitemap and the Store API.
213 +* New: cart rules by role (premium), off by default: a minimum order amount or quantity per role, and payment and shipping methods limited to selected roles.
214 +* Improvement: the Guest Users options moved to the new Wholesale tab; the Tools tab merged into the Modules tab, now called Advanced.
215 +* Improvement: the experimental "WooCommerce Product Editor integration" module is no longer listed; a store that switched it on keeps it.
216 +* Fix: table styles #1 to #6 keep a quantity range on one line when a tier label sits in the row.
207 217
208 218 = 7.2.0 [2026-09-23] =
209 -* New: layout configurator with a live preview, for the product page, shop & category pages and the cart. Every layout, style, text and colour option in one place. It is an add-on: switch it off to get the classic settings rows back.
210 -* New: design styles: table "minimal" (#1) and "savings bar" (#5), blocks "cards" (#7) and "segmented" (#8), options "plan picker" (#4), "list with savings bar" (#5) and "steps" (#6), dropdown "pill" (#1), plain text "check list" (#1) and "one line" (#2). The former table style #1 is now #6.
211 -* New: layout options: discount format (percentage, amount or both), tier order, spacing, cell padding, discount badge colour, active tier left border.
212 -* New: shop & category pages: a bulk savings badge on the product image, "Where it shows" (product lists and categories), Product Collection block support, and tiers per grid item with a "+N more" link.
213 -* New: cart: the quantity in the upsell message is a one-click link to the next tier, an optional progress bar under it, and a "Total savings" row in the cart totals and the classic checkout.
214 -* Improvement: single-choice settings are chips with examples, the price calculation options show Off/On examples, and the text template editor is lighter.
215 -* Improvement: the "Show total price" options are free now.
216 -* Improvement: the Calculations tab is now the Price Calculation group on the General tab; Cache and Debug moved to the Tools tab.
217 -* Improvement: the "nowhere" position is gone; an existing "nowhere" setting behaves as automatic display switched off.
218 -* Improvement: default table cell padding for themes that leave cells unpadded, smaller badges in the compact layout, and new default texts for the "You Save" badge and the cart upsell message.
219 -* Fix: no crossed-out price and no "0% off" badge for a tier priced at the regular price.
220 -* Fix: quantity ranges use the site's number format and never show equal ends; the base row's unit name is singular for a minimum of 1.
221 -* Fix: table styles #2 and #6 tint the active row from the active tier colour without shifting it.
222 -* Fix: the dropdown starts with the base option selected and keyboard navigation focuses it; the Request a Quote prompt renders under the list.
223 -* Fix: the horizontal table's Request a Quote column keeps the row count with custom columns or without the discount row.
219 +* New: layout configurator with a live preview for the product page, shop & category pages and the cart. It is a module: switch it off to get the classic settings back.
220 +* New: ten design styles: table "minimal" and "savings bar", blocks "cards" and "segmented", options "plan picker", "list with savings bar" and "steps", dropdown "pill", plain text "check list" and "one line". The former table style #1 is now #6.
221 +* New: layout options: discount format, tier order, spacing, cell padding, discount badge colour, active tier left border.
222 +* New: shop & category pages: a bulk savings badge on the product image, "Where it shows", Product Collection block support, and tiers per grid item with a "+N more" link.
223 +* New: cart: a one-click link to the next tier in the upsell message, an optional progress bar, and a "Total savings" row.
224 +* Improvement: the "Show total price" options are free; the Calculations tab became the Price Calculation group on the General tab; the "nowhere" position is gone (an existing setting behaves as automatic display switched off).
225 +* Improvement: default cell padding for themes that leave cells unpadded, smaller badges in the compact layout, new default texts for the "You Save" badge and the upsell message.
226 +* Fix: no crossed-out price or "0% off" badge for a tier at the regular price; quantity ranges use the site's number format; table styles #2 and #6 tint the active row correctly; the dropdown starts on the base option; the horizontal table keeps its row count with custom columns.
224 227
225 228 = 7.1.8 [2026-09-08] =
226 -* Fix: the Request a Quote form did not open for variations of products with more variations than the AJAX threshold.
227 -* Fix: the catalog price of variable products could lose its prefix or format when an SEO integration formatted the price first with caching enabled.
228 -* Fix: the "Purge cache" button did nothing while caching was disabled, and its success notice could be lost.
229 +* Fix: the Request a Quote form for variations of products with many variations, the catalog price format of variable products with SEO integrations and caching, and the "Purge cache" button while caching is disabled.
229 230
230 231 = 7.1.7 [2026-09-02] =
231 -* New: U2Code Multicurrency integration
232 -* New: Multicurrency and Product Addons settings sections — show the detected plugin of each kind, the state of its integration, and the matching U2Code plugin
233 -* New: Mix & Match settings section with an option to apply tiered pricing to the products inside Mix and Match containers (per-item pricing)
234 -* Improvement: settings tabs are now ordered consistently — configuration first, then display, features, modules, integrations, and Tools last
235 -* Fix: the maximum order quantity was enforced as half of the configured value in the WooCommerce block cart (Store API)
236 -* Fix: a pricing rule matching a Mix and Match container re-priced the container itself on top of its contents
232 +* New: U2Code Multicurrency integration, and Multicurrency and Product Addons settings sections.
233 +* New: Mix & Match settings section: tiered pricing for the products inside Mix and Match containers.
234 +* Improvement: settings tabs ordered consistently.
235 +* Fix: the maximum order quantity in the block cart (Store API); a pricing rule matching a Mix and Match container no longer re-prices the container itself.
237 236
238 237 = 7.1.6 [2026-08-25] =
239 -* New: dedicated integration with U2Code Product Addons — the new "U2Code plugins" section on the integrations page
240 -* New: recommendations tip for product options in the product's Tiered Pricing tab
241 -* Improvement: integrations page redesign with official-plugin cards
238 +* New: U2Code Product Addons integration and a redesigned integrations page.
242 239
243 240 = 7.1.5 [2026-08-14] =
244 -* Fix: percentage tiered prices were calculated from a price WooCommerce Subscriptions had already modified, which double-prorated the first payment of synchronised subscriptions and mis-applied sign-up fees and free trials.
245 -* Fix: the prorated cost of a subscription quantity switch ignored the tiered discount, overcharging the customer.
241 +* Fix: WooCommerce Subscriptions: percentage tiers were calculated from an already modified price (double-prorated first payments, wrong sign-up fees and trials), and quantity switches ignored the tiered discount.
246 242
247 243 = 7.1.4 [2026-08-13] =
248 244 * Fix: cart prices ignored the exchange rate with the WPML Multicurrency integration (regression in 7.1.3).
249 245
250 246 = 7.1.3 [2026-08-09] =
251 -* New: WooCommerce Subscriptions integration — tiered pricing now applies correctly to products purchased on a subscription plan, in both the initial and recurring totals.
252 -* New: YITH Multi Currency Switcher integration.
253 -* New: WPML/Polylang support for role-based and user-based tiered pricing on product translations.
254 -* Enhance: Global tiered pricing rules now match products, categories, tags and brands across WPML/Polylang translations.
255 -* Fix: Prevented two possible fatal errors — a null product passed into the price filter by third-party code, and re-calculating a manual order whose product had been deleted.
256 -* Fix: A 100%-off tier could be charged at full price when re-calculating manual orders.
257 -* Fix: WCCS, YITH and WPML currency switchers could convert percentage-based tiered prices twice.
258 -* Fix: Product add-on costs were dropped from the cart price when a currency switcher was active.
259 -* Fix: Division-by-zero warning in the WooCommerce Deposits integration.
260 -* Fix: SEO structured data (Rank Math, Yoast, SEOPress) declared more offers than it output; the SEOPress price-range tag showed the lowest price instead of a range.
247 +* New: WooCommerce Subscriptions and YITH Multi Currency Switcher integrations.
248 +* New: WPML/Polylang support for role-based and customer-based pricing on translations; global rules match translated products, categories, tags and brands.
249 +* Fix: two possible fatal errors (a null product in the price filter, re-calculating a manual order whose product was deleted), a 100%-off tier charged at full price in manual orders, currency switchers converting percentage tiers twice, add-on costs dropped with a currency switcher, a division-by-zero warning in the Deposits integration, and the SEO structured data offers (Rank Math, Yoast, SEOPress).
261 250
262 251 = 7.1.2 [2026-08-06] =
263 -* Enhance: Product Bundles integration for manually created orders.
264 -* Fix: WPML Multicurrency rounding rules were not applied to tiered prices.
265 -* Fix: Tiered price in the cart was converted twice by currency switchers after decreasing the quantity below the first tier.
266 -* Fix: Prices with taxes for the products without tiered pricing rules.
252 +* Improvement: Product Bundles integration for manually created orders.
253 +* Fix: WPML Multicurrency rounding, double conversion after lowering the quantity below the first tier, and prices with taxes for products without tiers.
267 254
268 255 = 7.1.1 [2026-07-29] =
269 -* Fix: frontend JS issue with totals.
256 +* Fix: front-end totals script.
270 257
271 258 = 7.1.0 [2026-07-27] =
272 -* New: Mix&Match minimum order quantity for variable products.
273 -* New: Woo Payment Multicurrency integration.
274 -* Enhance: Move role-based and customer-based pricing to a separate tab.
275 -* Enhance: Settings texts and descriptions updated.
276 -* Fix: Minor fixes and improvements.
259 +* New: Mix & Match minimum order quantity for variable products; WooPayments Multicurrency integration.
260 +* Improvement: role-based and customer-based pricing on their own product tab; updated settings texts.
277 261
278 262 = 7.0.1 [2026-07-20] =
279 -* Fix: Frontend script cache issue.
263 +* Fix: front-end script cache issue.
280 264
281 265 = 7.0.0 [2026-07-18] =
282 -* New: Request a Quote functionality.
283 -* New: Totals & "You save" feature for the products without tiered pricing rules.
284 -* Enhance: Dropdown accessibility.
266 +* New: Request a Quote.
267 +* New: totals and "You save" for products without tiered pricing rules.
268 +* Improvement: dropdown accessibility.
285 269
286 270 = 6.5.0 [2026-07-02] =
287 271 * New: Product level customer based pricing.
288 272 * New: Custom template for pricing formatting on the shop page.