Skip to main content

WooCommerce Discount Rules & Dynamic Pricing: Complete Conditions Guide

Conditions are the decision engine behind Discount Rules and Dynamic Pricing for WooCommerce. They dictate when, to whom, and under what circumstances a promotional campaign, tiered discount, bulk price, checkout fee, or custom shipping method applies.

Whether you want to reward your VIP customers, run automated buy-one-get-one deals, offer location-specific discounts, or recover inactive shoppers based on their purchase history, condition rules give you granular control.

This comprehensive guide explains every available condition across all 14 condition groups, detailing what each condition does, its selectable parameters, real-world e-commerce use cases, and expert tips for maximizing conversion rates.


๐Ÿ“‹ Table of Contentsโ€‹


๐Ÿง  Understanding Condition Logic: AND vs. ORโ€‹

The plugin uses a multi-tier conditional hierarchy that lets you build simple rules or intricate promotional logic:

Condition Logic: AND vs OR Hierarchy

  • Within the same group (+ And New Rule): All conditions inside a group must be satisfied simultaneously (AND logic). For example: Role is Wholesale Customer AND Cart Subtotal > $200.
  • Across different groups (+ OR New Group): Meeting the requirements of any single group triggers the discount (OR logic). For example: Group 1 (User is VIP) OR Group 2 (Cart Subtotal > $500).

1. Customer Conditionsโ€‹

Customer conditions evaluate the buyer's account status, permissions, email address, or identity.

๐Ÿ‘ค Customers (customers)โ€‹

  • What it does: Limits the promotion to specific, hand-picked customer accounts or explicitly excludes them.
  • Available Settings:
    • Select Type: Selected (only the chosen users qualify) or Not selected (everyone except the chosen users qualifies).
    • Customers Picker: AJAX-powered search by customer name, username, or email.
  • E-Commerce Use Case:
    • Grant a compensation discount coupon to a specific customer who had a delayed shipment.
    • Exclude staff test accounts or competitor accounts from public sales.
  • Pro Tip: Requires a logged-in user session. Unregistered guests will not match Selected.

๐Ÿ‘ฅ Roles (roles)โ€‹

  • What it does: Evaluates the customer's assigned WordPress user role(s).
  • Available Settings:
    • Select Type: Selected or Not selected.
    • Roles: Multi-select dropdown containing all registered WordPress and WooCommerce roles (e.g., Customer, Wholesale Buyer, Subscriber, Shop Manager, VIP Member).
  • E-Commerce Use Case:
    • B2B Wholesale Pricing: Provide an automatic 20% discount on catalog prices for customers with the Wholesale role.
    • Membership Perks: Offer 10% off storewide to subscribed members with the VIP role.
  • Pro Tip: If a customer has multiple roles, having at least one role matching the selection satisfies the Selected condition.

๐Ÿ” Is Logged In (is_logged_in)โ€‹

  • What it does: Checks whether the visitor is authenticated into an account or shopping anonymously as a guest.
  • Available Settings:
    • Option: Yes (logged-in only) or No (guest visitors only).
  • E-Commerce Use Case:
    • Account Creation Incentive: Display an alert: "Log in or create a free account to unlock an extra $10 off your order!"
    • First-Time Guest Acquisition: Give guests a special introductory price that encourages immediate checkout.

๐Ÿ›ก๏ธ User Capability (user_capability)โ€‹

  • What it does: Checks for fine-grained WordPress user capabilities (e.g., manage_woocommerce, edit_posts, custom plugin capabilities).
  • Available Settings:
    • Select Type: Selected or Not selected.
    • Capabilities: Multi-select list of system capabilities. When Selected is picked, the user must hold all selected capabilities.
  • E-Commerce Use Case:
    • Employee store discounts: Automatically apply internal staff discounts to users who have the edit_products or read_private_shop capability.

๐Ÿท๏ธ User Meta (user_meta)โ€‹

  • What it does: Inspects custom user metadata stored in the WordPress usermeta table.
  • Available Settings:
    • Meta Field Key: The exact custom field key (e.g., vat_number, company_tax_id, referred_by_affiliate, newsletter_subscribed).
    • Condition Operators: Empty, Is not empty, Contains, Does not contain, Begins with, Ends with, Equal to, Equal to one in comma separated list, Not equal to, Not equal to all in comma separated list, Less than, Less equal to, Greater than, Greater equal to, Is checked, Is not checked.
    • Value: Target comparison value.
  • E-Commerce Use Case:
    • Tax-Exempt / VAT Discounts: Offer zero-rated promotions or trade bonuses if vat_number is not empty.
    • Affiliate Campaign: Grant an extra 5% discount if referral_partner equals SUMMER2026.
  • Pro Tip: Supports boolean checkboxes (is_checked checks for 1, yes, true, or 'on').

