Documentation Restrict Checkout for WooCommerce

Restrict Checkout for WooCommerce

Version 1.0.0 · Updated April 2026

Requirements

Please confirm your environment meets the following requirements before installing:

Restrict Checkout is tested against the latest stable WooCommerce and WordPress releases and is HPOS (High Performance Order Storage) compatible.

Installation

Method 1 — Upload via WordPress Admin (Recommended)

  1. Download restrict-checkout.zip from your My Account downloads page.
  2. In WordPress admin, go to Plugins → Add New Plugin.
  3. Click Upload Plugin → Choose File, select the zip, and click Install Now.
  4. Click Activate Plugin once installation completes.

Method 2 — FTP Upload

  1. Unzip restrict-checkout.zip on your local computer.
  2. Connect to your server via FTP and navigate to /wp-content/plugins/.
  3. Upload the extracted restrict-checkout folder.
  4. In WordPress admin, go to Plugins → Installed Plugins and activate Restrict Checkout for WooCommerce.

Licence Activation

  1. Go to WooCommerce → Restrict Checkout → Licence.
  2. Enter your CA- licence key from your purchase confirmation email.
  3. Click Activate Licence.

Your licence key is also available from My Account → Orders on coreaddons.com.

Creating Rules

Each restriction is defined as a named rule. Rules are evaluated at checkout, on the cart page, and on the checkout page load. When a rule's conditions are met, checkout is blocked and the configured message or redirect is triggered.

  1. Go to WooCommerce → Restrict Checkout → Rules.
  2. Click Add New Rule.
  3. Enter a Rule Name (internal, not shown to customers — e.g., "Block guests from checkout").
  4. Set the rule Status to Active. Inactive rules are saved but not evaluated.
  5. Add one or more Conditions (see Conditions section below).
  6. Set the Error Message or Redirect URL to trigger when conditions are met.
  7. Optionally configure a Schedule (date range) for time-limited restrictions.
  8. Click Save Rule.

⚠️ Rules take effect immediately when saved and set to Active. Test on a staging site or while logged out of your admin account to verify the restriction works as intended.

Rule Conditions

Each rule can have one or more conditions. Available condition types:

User Role

Block or allow checkout based on the current user's WordPress role. Select one or more roles from the dropdown. Useful for restricting wholesale-only products, or preventing specific roles from ordering certain items.

Login Status

Select Guest (not logged in) or Logged In to restrict based on authentication status. Commonly used to force account creation before checkout.

Cart Value

Set a Minimum cart total, Maximum cart total, or both. When the cart total is outside the configured range, the restriction triggers. For example, block checkout if cart total is below $10 (minimum order value enforcement).

Specific Products in Cart

Trigger the restriction when selected products are (or are not) present in the cart. Search and select products by name. Useful for isolating checkout rules to specific items — for example, blocking guest checkout only when a specific restricted product is in the cart.

Product Categories in Cart

Same as specific products but at category level. The condition triggers when any product from the selected categories is (or is not) in the cart.

Customer Location

Restrict checkout based on the customer's billing or shipping country and/or state. Select one or more countries. Optionally refine to specific states within those countries. Use this to block orders from regions you do not ship to.

Location detection uses the billing/shipping address entered at checkout, not the customer's IP address. The restriction is enforced when the customer proceeds to the payment step.

Error Messages

When a restriction triggers, you can display a custom message to the customer at the top of the checkout page.

  1. In the rule editor, find the Error Message field.
  2. Enter the message you want customers to see. HTML is supported for links or emphasis. Example: Sorry, this product is only available to registered customers. Please <a href="/my-account">log in</a> to continue.
  3. Choose where to display it: Above checkout form, In cart notices, or both.

If both an error message and a redirect URL are configured, the redirect takes priority and the message is not shown.

Redirects

Instead of (or in addition to) showing an error message, you can redirect customers to a specific URL when a rule triggers.

  1. In the rule editor, enter a full URL in the Redirect URL field (e.g., https://yoursite.com/members-only).
  2. The customer is immediately redirected when the condition is met on the checkout or cart page.

Common redirect use cases: redirect guests to the registration page, redirect customers from blocked countries to a region-specific landing page, redirect carts below minimum order to a "minimum order" notice page.

Rule Scheduling

Rules can be set to only apply during a specific date range — useful for temporary promotions, holiday restrictions, or sale blackout periods.

  1. In the rule editor, expand the Schedule section.
  2. Set a Start Date and/or End Date.
  3. The rule is only evaluated when the current date falls within the scheduled range.
  4. Outside the scheduled range, the rule is skipped (even if its status is Active).

If you leave both start and end dates blank, the rule runs indefinitely as long as it is Active.

Rule scheduling uses your WordPress timezone setting. Confirm your timezone in Settings → General → Timezone to ensure rules activate at the expected time.

Multiple Rules

You can create as many rules as needed. All active rules are evaluated every time a customer visits the cart or checkout page. Rules are evaluated in the order they appear in the rules list — drag and drop to reorder them.

As soon as one rule's conditions are met, its action (message or redirect) is triggered and evaluation stops. Subsequent rules are not evaluated for that request.

To manage rule priority: go to WooCommerce → Restrict Checkout → Rules, click and drag rules to reorder. More specific rules should generally be placed above broader ones.

Rule Logic (AND / OR)

When a rule contains multiple conditions, you control how they are combined:

The logic selector (All conditions must match / Any condition must match) appears at the top of the conditions section within each rule.

For complex scenarios requiring mixed logic (e.g., "A AND (B OR C)"), create multiple rules with narrower conditions rather than trying to encode all logic in one rule.

Compatibility

Troubleshooting

Rule is not triggering at checkout

Confirm the rule status is Active. Check that the condition values are correct — for example, user role names are case-sensitive and must match exactly. If a schedule is set, verify today's date is within the range. Clear your site cache.

Rule is triggering for the wrong customers

Review your condition values carefully. For user role rules, check whether your admin account has multiple roles — if "Administrator" is in the condition, the restriction applies to you too. Add an exclusion condition for the Administrator role to avoid blocking yourself during testing.

Error message is not visible

Check that no redirect URL is set (redirects override messages). Also confirm that WooCommerce notice display is not suppressed by your theme or a page builder plugin. Inspect the checkout page source to check whether the notice HTML is present but hidden by CSS.

Location-based rule is not working

Location restrictions check the address entered at checkout, not the customer's IP. The rule triggers after the customer fills in their billing/shipping address. Ensure customers are entering an address before the restriction is evaluated, and confirm the country codes in the rule match WooCommerce's country codes (ISO 3166-1 alpha-2 format, e.g., US, GB).

Changelog

Version 1.0.0 — April 2026

Still need help?

Our support team responds within 24 hours on business days. Email us at support@coreaddons.com and include your site URL, licence key, and a description of the issue for the fastest response.

Contact Support