SMART COD PRO

Conditions reference

Choose a condition and how it matches

The same condition editor is used for COD restrictions, fees and advance payments. Choose the field, then an available Match option and values. “is” matches one of the selected values; “is not” excludes them. For product lists and coupons, “contains any” requires at least one selected value; “contains none” requires none. These compare complete values, not fragments of text. Every condition in one rule must match; create separate rules for alternatives.

Any item, every item and selected values

“every cart item matches” requires each cart line to match a selected product, category, shipping class, SKU or vendor. Quantity two is still one line. With products A and B in the cart and only A selected, “contains any” matches but “every cart item matches” does not. “not every cart item matches” requires an unmatched line. For coupons and vendors, “all applied values are selected” means no applied value lies outside your list; it does not require every selected value to be present. An empty applied list does not satisfy this last option or its opposite.

Set inclusive ranges

Minimum and maximum are inclusive. Leave one empty for an open range; zero is a real value. For example, minimum quantity 3 matches quantities 3 and above. “is not within” means below the minimum or above the maximum. With each-product weight or stock, “is within” requires every measured line to be inside the range, while a known outside line proves “is not within”. Weight uses your WooCommerce weight unit. Unmanaged stock is unknown, not zero; measured stock may be negative.

Missing data and private values

Unavailable data does not turn a negative condition into a match. A known absence, such as no applied coupon, differs from data that could not be read. Enter text values one per line. City matching ignores case in every country, but does not remove accents or translate names. Phone matching does not guess country codes. Postcodes, cities, account IDs, email, phone, coupons and SKUs stay on WordPress; only store-specific keyed tokens are sent for server evaluation. If their local copy is missing, re-enter the values before saving.

Preview, save and test

The restriction and fee previews update when you change a field, value or Match option. They describe your draft; they do not save or activate it. Review imported PRO conditions, save COD protection and check the confirmation. Test both a matching and a nonmatching cart, including the exact boundary, then inspect the decision audit. The server evaluates the saved store policy; unsaved changes do not affect checkout.

Destination & shipping
Delivery country
Select the shipping destination countries. Billing country is used only when no shipping country exists. This works for every supported WooCommerce country.
Shipping method
Choose the exact shipping rate. Two instances of the same method can be different choices. A cart without a selected shipping rate does not match a shipping-method condition.
Shipping zone
Matches the destination zone selected by WooCommerce, including Rest of the world. It follows your store’s zone configuration, not a hard-coded country list.
Shipping zone and method
Select a method within a specific zone. Use this when a method such as Flat rate exists in several zones and only one should trigger the rule.
Delivery state / region
Choose the region together with its country. Regions with similar codes in different countries are distinct. An unavailable region does not count as a match or an exclusion.
Delivery postcode
Enter exact postcodes, one per line. Leading zeros are preserved. Numeric intervals such as 55133...55600 include both ends; for alphanumeric postcodes use exact values, without wildcards.
Delivery city
Enter city names one per line, in the spelling customers use. Matching ignores letter case across countries and scripts. Málaga differs from Malaga; it is not a fuzzy search or transliteration.
Customer & account
Customer type
Distinguishes guest customers from customers currently signed in to WordPress. Entering an email that belongs to an account does not make a guest signed in.
Customer role
Select WordPress roles, for example Customer or Wholesale customer, or Guest. A signed-in user may have multiple roles; matching one selected role is sufficient.
Customer account
Select specific WordPress customer accounts. This identifies the signed-in account, not every shopper with the same billing email. A guest has no customer account.
Customer email
Enter complete billing email addresses, one per line. Matching trims surrounding spaces and compares the exact value; it does not match domains, substrings or email aliases automatically.
Customer phone
Enter complete billing phone values, one per line. Surrounding spaces are trimmed. +306900000001 and 6900000001 are different values; add the forms you intend to match.
Products & marketplace vendors
Product or variation
Select products or specific variations. A selected parent product includes its variations; selecting one variation matches only that variation. Use the Match selector for any or every cart line.
Product category
Matches the product’s assigned categories. Variations use their parent product’s categories. Choose whether any, none or every cart line must match the selected categories.
Shipping class
Matches the product’s shipping class, including a variation’s inherited class. A product without that class does not match it. Every-item matching checks all cart lines.
Product SKU
Enter exact SKUs, one per line. A variation can match its own SKU or the parent SKU. Use any/every-item matching to distinguish a mixed cart from one consisting entirely of matching lines.
WCFM vendor
Select vendor accounts for products assigned through WCFM. Requires the relevant marketplace integration to provide vendor data. Missing vendor data does not mean the cart has no selected vendor.
Dokan vendor
Select vendor accounts associated with products in Dokan. Variations follow the parent product’s vendor. Use any, every or selected-value matching according to whether mixed-vendor carts should qualify.
Amounts, quantities, weight & stock
Cart subtotal
The product amount after coupon discounts, excluding tax, shipping and fees. A minimum of 150 includes exactly €150 in an EUR store. This is not the final amount payable.
Total cart quantity
Adds the quantities of all cart lines. Two units of one product and one of another give quantity 3, even though the cart has only two lines.
Total cart weight
Adds physical product weight multiplied by quantity, in your store’s weight unit. A physical item with unknown weight makes the total unavailable; virtual products contribute no shipping weight.
Each product weight
Checks each cart line’s product weight without multiplying by quantity. Use “is within” when every product must be inside the range, or “is not within” when a measured product lies outside it.
Each product stock quantity
Checks measured stock for each product, using parent stock when the parent manages a variation. Cart quantity does not multiply this number. Zero and negative stock are valid; unmanaged stock is unknown.
Cart amount before tax and shipping
Discounted product amount without tax, shipping or fees. Example: €100 of products after discounts gives 100. Coupon discounts change this amount.
Cart amount including tax
Discounted products plus product tax, excluding shipping and fees. Example: €100 of products with €24 product tax gives 124, regardless of shipping charges.
Cart amount including shipping
Discounted products plus shipping before tax. Example: €100 of products and €5 net shipping gives 105. Product tax, shipping tax and fees are excluded.
Cart amount including tax and shipping
Discounted products, product tax, shipping and shipping tax, excluding fees. Example: €100 + €24 product tax + €5 shipping + €1.20 shipping tax gives 130.20.
Coupons, invoices & backorders
Applied coupon
Enter coupon codes, one per line. Matching follows WooCommerce’s coupon formatting. For selected codes A and B, a cart with only A satisfies “all applied values are selected”; A and C does not.
Invoice requested
Checks the supported invoice selector: billing_invoice in Classic or the registered webexpert/billing_invoice field in Blocks. An explicit invoice request means Yes; without one it is No. Entering a company name alone does not count as an invoice request.
Cart contains a backorder
Yes means at least one cart line is actually on backorder for the requested quantity. Merely allowing backorders in product settings is not enough. One confirmed backorder establishes Yes.
Next topicCOD fees →

Use the arrow keys to browse. Press Escape or click outside the image viewer to close.