โœ‰๏ธ Email (email)โ€‹

  • What it does: Filters customers by their billing email address (for guests) or account email (for logged-in shoppers).
  • Available Settings:
    • Email Field: Comma-separated list of emails with full wildcard (*) pattern support.
    • Examples: [email protected], *@student.edu, *@apple.com, *@*.gov.
  • E-Commerce Use Case:
    • Student / Educational Discounts: Enter *.edu, *.ac.uk to automatically grant student discounts when shoppers use their university email address.
    • Corporate Perks: Provide 15% off for employees of partner companies (e.g., *@partnerfirm.com).
  • Pro Tip: For guest users, the rule evaluates the email entered in the checkout billing form in real time.

๐Ÿ”ข User Usage Limit (user_usage_limit)โ€‹

  • What it does: Limits the number of times a single individual customer can take advantage of the discount rule.
  • Available Settings:
    • Threshold Value: Positive integer specifying the maximum allowable orders per user (e.g., 1 for single-use promotions).
  • E-Commerce Use Case:
    • One-Time Welcome Promotion: Allow new shoppers to use an automatic 20% discount coupon exactly once across their account lifetime.
  • Pro Tip: The system tracks both registered User IDs and guest billing emails. If a guest enters the same email twice, subsequent orders will no longer receive the discount.

2. Customer Value Conditionsโ€‹

Reward your most valuable shoppers, build automated loyalty tiers, and reactivate lapsed buyers using metrics calculated from their past orders.

Guest Order Tracking

For guest shoppers, customer value metrics automatically look up past completed orders matching the customer's billing email.

๐Ÿ’ฐ Money Spent (money_spent)โ€‹

  • What it does: Calculates the cumulative monetary total spent by the customer on previous qualifying orders.
  • Available Settings:
    • Timeframe (time_type): All time, Date range, Date Time range, Current (Day/Week/Month/Year), X days/weeks/months/years ago, or Previous days/weeks/months/years.
    • Math Operation: <, <=, >, >=, ==, !=.
    • Threshold Amount: Numerical currency value (e.g., $500).
  • E-Commerce Use Case:
    • High-Roller VIP Club: Automatically apply a 15% VIP discount once a customer has spent over $1,000 all time.
    • Monthly Spend Bonus: Offer free shipping if the customer spent more than $300 within the Current Month.

๐Ÿ“ฆ Number of Orders (number_of_orders)โ€‹

  • What it does: Counts the total number of paid/completed orders placed by the customer within the designated timeframe.
  • Available Settings:
    • Timeframe (time_type): Flexible historic window (All time, Date periods, Previous days, etc.).
    • Math Operation: <, <=, >, >=, ==, !=.
    • Threshold Value: Order count (e.g., 0 for first-time buyers, 5 for frequent shoppers).
  • E-Commerce Use Case:
    • First-Order Welcome Gift: Set Number of orders == 0 to give 10% off exclusively to first-time shoppers.
    • 5th Order Milestone: Set Number of orders >= 4 to reward repeat patrons on their 5th purchase.

๐Ÿ’ณ Last Order Amount (last_order_amount)โ€‹

  • What it does: Evaluates the total currency value of the customer's most recent order.
  • Available Settings:
    • Math Operation: <, <=, >, >=, ==, !=.
    • Threshold Amount: Numeric dollar value.
  • E-Commerce Use Case:
    • Reward customers whose previous purchase exceeded $200 with an exclusive discount on their next cart.

๐Ÿ“ˆ Average Money Spent Per Order (average_money_spent_per_order)โ€‹

  • What it does: Calculates the customer's historical Average Order Value (AOV = Total Money Spent รท Number of Orders) over a given period.
  • Available Settings:
    • Timeframe: Selectable date range or historical period.
    • Math Operation: Comparison operator against target value.
  • E-Commerce Use Case:
    • High-AOV Retention: If a customer's average order value is greater than $150, provide free gifts or upgraded shipping to maintain high basket sizes.

