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
- 1. Customer Conditions
- 2. Customer Value Conditions
- 3. Cart Conditions
- 4. Cart Items Conditions
- 5. Cart Items Subtotal Conditions
- 6. Cart Items Quantity Conditions
- 7. Purchase History Conditions
- 8. Purchase History Quantity Conditions
- 9. Purchase History Amount Conditions
- 10. Checkout Conditions
- 11. Shipping Address Conditions
- 12. Shipping Package Conditions
- 13. Shipping Package Items Conditions
- 14. Custom Product Taxonomies Conditions
- Rule-Level Usage Limits
- Operator Reference Guide
- Frequently Asked Questions (FAQ)
- SEO Keywords & Strategy
๐ง Understanding Condition Logic: AND vs. ORโ
The plugin uses a multi-tier conditional hierarchy that lets you build simple rules or intricate promotional logic:
- Within the same group (
+ And New Rule): All conditions inside a group must be satisfied simultaneously (AND logic). For example: Role is Wholesale Customer ANDCart 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) ORGroup 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) orNot selected(everyone except the chosen users qualifies). - Customers Picker: AJAX-powered search by customer name, username, or email.
- Select Type:
- 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:
SelectedorNot selected. - Roles: Multi-select dropdown containing all registered WordPress and WooCommerce roles (e.g.,
Customer,Wholesale Buyer,Subscriber,Shop Manager,VIP Member).
- Select Type:
- E-Commerce Use Case:
- B2B Wholesale Pricing: Provide an automatic 20% discount on catalog prices for customers with the
Wholesalerole. - Membership Perks: Offer 10% off storewide to subscribed members with the
VIProle.
- B2B Wholesale Pricing: Provide an automatic 20% discount on catalog prices for customers with the
- Pro Tip: If a customer has multiple roles, having at least one role matching the selection satisfies the
Selectedcondition.
๐ 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) orNo(guest visitors only).
- Option:
- 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:
SelectedorNot selected. - Capabilities: Multi-select list of system capabilities. When
Selectedis picked, the user must hold all selected capabilities.
- Select Type:
- E-Commerce Use Case:
- Employee store discounts: Automatically apply internal staff discounts to users who have the
edit_productsorread_private_shopcapability.
- Employee store discounts: Automatically apply internal staff discounts to users who have the
๐ท๏ธ User Meta (user_meta)โ
- What it does: Inspects custom user metadata stored in the WordPress
usermetatable. - 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.
- Meta Field Key: The exact custom field key (e.g.,
- E-Commerce Use Case:
- Tax-Exempt / VAT Discounts: Offer zero-rated promotions or trade bonuses if
vat_numberis not empty. - Affiliate Campaign: Grant an extra 5% discount if
referral_partnerequalsSUMMER2026.
- Tax-Exempt / VAT Discounts: Offer zero-rated promotions or trade bonuses if
- Pro Tip: Supports boolean checkboxes (
is_checkedchecks for1,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.
- Email Field: Comma-separated list of emails with full wildcard (
- E-Commerce Use Case:
- Student / Educational Discounts: Enter
*.edu, *.ac.ukto 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).
- Student / Educational Discounts: Enter
- 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.,
1for single-use promotions).
- Threshold Value: Positive integer specifying the maximum allowable orders per user (e.g.,
- 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.
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, orPrevious days/weeks/months/years. - Math Operation:
<,<=,>,>=,==,!=. - Threshold Amount: Numerical currency value (e.g.,
$500).
- Timeframe (
- E-Commerce Use Case:
- High-Roller VIP Club: Automatically apply a 15% VIP discount once a customer has spent over
$1,000all time. - Monthly Spend Bonus: Offer free shipping if the customer spent more than
$300within theCurrent Month.
- High-Roller VIP Club: Automatically apply a 15% VIP discount once a customer has spent over
๐ฆ 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.,
0for first-time buyers,5for frequent shoppers).
- Timeframe (
- E-Commerce Use Case:
- First-Order Welcome Gift: Set
Number of orders == 0to give 10% off exclusively to first-time shoppers. - 5th Order Milestone: Set
Number of orders >= 4to reward repeat patrons on their 5th purchase.
- First-Order Welcome Gift: Set
๐ณ 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.
- Math Operation:
- E-Commerce Use Case:
- Reward customers whose previous purchase exceeded
$200with an exclusive discount on their next cart.
- Reward customers whose previous purchase exceeded
๐ 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.
- High-AOV Retention: If a customer's average order value is greater than
๐
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.
- Time Type:
- E-Commerce Use Case:
- Lapsed Customer Win-Back: Set
Last order date is Before 60 Days agoto 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.
- Lapsed Customer Win-Back: Set
โญ 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 moreproduct reviews with a site-wide 10% discount.
- Review Bounty Program: Reward active reviewers who have written
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).
- Math Operation:
- 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.
- Heavy Order Surcharge/Discount: Offer a discount when customers order in freight bulk (e.g.,
๐ 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 moreitems.
- Multi-Item Bundle Promotion: Apply 10% off when the cart contains
๐ต 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.
- Coupon Condition:
- E-Commerce Use Case:
- Prevent Coupon Stacking: Set
Coupons Applied is None at allso dynamic sales prices cannot be combined with manual coupon codes.
- Prevent Coupon Stacking: Set
๐ 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)
- Maximum width 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).
- Clearance Deal Only for Plentiful Stock: Prevent discounts on scarce inventory by requiring
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
Ndistinct 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.
| Condition | ID | Target Evaluated | Best For |
|---|---|---|---|
| Products in cart | products_in_cart | Specific simple or variable parent products | BOGO deals and product-specific cross-sells |
| Product variations in cart | product_variations_in_cart | Specific variation SKUs (e.g., Blue / XL) | Clearing out slow-moving sizes or colors |
| Featured products in cart | featured_products_in_cart | Products marked as WooCommerce "Featured" | Storewide seasonal spotlight campaigns |
| Onsale products in cart | onsale_products_in_cart | Products currently with a sale price | Applying rules specifically to sale rack items |
| Product categories in cart | product_categories_in_cart | WooCommerce product categories | Category-wide sales (e.g., Shoes, Electronics) |
| Product attributes in cart | product_attributes_in_cart | Global attributes (e.g., Material = Leather) | Material, brand, or specification promotions |
| Product tags in cart | product_tags_in_cart | Product tags (e.g., summer, clearance) | Dynamic promotions across diverse catalog items |
| Shipping classes in cart | shipping_classes_in_cart | WooCommerce 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).
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 moretotal units in theOffice Suppliescategory 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
$500specifically onFine Winesin 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:
SelectedorNot selected. - Gateways: Direct Bank Transfer (BACS), Cash on Delivery (COD), Stripe, PayPal, Authorize.net, Mollie, Klarna, etc.
- Select Type:
- 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:
SelectedorNot selected.
- Search By:
- 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 selectedwith 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 selectedwith 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:
MatchorNot match. - Supported Formats:
- Exact postcodes:
90210, 10001, SW1A 1AA - Wildcards:
902*,SW1* - Ranges:
[90210 - 90220] - Comma-separated lists combining wildcards and ranges.
- Exact postcodes:
- 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 selectedacross 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
FragileorHazardous Materialsshipping 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
Ndistinct 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-01to2026-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, orYear. - 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.
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.