---
title: How Coupon Validation by User Role Works
description: "How WooCommerce coupon validation by user role works: the three controls, how roles are matched, and what customers see."
url: "https://wpfactory.com/docs/coupons-apply/"
updated: "2026-10-05"
category: Pro Features
tags:
  - "Coupon & Discount by User Role for WooCommerce"
---

# How Coupon Validation by User Role Works

[Coupon by User Role for WooCommerce](https://wpfactory.com/item/coupon-by-user-role-for-woocommerce/) decides whether a coupon can be used based on the current customer's roles. Understanding the order it uses helps you predict exactly who gets a discount and who does not.

### The three controls that decide the outcome

1. **Disable** removes coupons entirely for a role: the coupon code field is hidden on the cart and checkout.
2. **Invalidate** keeps the field visible but rejects the code for a role, showing your custom message.
3. **Amount by user role** does not block anything: it changes the coupon's value for a role.

Disable and invalidate can each be applied to **all coupons** (in the Availability section) or to **one coupon** (the per-coupon tabs). Per-coupon roles are added on top of the all-coupons roles.

### How a role is matched

A rule applies to a customer when they have **at least one** of the selected roles and **none** of the exception roles. Because a WordPress user can hold several roles at once, the exceptions field is what lets you keep an otherwise-blocked user eligible. Logged-out visitors are matched as the **Guest** role.

### What the customer sees when a coupon is invalid

When an invalidate rule matches, the coupon is rejected with the **"Coupon is not valid" message** from the Availability section. The message supports the `%coupon_code%` and `%coupon_amount%` placeholders and can contain HTML and shortcodes, including the [multilingual translation shortcode](https://wpfactory.com/docs/role-based-discounts/). See [customizing the message](https://wpfactory.com/docs/customize-coupon-not-valid-message/) for details.

### Standard coupon settings still apply

Coupon by User Role sits on top of WooCommerce's own coupon rules. A coupon still has to pass its normal checks (expiry date, usage limits, minimum spend, product and category restrictions) before the role rules are considered. If a coupon is not applying and no role rule is set, check the coupon's standard WooCommerce settings first.

### Free vs Pro

All of this logic works in the free version for the eight standard roles. Pro extends role matching to every custom user role on your site. See the [free vs Pro comparison](https://wpfactory.com/docs/free-vs-pro/).

### Ready to set this up?

To apply these rules to custom roles from a membership, wholesale, or B2B plugin, you need [Coupon by User Role for WooCommerce](https://wpfactory.com/item/coupon-by-user-role-for-woocommerce/) Pro. [Get Coupon by User Role Pro](https://wpfactory.com/item/coupon-by-user-role-for-woocommerce/).

Related articles

- [One Coupon, Different Discount Amounts per User Role](https://wpfactory.com/docs/setting-role-based-discounts/)
- [Coupons by User Role: How to Reset a Settings Section](https://wpfactory.com/docs/reset-coupon-settings-section/)
- [Coupons by User Role: Developer Hooks and Filters Reference](https://wpfactory.com/docs/coupon-by-user-role-hooks-filters/)
- [How to Disable or Invalidate WooCommerce Coupons by User Role](https://wpfactory.com/docs/effortless-targeted-promotions/)
- [Installing Coupon by User Role for WooCommerce](https://wpfactory.com/docs/installing-coupon-role-discount/)

 

[![Coupon & Discount by User Role for WooCommerce](https://wpfactory.com/wp-content/uploads/Coupon-by-User-Role-for-WooCommerce.webp)](https://wpfactory.com/item/coupon-by-user-role-for-woocommerce/)