๐Ÿ“… Last Order Date (last_order_date)โ€‹

  • What it does: Checks when the customer last placed an order. Perfect for automated win-back and customer reactivation campaigns.
  • Available Settings:
    • Time Type: Date, Date Time, Current, Days ago, Weeks ago, Months ago, Years ago, Previous days/weeks/months/years.
    • Before / After: Target relative to the selected time boundary.
  • E-Commerce Use Case:
    • Lapsed Customer Win-Back: Set Last order date is Before 60 Days ago to automatically grant a 20% "We Miss You!" discount when dormant buyers return to the store.
    • Recent Shopper Follow-up: Offer complementary accessory discounts if the last purchase was within the past 14 days.

โญ Number of Products Reviews (number_of_products_reviews)โ€‹

  • What it does: Checks how many product reviews the customer has published on your WooCommerce store.
  • Available Settings:
    • Math Operation: Comparison operator against review count.
  • E-Commerce Use Case:
    • Review Bounty Program: Reward active reviewers who have written 3 or more product reviews with a site-wide 10% discount.

3. Cart Conditionsโ€‹

Cart conditions inspect cart-level metrics such as totals, weights, item counts, dimensions, inventory levels, and active coupons.

โš–๏ธ Cart Total Weight (cart_total_weight)โ€‹

  • What it does: Calculates the aggregate physical weight of all items currently in the cart.
  • Available Settings:
    • Math Operation: <, <=, >, >=, ==, !=.
    • Weight Value: Number formatted according to your WooCommerce weight unit (kg, lbs, oz, g).
  • E-Commerce Use Case:
    • Heavy Order Surcharge/Discount: Offer a discount when customers order in freight bulk (e.g., total weight > 50 kg) or restrict lightweight airmail discounts.

๐Ÿ›’ Number of Cart Items (number_of_cart_items)โ€‹

  • What it does: Counts the total distinct line items or total items present in the shopping cart (get_cart_contents_count()).
  • Available Settings:
    • Math Operation: Comparison operator against item count.
  • E-Commerce Use Case:
    • Multi-Item Bundle Promotion: Apply 10% off when the cart contains 3 or more items.

๐Ÿ’ต Subtotal Including Tax (subtotal_including_tax)โ€‹

  • What it does: Checks the gross cart subtotal inclusive of taxes. Multi-currency exchange rates are automatically handled.
  • Available Settings:
    • Math Operation: Comparison operator against dollar threshold.
  • E-Commerce Use Case:
    • Gross Spend Threshold: "Spend $100 (tax incl.) to get $15 off."

๐Ÿท๏ธ Subtotal Excluding Tax (subtotal_excluding_tax)โ€‹

  • What it does: Evaluates the net cart subtotal before taxes. Ideal for B2B stores and jurisdictions with variable local sales tax.
  • Available Settings:
    • Math Operation: Comparison operator against net subtotal.
  • E-Commerce Use Case:
    • Net Minimum Spend: "Spend $100 net to receive 10% off your entire cart."

๐Ÿงพ Subtotal Including Tax Excluding Coupons (subtotal_including_tax_excluding_coupons)โ€‹

  • What it does: Evaluates gross subtotal with taxes, but after subtracting all other coupon discounts.
  • Available Settings:
    • Math Operation: Comparison operator.
  • E-Commerce Use Case:
    • Ensures a minimum spend threshold is still met after a promo code has reduced the total.

๐Ÿ“‰ Subtotal Excluding Tax Excluding Coupons (subtotal_excluding_tax_excluding_coupons)โ€‹

  • What it does: Evaluates net subtotal without taxes, after subtracting all other applied coupon discounts.
  • Available Settings:
    • Math Operation: Comparison operator.
  • E-Commerce Use Case:
    • Strict tiered discount ladders preventing discount stacking when coupons are used.

๐Ÿ”ข Quantity of Cart Items (quantity_of_cart_items)โ€‹

  • What it does: Evaluates individual line item quantities against a condition threshold (e.g., verifying every item has at least X units).
  • Available Settings:
    • Math Operation: Comparison operator against quantity.

