Visser Labs – WooCommerce Plugins
  1. Home
  2. Knowledge Base
  3. Checkout Guard
  4. How Checkout Guard blocks orders at WooCommerce checkout

How Checkout Guard blocks orders at WooCommerce checkout

A blocked customer rarely gives up after one failed order. They’ll retry checkout, sometimes more than once, and if nothing visibly stops them you’re left wondering whether your blocking rules are even working. Checkout Guard steps in the moment a checkout attempt matches one of your blocked entries, before the order is placed, so you don’t have to catch and cancel it yourself.

This article explains what actually happens behind the scenes when Checkout Guard blocks an order, on both the classic checkout and WooCommerce’s Block Checkout. For how to add, edit, or delete the entries Checkout Guard checks against, see Block customers by name or email in Checkout Guard.

How blocking works, step by step

Checkout Guard checks every checkout attempt against your Blocked Entries list in real time, so nothing needs to run in the background or refresh on a schedule. Here’s what happens on a typical order:

  1. A shopper adds items to their cart and goes to checkout.
  2. They fill in their billing name and email.
  3. Checkout Guard compares those details against your Blocked Entries list as the checkout page updates, and again the moment they try to place the order.
  4. If nothing matches, checkout continues as normal and Checkout Guard stays out of the way.
  5. If a match is found, Checkout Guard stops the order right there. Instead of an order confirmation, the shopper sees your checkout denial message, and their cart is emptied.

This flow is the same no matter what the shopper does. Whether they check out as a guest or a logged-in customer, or apply a coupon first, Checkout Guard still catches a match before the order is placed.

Classic checkout vs. Block Checkout

WooCommerce has two different checkout experiences, and Checkout Guard supports both, but it hooks into each one differently under the hood:

  • Classic checkout (the older, shortcode-based checkout page): Checkout Guard checks your billing details live as the checkout page updates, for example when you change your shipping address. It checks again right when you click Place order, as WooCommerce validates the form. Either check can catch a match, so a blocked shopper is stopped as early as possible.
  • Block Checkout (WooCommerce’s newer Cart and Checkout blocks, built from editable blocks): Checkout Guard checks your billing details through WooCommerce’s newer Store API instead, since Block Checkout doesn’t process orders the same way the classic checkout does. It checks at two separate points in that process, so a match is still caught even if a shopper’s checkout attempt doesn’t follow the usual pattern.

You don’t need to know which checkout type your store uses for Checkout Guard to work. It detects which one handled the order and applies the matching check either way.

This matching behavior is the same whether you’re running a current or older version of WooCommerce Blocks, so you don’t need to change anything if you update WooCommerce.

What happens when an order is blocked

Once Checkout Guard finds a match, it takes the same core actions regardless of which checkout your store uses:

  • The cart is emptied. Every item in the customer’s cart is removed immediately, so a blocked customer can’t just retry the same order.
  • The session is reset. Checkout Guard also expires the customer’s WooCommerce session, so they start fresh rather than picking up where they left off.
  • The customer sees your denial message. Instead of an order confirmation, the customer sees the message you’ve set as a checkout error, and the order doesn’t go through.

On Block Checkout specifically, Checkout Guard also deletes the order record that WooCommerce had already started creating. The classic checkout doesn’t need this step, because Checkout Guard blocks the order before WooCommerce creates it.

None of this affects orders a blocked customer placed before you added them to your blocked entries list. Blocking only stops new checkout attempts going forward.

Customizing the denial message

Go to WooCommerce → Checkout Guard, then open the Settings tab. Under Checkout Denial Message, edit the text a blocked customer sees at checkout, and use the live Preview below the field to check how it reads. Click Save Changes to apply it. If you leave this field blank, Checkout Guard shows a default message asking the customer to contact support.

The Checkout Denial Message field on the Checkout Guard Settings tab with its live preview

What triggers a block

Checkout Guard compares the billing name and email entered at checkout against every entry in your Blocked Entries list, and this comparison isn’t case-sensitive. A match on either a full name pair or an email address is enough to trigger a block. For the full matching rules, including how partial name entries are handled, see Block customers by name or email in Checkout Guard.

FAQ

Does blocking work the same way on both checkout types?
Yes. Checkout Guard checks the same blocked entries list and shows the same denial message whether your store uses the classic checkout or Block Checkout. The underlying checks happen at different points because the two checkout types work differently, but the outcome for the customer is the same.
Will a blocked customer know why they were blocked?
They’ll see your Checkout Denial Message as a checkout error, but Checkout Guard doesn’t reveal that they matched a blocked entry specifically. Word the message however you’re comfortable with, since it’s the only explanation the customer gets.
Is blocking a free feature, or does it need an active license?
Blocking runs as soon as you add an entry to your Blocked Entries list, regardless of your license status. Keep in mind that Checkout Guard is a licensed plugin overall, so an active license keeps you eligible for updates and support.
Does a blocked order still count toward my store’s abandoned cart stats?
No new order is ever placed, so there’s nothing for WooCommerce to record as abandoned. On Block Checkout, Checkout Guard also deletes the order record WooCommerce had started creating, so it won’t show up in your orders list either.

Need more help?

Checkout Guard is a licensed plugin. If you have questions about how blocking behaves on your setup, open a support ticket and our team will help you sort it out.

Was this article helpful?

Related Articles

Resources & Help