In some cases, you may need to block certain customers from completing orders on your WooCommerce store.
This could be due to fraud prevention, policy violations, or simply wanting to prevent repeat offenders from making purchases. Thankfully, WooCommerce provides the flexibility to implement an email blacklist with just a few lines of code.
In this tutorial, I’ll show you how to add a simple email blacklist using a custom function that checks the customer’s email at checkout. By adding these 8 lines of PHP to your theme’s functions.php file, you’ll be able to prevent orders from specific email addresses efficiently. Enjoy!

PHP Snippet: Deny Checkout Based On WooCommerce Billing Email (Blacklist)
Kudos to Georgi, Patrick and Maarten for inspiration!
/**
* @snippet WooCommerce Checkout Blacklist
* @how-to businessbloomer.com/woocommerce-customization
* @author Rodolfo Melogli, Business Bloomer
* @testedwith WooCommerce 9
* @community https://businessbloomer.com/club/
*/
add_action( 'woocommerce_after_checkout_validation', 'bbloomer_blacklist_billing_email', 9999, 2 );
function bbloomer_blacklist_billing_email( $data, $errors ) {
$blacklist = [ 'hello@example.com', 'info@lorem.io', 'me@john.co' ];
if ( in_array( $data['billing_email'], $blacklist ) ) {
$errors->add( 'blacklist', __( 'Sorry, our website is currently unable to process your request.', 'bbloomer' ) );
}
}
Mini-Plugin: Business Bloomer WooCommerce Checkout Email Blacklist Mini-Plugin
You don’t feel confident with coding? You don’t want to purchase yet another bloated, expensive plugin? Great!
Business Bloomer WooCommerce Checkout Email Blacklist Mini-Plugin comes without the usual WordPress plugin hassles. One feature. Lifetime license. No annoying subscriptions. 1 plugin file. A few lines of code. No banners. No up-sells. No WordPress notifications. Use it on as many websites as you like. Lifetime support. 1-page documentation. Super simple settings.
Speaking of which, here are the settings:
And you can even add emails to the blacklist via a button on the order edit page:
Now if a customer tries to check out on the Classic Checkout or Checkout Block and their email happens to be blacklisted, they’ll get an error message:
The plugin is straight forward. Install it, add emails to the blacklist, and you’re good to go. Simple!
Thanks for the blacklist email code.
I purchased your WooCommerce Toggle Payments By Country plugin and like the idea of your mini plugin for this code.
I am currently using a plugin that is no longer supported and it allows the blacklisting of the email address, IP address, domain as well as first and or last name.
Any plans on adding any of those functions to your plugin?
Thank you
Yes, I’m planning to build an add-on with additional blacklisting features, will keep you posted
It it possible to block a domain with this? e.g whatever@spamdomain.com – block all users with a spamdomain.com email address?
Hello Phil, thanks so much for your comment! Yes, this is definitely possible, but I’m afraid it’s custom work. If you’d like to get a quote, feel free to contact me here. Thanks a lot for your understanding!
I got chatgtp to allow it to detect wildcard on domains 😉
Nice!