๐ŸŽŸ๏ธ Coupons Applied (coupons_applied)โ€‹

  • What it does: Checks which coupons are currently entered in the cart, allowing you to create dependent discounts or block discount stacking.
  • Available Settings:
    • Coupon Condition:
      • At least one of any: The cart has at least one coupon applied.
      • None at all: The cart has no coupons applied (disables discount stacking).
      • At least one of selected: Cart contains at least one coupon from a specific list.
      • All of selected: Cart contains all specified coupons.
      • Only selected: Cart contains strictly the specified coupons and no others.
      • None of selected: Prevents this rule if blacklisted coupon codes are used.
    • Coupons Picker: Search and select existing WooCommerce coupons.
  • E-Commerce Use Case:
    • Prevent Coupon Stacking: Set Coupons Applied is None at all so dynamic sales prices cannot be combined with manual coupon codes.

๐Ÿ“ Dimensions: Max Width, Height, Length of Cart Itemsโ€‹

  • Conditions:
    • Maximum width of cart items (max_width_of_cart_items)
    • Maximum height of cart items (max_height_of_cart_items)
    • Maximum length of cart items (max_length_of_cart_items)
  • What they do: Finds the largest individual dimension among all items in the cart and compares it against your threshold.
  • E-Commerce Use Case:
    • Oversized Item Restrictions: Disable free shipping discounts if any product in the cart exceeds 120 cm in length.

๐Ÿ“ฆ Minimum Stock Quantity of Cart Items (min_stock_of_cart_items)โ€‹

  • What it does: Finds the lowest inventory stock count among all products in the cart.
  • Available Settings:
    • Math Operation: Comparison operator against inventory level.
  • E-Commerce Use Case:
    • Clearance Deal Only for Plentiful Stock: Prevent discounts on scarce inventory by requiring Minimum stock quantity >= 10.
    • Clearance Sale: Apply an extra 30% off when stock is low (e.g., Minimum stock <= 3).

4. Cart Items Conditionsโ€‹

These conditions check whether specific products, variations, categories, tags, or attributes are currently present in the cart.

Each item condition supports Union Types:

  • At least one of: The cart contains one or more items from the chosen list.
  • At least number of: The cart contains at least N distinct items from the chosen list.
  • All of: The cart must contain every single item from the chosen list simultaneously.
  • Only: The cart must contain only the chosen items (no other products allowed).
  • None of: None of the chosen items may be in the cart.
ConditionIDTarget EvaluatedBest For
Products in cartproducts_in_cartSpecific simple or variable parent productsBOGO deals and product-specific cross-sells
Product variations in cartproduct_variations_in_cartSpecific variation SKUs (e.g., Blue / XL)Clearing out slow-moving sizes or colors
Featured products in cartfeatured_products_in_cartProducts marked as WooCommerce "Featured"Storewide seasonal spotlight campaigns
Onsale products in cartonsale_products_in_cartProducts currently with a sale priceApplying rules specifically to sale rack items
Product categories in cartproduct_categories_in_cartWooCommerce product categoriesCategory-wide sales (e.g., Shoes, Electronics)
Product attributes in cartproduct_attributes_in_cartGlobal attributes (e.g., Material = Leather)Material, brand, or specification promotions
Product tags in cartproduct_tags_in_cartProduct tags (e.g., summer, clearance)Dynamic promotions across diverse catalog items
Shipping classes in cartshipping_classes_in_cartWooCommerce shipping classes (e.g., Heavy, Fragile)Tailoring shipping rules or packaging incentives

5. Cart Items Subtotal Conditionsโ€‹

These conditions calculate the monetary subtotal of a specific group of items in the cart (rather than the entire cart total).

Selected vs. Not Selected

