What Is a Maximum Coupon Discount?
WooCommerce percentage coupons apply a percentage of the cart total with no upper limit. A “20% off” coupon on a $2,000 cart always gives $400, whether or not that is what you intended. The Classic Monks Enable Maximum Discount Amount for Coupons feature lets you cap that: you set a maximum dollar amount a coupon can discount, and the customer’s saving is reduced to the cap when the calculated discount would exceed it.
Example: a 20% coupon with a $50 maximum on a $2,000 cart gives $50, not $400. The coupon remains a 20% coupon; it is just capped.
You set the cap per coupon in a Maximum discount amount field on the coupon edit screen, and you can provide a default value that is suggested whenever a new coupon is created.
Why You Need It
Unlimited percentage discounts are a profit risk on high-value carts:
- Profit margin protection. A 50% coupon on a $5,000 order is a $2,500 loss. A cap contains the damage.
- Promotional control. Run a higher cap during a sale and a lower one in normal periods, with different caps per role or product category.
- Abuse prevention. A cap stops a shared or leaked code from producing a huge discount on a big cart.
- Forecastable cost. A fixed maximum makes the maximum cost of any promotion predictable.
How to Set a Maximum Coupon Discount in WordPress
Step 1: Enable the Feature
- Open Classic Monks in your WordPress admin sidebar.
- Open the WooCommerce tab.
- Open the Coupons subtab.
- Toggle on Enable Maximum Discount Amount for Coupons. The nested options expand below the toggle.

Step 2: Set a Default Maximum
- Default Maximum Discount Amount is the value suggested in the coupon editor when you create a new coupon. Leave it at 0 for no default, or enter a suggested cap like
50so every new coupon starts with a sensible limit.
Step 3: Enable the Limit Types You Need
Each bullet below is an optional toggle that layers a different kind of cap. Enable only the ones you use:
- Enable Time-Based Maximum Discounts lets you vary the cap by time of day, day of week, or season (for example, a higher cap on weekends).
- Enable Role-Based Maximum Discounts sets different caps per user role (for example, a higher cap for VIP customers, a lower one for guests).
- Enable Category-Specific Maximum Discounts applies different caps per product category (for example, a tight cap on electronics, a generous one on clothing).
- Enable Tiered Maximum Discounts raises the cap as the cart total grows (for example, $50 max for carts under $200, $100 max above $500).
- Enable Maximum Discount Analytics records when a coupon hits its cap so you can review performance.
- Enable Real-Time Discount Preview shows customers the capped discount calculation live, with the limit clearly communicated.
Step 4: Set the Cap on a Coupon
- Go to WooCommerce > Coupons (or Marketing > Coupons).
- Create or edit a coupon.
- In the Maximum discount amount field, enter the cap for that coupon.
- Leave it blank for no limit (default behavior).
Step 5: Save Changes and Test
Click Save Changes in the Classic Monks settings. Then add a high-value product to the cart and apply the coupon; confirm the discount line shows the capped amount, not the full percentage.
Configuration Options
| Option | Behavior | Default |
|---|---|---|
| Enable Maximum Discount Amount for Coupons | Master toggle for the feature. | Off |
| Default Maximum Discount Amount | Suggested cap value on new coupons. 0 = no default. | 0 |
| Enable Time-Based Maximum Discounts | Vary the cap by time of day, day of week, or season. | Off |
| Enable Role-Based Maximum Discounts | Different caps per user role. | Off |
| Enable Category-Specific Maximum Discounts | Different caps per product category. | Off |
| Enable Tiered Maximum Discounts | Raise the cap as cart total increases. | Off |
| Enable Maximum Discount Analytics | Track when caps are hit. | Off |
| Enable Real-Time Discount Preview | Show the capped discount to customers live. | Off |
The per-coupon Maximum discount amount field on the coupon edit screen is what actually caps a given coupon. The nested toggles add extra limiting dimensions on top of it.
What Gets Affected
- Coupon calculation: the discount is capped at the coupon’s maximum amount
- Customer-facing price: the discount line and totals reflect the capped saving
- Coupon data: the cap is stored per coupon and exposed over the REST API
- Product, cart, and checkout displays: the capped discount and (with the preview enabled) the limit are shown to customers
What Does NOT Get Affected
- The coupon code and type: a percentage coupon stays a percentage coupon
- The coupon’s other restrictions: minimum spend, product, and usage limits still apply normally
- Coupons without a cap: a coupon with no maximum amount set behaves exactly as before
- Manual code entry: customers can still type a code; the cap applies to the calculated discount
Advanced Options (Developers)
The feature registers its hooks in functions/woocommerce/coupons/coupon-max-discount.php:
add_action( 'add_meta_boxes', 'cm_add_max_discount_coupon_meta_box' );
add_action( 'save_post', 'cm_save_max_discount_coupon_meta_box' );
add_filter( 'woocommerce_coupon_get_discount_amount', 'cm_coupon_apply_max_discount_limit', 10, 5 );
add_filter( 'woocommerce_coupon_is_valid', 'cm_coupon_validate_max_discount', 10, 3 );
add_filter( 'woocommerce_rest_prepare_shop_coupon', 'cm_coupon_add_max_discount_to_api', 10, 3 );
woocommerce_coupon_get_discount_amountapplies the cap to the coupon’s calculated discount (the core hook).woocommerce_coupon_is_validvalidates the coupon in light of the cap.woocommerce_rest_prepare_shop_couponadds the maximum discount data to the REST API response.add_meta_boxesandsave_postregister and save the per-coupon cap field.- When the real-time preview is on,
wp_enqueue_scriptsloads the preview assets andwp_ajax_cm_get_discount_previewreturns the preview calculation. woocommerce_single_product_summary,woocommerce_before_checkout_form, andwoocommerce_before_cartdisplay the max discount info contextual to the page.
Common Use Cases
High-value product protection. Cap a “20% off everything” coupon so it can never discount more than $100. A shopper buying a $4,000 laptop gets a capped $100 saving instead of an $800 one, protecting your margin on large orders.
VIP and wholesale tiers. Use role-based maximums to hand VIP members a generous cap while guests get a much lower one, rewarding your best customers without opening a broad risk.
Category margin control. Electronics often has thinner margins than clothing. Set a strict category-specific cap on electronics while allowing a generous one on apparel, so a single campaign cannot erode the low-margin line.
Sales periods. Use time-based and tiered maximums together: a higher cap when cart totals climb during a clearance, and a lower cap in quiet periods, so promotional cost scales predictably.
Audit and cleanup. With Maximum Discount Analytics and Real-Time Discount Preview on, you can see exactly which codes hit their caps and how often, then tighten or raise limits in the next campaign.