xpay✦ Commerce
Directory
WooCommerce plugins
Checkout Guard – Block Fake Orders, Spam & Fraud for WooCommerce
Checkout Guard – Block Fake Orders, Spam & Fraud for WooCommerce
Block fake and spam WooCommerce orders at checkout. Stop disposable email, junk names, bad IPs, and countries you don't sell to.
5.0
(2 ratings)Will this break my store?
What the WordPress.org registry says about keeping Checkout Guard – Block Fake Orders, Spam & Fraud for WooCommerce running.
Tested to 7.1
Tested against the WordPress branch in use today.8 days ago
At least 3.0 releases a year since launch. WordPress.org only lists versions still available for download, so the real number may be higher.7.4
Your host must be running at least this version.5.3
woocommerce
These must be installed and active first.1
A single maintainer. Worth knowing if the plugin is load-bearing for your store.Maintenance & trust
Scored on how Checkout Guard – Block Fake Orders, Spam & Fraud for WooCommerce is looked after — not on how many stores run it.
Maintenance
35 / 35WordPress compatibility
20 / 20Support responsiveness
Not enough dataMerchant satisfaction
11 / 15Listing transparency
7 / 10Ratings
5.0
2 ratingsStop fake and unwanted WooCommerce orders before they happen. Checkout Guard blocks suspicious checkouts using simple rules you control, with no external fraud service, no scoring engine, and no monthly fee.
Often you already know what you want to block: a throwaway email domain, a repeat offender’s IP, a country you don’t ship to. Checkout Guard puts those controls directly in your WooCommerce checkout.
🛡️ Block throwaway email services
Switch on one setting and Checkout Guard rejects checkouts from around 22,000 known disposable-email domains: Mailinator, Guerrilla Mail, YOPmail, Temp-Mail and thousands more. The list ships with the plugin, so it works the moment you enable it, with no signup and no API key.
🛡️ Block by email address, domain or pattern
Block individual addresses or whole domains, with wildcard support:
*@bad-domain.comblocks every address at that domainspam*@bad-domain.comblocksspammer@bad-domain.combut leavesnice@bad-domain.comalone*.edublocks every address ending in that TLD
Catch-all entries such as * or *@* would block every order on your store, so they are rejected when you save.
🛡️ Reject junk names
Catches checkouts where the name is obviously not a name: test, asdf, qwerty, John Doe and similar. Matching is exact and whole-field, so a customer called Testa or Contestabile is never affected by the entry test.
You can read the full list on the settings screen before switching the rule on.
🛡️ Check that the email can actually receive mail
Optionally look up the address’s domain during checkout and turn the order away if it cannot receive mail at all. If the lookup itself fails, the order goes through, so a DNS problem never costs you a sale.
🛡️ Block by IP address
Block individual IPv4 addresses, or use wildcards to cover a range:
203.0.113.*
Useful when you identify a recurring source of unwanted checkout attempts. If your store sits behind Cloudflare or another proxy, Checkout Guard reads the forwarded visitor IP rather than the edge server’s.
🛡️ Restrict billing countries
Block checkout for billing countries you don’t serve. This is a blocklist: you name the countries to turn away, not the ones to allow.
🛡️ Restrict order totals
Set a minimum, a maximum, or both, and stop checkouts falling outside the range. Useful against waves of suspicious low-value orders, or unusually large ones worth reviewing by hand.
⭐ Try it before it blocks anyone
Set Protection Mode to Learning and Checkout Guard records what each rule would have caught without turning a single customer away. Check the results, adjust your rules, then switch to Enforce when you are happy. Nothing is blocked until you say so.
📋 See what was blocked
Turn on recording, and the Blocked attempts tab lists every checkout a rule matched: when, which rules, which checkout, the email, the IP, and the cart total. A summary shows how many were stopped in the last 7 and 30 days and which rule fires most often.
Records are pruned automatically so the table never grows without limit.
🛒 Works with every checkout
Checkout Guard enforces on the classic WooCommerce checkout, the WooCommerce Checkout block, and express checkouts.
Wallet buttons placed on a product or cart page skip the checkout form entirely, so they are an easy route for a blocked customer to slip through. Checkout Guard checks the ones that create their order through WooCommerce, Apple Pay included. One known exception is described in the FAQ.
It also declares compatibility with High-Performance Order Storage (HPOS).
⚡ Designed to stay out of the way
Checks run during checkout validation, not on normal browsing, so regular customers shop at normal speed. The bundled domain list is only loaded into memory when you actually enable it.
Important: This plugin is an extension of the WooCommerce plugin, and it cannot function independently.
💻 Filters and Actions
Multiple hooks let you customize the plugin further. Rules live in a filterable registry, so a developer can add their own rules, change the bundled lists, or adjust matching. If you need any extra hooks, please don’t hesitate to ask.
Set Protection Mode to Learning first. Every rule runs and records what it would have caught, but nothing is blocked and no customer is turned away. When the results look right, switch to Enforce.
Around 22,000, bundled with the plugin and based on the public disposable email domains list. The settings screen links to the source so you can check any domain. It is a copy taken when the plugin was released, so it will not match the source exactly.
No. Firefox Relay, Apple Hide My Email and Addy deliver to a real permanent inbox, so blocking them would reject a paying customer. They are excluded from the bundled list.
No. Matching is exact and whole-field, never a substring, so test blocks a customer who types “Test” as their whole name but never affects Testa, Contestabile or Testani. The full list is shown on the settings screen so you can check it before switching the rule on.
Enter *@bad-domain.com on its own line in the email blocklist. That blocks every billing email at that domain, and nothing else.
You can also enter the bare domain, bad-domain.com. The difference is precision: a bare domain matches anywhere in the address, so it will also catch someone@notbad-domain.com. The *@ form matches the domain exactly. Prefer the wildcard unless you specifically want the looser match.
The * wildcard stands for any run of characters, and the pattern must match the whole address:
*@bad-domain.comblocks every address at that domain.spam*@bad-domain.comblocksspammer@bad-domain.combut leavesnice@bad-domain.comalone.*.edublocks every address ending in that TLD.
Catch-all entries such as * or *@* would block every order on your store, so they are rejected and removed when you save.
Yes. Checkout Guard supports IPv4 wildcards, so 203.0.113.* covers that whole range. Wildcards are IPv4 only.
Yes. Checkout Guard reads forwarded proxy headers by default, so IP rules match the real visitor rather than the CDN edge. If your store is not behind a proxy you can switch that off in Store Setup.
Not currently. The country rule is a blocklist: you list the countries to turn away.
Yes. The classic checkout, the WooCommerce Checkout block and express checkouts are all enforced, with one known exception noted below, and the plugin declares HPOS compatibility.
Apple Pay is, including on product and cart pages. The WooCommerce PayPal Payments gateway sends it through WooCommerce’s own checkout, so every rule runs and a blocked attempt is stopped before the order is created.
Express buttons in general are checked whenever the gateway creates its order through WooCommerce. WooPayments is covered in full: its Apple Pay, Google Pay, Link and WooPay buttons all place the order the same way the Checkout block does, so every rule runs wherever you put the button. A blocked attempt leaves nothing in your orders list.
There is one known exception. WooCommerce PayPal Payments has a setting called “Pay Now Experience”, which lets customers skip the Order Review page and is switched on for new merchants during its setup. With it on, the PayPal button on a product or cart page builds the order itself without going through WooCommerce’s checkout, and Checkout Guard does not see those orders. Support for them is planned. In the meantime, switching “Pay Now Experience” off in the PayPal settings sends those customers through the checkout page instead, where every rule runs. Apple Pay is unaffected either way.
No. Checks run during checkout validation, not on normal browsing, so browsing speed is unaffected. The bundled disposable-domain list is only loaded when you enable it, and the optional deliverability lookup is the only rule that touches the network.
Only if you switch recording on, and it is off by default. When enabled, a blocked attempt stores the billing email, IP, cart total and which rules matched. Records are deleted automatically after the retention period you choose, 90 days by default.
Categories
Plugin details
Tags on WordPress.org