All subtotal conditions allow you to choose:

  • Selected: The subtotal of the chosen items must meet the operator.
  • Not selected: The subtotal of all items other than the chosen ones must meet the operator.
  • Subtotal of products include tax (subtotal_of_products_include_tax): Minimum spend on specific products (tax incl.).
  • Subtotal of products exclude tax (subtotal_of_products_exclude_tax): Minimum spend on specific products (tax excl.).
  • Subtotal of variations include tax (subtotal_of_variations_include_tax): Spend threshold on specific variations (tax incl.).
  • Subtotal of variations exclude tax (subtotal_of_variations_exclude_tax): Spend threshold on specific variations (tax excl.).
  • Subtotal of categories include tax (subtotal_of_categories_include_tax): Spend threshold within selected categories (tax incl.). E.g., Spend $50 on 'Skincare' to get a free sunscreen.
  • Subtotal of categories exclude tax (subtotal_of_categories_exclude_tax): Net spend threshold within categories (tax excl.).
  • Subtotal of attributes include tax / exclude tax (subtotal_of_attributes_include_tax / subtotal_of_attributes_exclude_tax): Spend threshold on items matching chosen attributes (e.g., Brand = Nike).
  • Subtotal of tags include tax / exclude tax (subtotal_of_tags_include_tax / subtotal_of_tags_exclude_tax): Spend threshold on items tagged with specific keywords.
  • Subtotal of regular products include / exclude tax (subtotal_of_regular_products_include_tax / subtotal_of_regular_products_exclude_tax): Calculates the subtotal of full-priced, non-sale products only. Useful for offering discounts only when shoppers buy full-priced items.
  • Subtotal of onsale products include / exclude tax (subtotal_of_onsale_products_include_tax / subtotal_of_onsale_products_exclude_tax): Calculates the subtotal of products that already have a sale price.

6. Cart Items Quantity Conditionsโ€‹

These conditions count the total units of selected items present in the cart.

  • Quantity of products (quantity_of_products): Sums the total quantity of selected products in the cart. E.g., Buy 3 or more T-Shirts to get 15% off.
  • Quantity of variations (quantity_of_variations): Sums the total quantity of selected variations. E.g., Buy 5 or more 500ml bottles.
  • Quantity of categories (quantity_of_categories): Sums all units across an entire category. E.g., Buy any 4 books and get the cheapest one free.
  • Quantity of attributes (quantity_of_attributes): Sums all units matching selected attributes (e.g., Size = Large).
  • Quantity of tags (quantity_of_tags): Sums all units of products bearing selected tags.

7. Purchase History Conditionsโ€‹

Purchase history conditions inspect whether the shopper has bought specific items in past completed orders. This allows you to set up cross-sells, replenishment discounts, and loyalty rewards based on prior buying behavior.

All purchase history conditions support timeframes: All time, Date range, Date Time range, Current, X days/weeks/months/years ago, and Previous periods.

  • Bought products (bought_products): Verifies if customer has previously ordered chosen products. E.g., Offer 30% off replacement filter cartridges if the customer bought the Water Purifier in the last 12 months.
  • Bought variations (bought_product_variations): Verifies historical purchases of specific variations.
  • Bought categories (bought_product_categories): Verifies if the customer has ever purchased from specific categories. E.g., Offer 10% off Coffee Beans if the customer previously bought from the Espresso Machines category.
  • Bought product attributes (bought_product_attributes): Checks past purchases by attributes (e.g., Brand, Capacity).
  • Bought product tags (bought_product_tags): Checks past purchases by tags.
  • Bought featured products (bought_featured_products): Verifies if customer has ever ordered a featured item.
  • Bought onsale products (bought_onsale_products): Identifies bargain hunters who previously bought on-sale items.

8. Purchase History Quantity Conditionsโ€‹

Counts the total cumulative units of specific items the customer has ordered over time.

  • Quantity of bought products (quantity_of_bought_products)
  • Quantity of bought variations (quantity_of_bought_variations)
  • Quantity of bought categories (quantity_of_bought_categories)
  • Quantity of bought attributes (quantity_of_bought_attributes)
  • Quantity of bought tags (quantity_of_bought_tags)

E-Commerce Use Case:

  • Wholesale Tier Qualification: If a client has purchased 50 or more total units in the Office Supplies category across the previous 6 months, unlock wholesale contract pricing automatically.

9. Purchase History Amount Conditionsโ€‹

Calculates the total cumulative revenue spent by the customer on specific items or categories across their past orders.

  • Amount of bought products (amount_of_bought_products)
  • Amount of bought variations (amount_of_bought_variations)
  • Amount of bought categories (amount_of_bought_categories)
  • Amount of bought attributes (amount_of_bought_attributes)
  • Amount of bought tags (amount_of_bought_tags)

E-Commerce Use Case:

  • Category VIP Club: If a customer has spent over $500 specifically on Fine Wines in the past year, give them an automatic 15% discount on any new wine order.

10. Checkout Conditionsโ€‹

Checkout conditions evaluate the customer's real-time checkout selections.

