Simple Role Based Pricing

描述

Pick a role. Choose how the price works. Save.

That is the whole daily job. Wholesale, VIP, members, staff — one screen under WooCommerce Settings Role Based Pricing.

Pricing itself is rarely that tidy. A product can sit in several categories, a user can have more than one role, a sale price may already be running, a wholesaler may need an exception, a campaign may start next Monday. The plugin handles those cases so you do not have to stack extra tools.

What you set

  • Percentage, fixed amount, or a final price for a WordPress user role.
  • All products, or only selected categories — with a different type/value per category if you need it.
  • Optional start and end dates. Leave them empty for a permanent rule.
  • Optional per-user override on the WordPress profile. That price wins over the role rule.

What the storefront does

  • Logged-in customers see the role price on the shop, the product page, and in the cart.
  • Guests keep the catalog price.
  • Variable products: the discount applies to each variation, and the parent shows the price range this customer pays.
  • If a product is already on a native WooCommerce sale, that sale wins. The role rule does not stack on top.
  • Cart totals refresh when the customer logs in, so a guest cart picks up the role price after sign-in.
  • The admin catalog and REST exports keep the original prices.

Typical uses

  • A wholesale role at −20% on the whole catalog.
  • Members-only prices on a few categories, with a different rate on one of them.
  • A campaign window for staff or partners, without touching product sale fields.
  • One customer who should not follow their role — set it on their user profile.

A touch more control, only if you want it

The screen stays simple. Tick Turn on advanced options in the Advanced options block (WooCommerce Settings Role Based Pricing; applied instantly, no Save needed) to get: a guest mode that hides prices and Add to cart for visitors who are not logged in, a choice between a struck-through price or the customer price only, a rule for customers with several roles, rules that cover subcategories, prices per role on each product and variation, and those prices in the standard WooCommerce CSV export and import. Untick it and the plugin is the simple plugin again; nothing you typed is deleted.

AI ready

On WordPress 6.9 or later the plugin registers three Abilities so an assistant (official AI plugin + a connector) can set, read, or remove a role discount. On the same Role Based Pricing screen, a text field and Generate button do the same from a sentence when that plugin is installed. Both still require the manage WooCommerce capability. Older WordPress versions skip the Abilities; the settings screen stays usable without AI.

A longer walkthrough ships in the plugin folder: docs/USER-GUIDE.md (English) and docs/MODE-DEMPLOI.md (French).

Compatibility

  • WooCommerce 8.0 or higher (tested up to 11.0).
  • HPOS (High-Performance Order Storage) compatible.
  • Custom roles from User Role Editor and similar plugins work as-is: if WordPress knows the role, this plugin can price it.

屏幕截图

安装

  1. Install and activate WooCommerce.
  2. Upload the plugin, or install it from Plugins Add New.
  3. Activate Simple Role Based Pricing.
  4. Open WooCommerce Settings Role Based Pricing.
  5. Select a role, turn the rule on, set the discount, save.

常见问题

Where are the settings?

WooCommerce Settings Role Based Pricing. Select the role first. Everything else on the page is for that role until you save.

What is the difference between the three discount types?

  • Percentage — off the regular price (20 = 20% off).
  • Fixed amount — subtract that amount in your store currency.
  • Fixed price — the customer pays exactly that amount, regardless of the catalog price.

Can I limit a rule to some categories?

Yes. Set Apply To to Specific Categories, pick the categories, save. Each selected category can use the role default (Global) or its own type and value.

Who wins if several rules could apply?

  1. A native WooCommerce sale price on the product.
  2. An individual price on the user profile.
  3. A matching category rule for that role.
  4. The role’s “all products” rule.

If a user has several roles, the first role (in the order WordPress stores them on the account) that has an active rule wins. A role without an active rule is skipped.

Guests are not priced. Empty start/end dates mean the rule has no schedule. A percentage is capped at 100 and a price never goes below zero.

Does it work with variable products?

Yes. Each variation is priced, and the parent shows the min–max range of the prices the logged-in customer pays.

Can I give one user a different price than their role?

Yes. Edit the user under Users, then Simple Role Based Pricing – Individual. That override beats the role rule for that account.

Why didn’t the role discount apply to a product on sale?

On purpose. If WooCommerce already has a sale price, the plugin leaves it. End the sale, or use a product that is not on sale, if the role price should show.

Do I need extra PHP extensions?

No. PHP 7.4+ and WooCommerce 8.0+ are enough. There is no mbstring requirement.

Can I control pricing with AI?