๐Ÿ’ณ Payment Method (payment_method)โ€‹

  • What it does: Checks the chosen payment gateway at checkout.
  • Available Settings:
    • Select Type: Selected or Not selected.
    • Gateways: Direct Bank Transfer (BACS), Cash on Delivery (COD), Stripe, PayPal, Authorize.net, Mollie, Klarna, etc.
  • E-Commerce Use Case:
    • Encourage Low-Fee Payments: Give a 3% cash discount when paying via Direct Bank Transfer (BACS) to reduce credit card processing fees.
    • Exclude COD from promotions: Require payment upfront to qualify for high-value sales.

๐Ÿšš Shipping Method (shipping_method)โ€‹

  • What it does: Evaluates the shipping option selected by the customer on the cart or checkout page.
  • Available Settings:
    • Search By:
      • Search by type: Select general method types (e.g., flat_rate, free_shipping, local_pickup).
      • Search by title: Search specific zone-based shipping instance names (e.g., "Standard Express 2-Day").
    • Select Type: Selected or Not selected.
  • E-Commerce Use Case:
    • Local Pickup Incentive: Give a $5 discount or free promotional gift when customers choose "Local Pickup".

11. Shipping Address Conditionsโ€‹

Target discounts or set up dynamic shipping rules based on the customer's physical destination address.

๐ŸŒ Shipping Country (shipping_country)โ€‹

  • What it does: Compares the recipient's shipping destination country against a selected list.
  • Available Settings: Selected / Not selected with country multi-select.
  • E-Commerce Use Case: Offer special domestic discounts or restrict cross-border promotional pricing.

๐Ÿ›๏ธ Shipping State / Province (shipping_state)โ€‹

  • What it does: Compares the destination state/region (e.g., US:CA, CA:ON).
  • Available Settings: Selected / Not selected with dynamic country-state selection.
  • E-Commerce Use Case: Regional promotions (e.g., California or Texas special holiday discounts).

๐Ÿ™๏ธ Shipping City (shipping_city)โ€‹

  • What it does: Evaluates the destination city name using flexible text matching.
  • Available Operators: Equal to, Equal to comma separated list, Not equal to, Not equal to comma separated list, Contains, Does not contain, Begins with, Ends with, Empty, Is not empty.
  • E-Commerce Use Case: Offer free same-day local delivery discounts for shoppers residing in London, Manchester, Birmingham.

๐Ÿ“ฎ Shipping Postcode (shipping_postcode)โ€‹

  • What it does: Evaluates postal codes with advanced pattern matching.
  • Available Match Types: Match or Not match.
  • Supported Formats:
    • Exact postcodes: 90210, 10001, SW1A 1AA
    • Wildcards: 902*, SW1*
    • Ranges: [90210 - 90220]
    • Comma-separated lists combining wildcards and ranges.
  • E-Commerce Use Case:
    • Remote / Island surcharge exemption or hyper-local neighborhood promotions.

๐Ÿ—บ๏ธ Shipping Zone (shipping_zone)โ€‹

  • What it does: Checks which native WooCommerce shipping zone matches the customer's address.
  • Available Settings: Selected / Not selected across all defined store shipping zones.

12. Shipping Package Conditionsโ€‹

Used in dynamic shipping rules and custom shipping rate calculations to evaluate physical attributes of the current delivery package.

  • Package total weight (package_total_weight): Evaluates the combined weight of physical items packaged for dispatch.
  • Number of package items (number_of_package_items): Counts distinct items inside the shipping package.
  • Quantity of package items (quantity_of_package_items): Counts total units packaged together.

13. Shipping Package Items Conditionsโ€‹

Inspects the presence of specific items inside the current shipping package being dispatched:

  • Products in package (products_in_package)
  • Product variations in package (product_variations_in_package)
  • Product categories in package (product_categories_in_package)
  • Product attributes in package (product_attributes_in_package)
  • Product tags in package (product_tags_in_package)
  • Shipping classes in package (shipping_classes_in_package)

E-Commerce Use Case:

  • Create a custom courier rule that only applies if the package contains items with the Fragile or Hazardous Materials shipping class.

14. Custom Product Taxonomies Conditionsโ€‹

If your store uses custom product taxonomies (such as Brands, Authors, Collections, Vendors, or Designers), the plugin automatically registers dynamic conditions for each taxonomy:

  • [Taxonomy] in cart (taxonomy_in_cart__{tax}): Checks if items from the custom taxonomy are in the cart.
  • [Taxonomy] subtotal including tax (taxonomy_subtotal_including_tax__{tax}): Evaluates gross subtotal of products matching the taxonomy.
  • [Taxonomy] subtotal excluding tax (taxonomy_subtotal_excluding_tax__{tax}): Evaluates net subtotal of products matching the taxonomy.
  • [Taxonomy] quantity in cart (taxonomy_quantity_in_cart__{tax}): Counts total items matching the taxonomy in the cart.
  • Bought [Taxonomy] (taxonomy_bought__{tax}): Evaluates whether the customer bought items with this taxonomy in past orders.
  • Amount of bought [Taxonomy] (taxonomy_bought_amount__{tax}): Calculates total money spent on this taxonomy in past orders.
  • Quantity of bought [Taxonomy] (taxonomy_bought_quantity__{tax}): Counts total units bought of this taxonomy historically.

E-Commerce Use Case:

  • Brand Flash Sale: "Buy $100 or more of Nike products and get 20% off Nike items automatically."

๐Ÿ”’ Rule-Level Usage Limitsโ€‹

In addition to condition-level checks, each rule has an optional Usage Limit:

  • Global Rule Usage Limit: Restricts the total number of successful checkouts allowed for the entire rule across all customers (e.g., "First 50 orders receive a free gift").
  • Once the limit is reached, the validator immediately turns off the rule, preventing over-redemption during flash sales.

โšก Operator Reference Guideโ€‹

Math Operation Typesโ€‹

Used for numerical comparisons (amounts, subtotals, weights, quantities, counts):

  • < Less than
  • <= Less equal to
  • > Greater than
  • >= Greater equal to
  • == Equal to
  • != Not equal to

Union Typesโ€‹

Used for multi-item conditions (products, categories, tags, attributes, taxonomies):

  • At least one of: Matches if any item from the selection is present.
  • At least number of: Matches if at least N distinct selected items are present.
  • All of: Matches only if every selected item is present.
  • Only: Matches only if the cart/order contains exclusively the selected items.
  • None of: Matches only if none of the selected items are present.

Time Typesโ€‹

Used for evaluating order history and customer loyalty:

  • All time: Looks across the entire customer account history.
  • Date: Fixed date range (e.g., 2026-01-01 to 2026-12-31).
  • Date Time: Exact date and timestamp window (e.g., Black Friday 00:00 to 23:59).
  • Current: Dynamic window for the current Day, Week, Month, or Year.
  • Days / Weeks / Months / Years ago: Relative lookback window (e.g., within the last 30 days).
  • Previous days / weeks / months / years: Preceding calendar period.

โ“ Frequently Asked Questions (FAQ)โ€‹

Can I combine multiple conditions in a single discount rule?โ€‹

Yes. You can combine unlimited conditions using AND logic (+ And New Rule) within a group, or create alternative qualification paths using OR logic (+ OR New Group).

Do purchase history conditions work for guest customers?โ€‹

Yes. When a guest places an order or fills out their billing email at checkout, the plugin looks up historical orders associated with that billing email.

What is the difference between "Subtotal including tax" and "Subtotal of categories include tax"?โ€‹

"Subtotal including tax" evaluates the grand subtotal of the entire cart. "Subtotal of categories include tax" only sums the prices of products belonging to the selected categories, ignoring unrelated items in the cart.

Can I prevent customers from using a discount code alongside automatic rules?โ€‹

Yes. Add the condition Cart โ†’ Coupons applied and select None at all. This disables the rule whenever any manual coupon is entered.


Try it Live & Explore PRO

Experience all discount rules and conditions in action on our Live Demo Website.

Upgrade to Discount Rules and Dynamic Pricing for WooCommerce PRO to unlock advanced purchase history conditions, custom taxonomies, user meta targeting, and multi-tier discount logic.


๐Ÿ” SEO Keywordsโ€‹

Primary Keywords: WooCommerce rule conditions, WooCommerce dynamic pricing conditions, cart discount conditions, WooCommerce discount rules guide, customer conditions WooCommerce, purchase history discount WooCommerce, WooCommerce conditional coupons.

Secondary Keywords: WooCommerce role based pricing conditions, minimum spend condition WooCommerce, category subtotal conditions, payment method discount WooCommerce, shipping postcode discount WooCommerce, guest checkout conditions, stop coupon stacking WooCommerce, WooCommerce cart items quantity conditions, dynamic pricing and discounts plugin.