Yes, on WordPress 6.9 or later. Install the official AI plugin and a connector. On WooCommerce Settings Role Based Pricing, below Overview, use the text field and Generate (also listed in Context). A user who can manage WooCommerce can also ask the assistant to set, read, or remove a role discount. Without the AI plugin, the rest of the screen is unchanged.

Can I hide prices from visitors who are not logged in?

Yes, with Advanced options on: choose Hide prices and the Add to cart button under Visitors not logged in. It hides prices on the shop pages; it is not a protection for your data.

Can I set a price per product or per variation?

Yes, with Advanced options on. Each simple product and each variation gets one field per role, under the sale price. That price wins over the role rule (a native sale still wins over it). The same prices are in Products Export / Import as Role price: <role slug> columns.

评价

此插件暂无评价。

贡献者及开发者

「Simple Role Based Pricing」是开源软件。 以下人员对此插件做出了贡献。

贡献者

更新日志

2.7.0 (2026-10-16)

  • Added: Advanced options switch (off by default). While it is off the plugin behaves as before; turning it off keeps everything you typed.
  • Added (advanced): guest mode, struck-through or customer-price-only display, lowest-price rule for customers with several roles, subcategories, prices per role on products and variations, CSV export and import of those prices through WooCommerce’s own tools.
  • Fix: the price range of a variable product shows the prices of the logged-in customer, and WooCommerce’s cached range no longer leaks from one role to another.
  • Fix: guests and products without a rule no longer report a sale price (themes and product feeds saw a false sale).
  • Fix: prices are rounded to the store’s decimals, so the unit price shown is the one charged.
  • Fix: the struck-through and customer prices follow the shop’s tax display setting.
  • Fix: an individual exception with an unknown type no longer cancels the role rule.
  • Tweak: Generate asks for confirmation before saving, is limited to 20 requests per 10 minutes, and no longer saves a fixed price of zero.
  • Tweak: tested with a real WooCommerce 11.3 (simple and variable products, cart, CSV import and export, settings screen).

2.6.2 (2026-10-15)

  • Performance: one shared price calculator and rules read once per request (they were re-registered and re-queried on every price shown).
  • Security: category settings are rebuilt and validated on the server, and the settings screen no longer builds fields from stored values with innerHTML.
  • Fix: discount type and value are validated on every save path (settings screen, user profile, Abilities); a percentage is capped at 100 and a calculated price never goes below zero.
  • Fix: unchecking Enable keeps the rule (disabled) instead of deleting it, like the Abilities do.
  • Fix: a rule end date without a time now includes the whole last day.
  • Fix: the debug log goes through the standard PHP error log (WP_DEBUG and WP_DEBUG_LOG) instead of a file in the uploads folder; the old folder is removed on update.
  • Fix: the plugin no longer hides WooCommerce’s database update notice.
  • Fix: removed the hourly dates cron (the price engine already checks dates), the unused settings class, and made the WooCommerce check work on a network-activated multisite.
  • Added: versioned update routine and uninstall.php (removes the table, options and user settings when the plugin is deleted).
  • Tweak: the Generate sentence is capped at 500 characters; the review notice dismissal checks the capability.
  • Tweak: Plugin Check warnings cleared (request data is read where the nonce is verified; direct queries on the plugin’s own table are annotated; no core hook is invoked by the plugin).

2.6.1 (2026-08-30)

  • Admin: Generate and the layout map are stack blocks below Overview. Context lists both so you can jump to them.

2.6.0 (2026-08-27)

  • AI: Three Abilities (set, get, remove role discounts) for WordPress 6.9+ and the official AI plugin.
  • Admin: Optional Generate field on the Role Based Pricing screen (connector / parse / save, then a rule from a sentence).
  • Admin: Page layout map moved below the form so Select Role / Enable / discount come first.
  • Docs: User guides cover AI phrases; layout map is optional and stays collapsed.

2.5.0 (2026-08-27)

  • Compatibility: Tested with WordPress 7.1 and WooCommerce 11.0.
  • Docs: Listing and FAQ rewritten to match the plugin. English and French guides in docs/.

2.4.0 (2026-05-24)

  • Admin layout map and block order: drag to rearrange settings, order saved per user.

2.3.0 (2026-05-24)

  • Settings workspace: collapsible blocks, per-role Apply To, rule status, unsaved-changes warning.

2.2.0 (2026-05-05)

  • Removed the mbstring requirement.

2.1.0 (2026-05-02)

  • Per-category discounts and optional start/end dates. Rules stored as JSON.

2.0.0

  • Native WooCommerce price filters (no fake coupon). Per-user price override on the profile.

Older patch notes (including 2.3.1–2.3.8) are in changelog.txt.