Allow list
Only these domains may register.
Saved list
- helio-works.com
- helio-partners.eu
- j.abara@helio-works.com listed
- ops@mail.helio-works.com subdomain
- j.abara@gmail.com not listed
WordPress · WooCommerce · BuddyPress · five more
Decide which email domains may register. Everything else is refused at the form.
Restrict Email Domain holds one rule set for the whole site: an allow list, or a block list. Every registration path on the site is checked against it, from the WordPress form to WooCommerce checkout to BuddyPress signup, and the visitor is told the address is not accepted while they are still typing it.
Version 2.2.0 · Eight registration paths · Annual or lifetime
How it works
The plugin keeps a single allow list and a single block list for the whole site. Fill the allow list and only those domains register. Leave it empty and the block list does the work instead. Fill both and the allow list wins, which the plugin tells you plainly in its own configuration check rather than letting you guess.
Only these domains may register.
Saved list
These domains are refused, everything else registers.
Saved list
helio-works.com That domain, and by default its subdomains too. *.tempmail.io Anything under a host you do not trust. .tk A whole top level domain, or an academic suffix like .ac.uk. audit@gmail.com The email whitelist, which overrides every domain rule above.
Subdomains are included on purpose: listing helio-works.com also
admits mail.helio-works.com. One checkbox turns that off when you
want exact matches only, and a second makes matching case sensitive if you have a
reason to want it.
Coverage
Most domain filters only see the WordPress form, which is rarely the door people actually use. This one hooks the validation step of every registration path below, so a rule you set once applies at checkout and at community signup without a second plugin or a second list to keep in sync.
The standard registration form, plus multisite signup.
registration_errors My Account registration and the account created at checkout.
woocommerce_registration_errors Community signup, including the Nouveau AJAX form.
bp_signup_validate Registration forms and the AJAX submit behind them.
um_registration_validation Signup and the membership checkout form.
mepr_validate_signup Level checkout and the account page.
pmpro_registration_checks Registration and profile updates.
rcp_form_errors Registration fields and user updates.
wpmem_register_validate_fields Each integration switches itself off when its plugin is not installed, so nothing runs that does not need to. A table in the plugin's Tools tab shows which of the eight it has detected and at what version, which is the quickest way to confirm a form is really covered.
After it is live
Every refused attempt is written to its own table with the address, the domain, which form it came from, the IP and the time. Filter by date range, by source or by domain, page through it fifty rows at a time, and export the result as CSV. Old entries are deleted on a daily schedule after however many days you choose, thirty by default, so the table does not grow forever. Turn on notifications and each block also lands in your inbox.
Pricing
Personal, Professional and Agency ship the identical feature set: the allow list and block list, wildcard and extension patterns, the email whitelist, real time validation, all eight registration paths, the activity log with export, and the one click disposable import. The licence only decides how many sites you can activate it on. Every tier is available annually or as a one time lifetime licence. Read the refund policy.
1 site
$49/year
or $149 once · lifetime
Multiple sites
$99/year
or $299 once · lifetime
Unlimited sites
$129/year
or $349 once · lifetime
Runs on WordPress 5.0 or newer with PHP 7.4 or newer. The integrations activate themselves only when their plugin is present, so nothing else is required.
Before you buy
Eight paths. The WordPress registration form and multisite signup, WooCommerce account and checkout registration, BuddyPress signup including the Nouveau AJAX form, Ultimate Member, MemberPress, Paid Memberships Pro, Restrict Content Pro and WP-Members. Each one switches itself on only when that plugin is installed.
Whichever fits. Fill the allow list and only those domains may register. Leave it empty and the block list refuses the domains you name while everything else passes. If you fill both, the allow list wins and the block list is ignored, and the plugin says so in its configuration check rather than leaving you to work it out.
Yes, and subdomains are included by default. Listing company.com also admits mail.company.com and support.company.com. If you want exact matches only, one checkbox in Advanced turns the subdomain behaviour off. A separate domain, such as a subsidiary on its own name, is added to the same list.
The plugin ships a list of 4,931 known throwaway mail hosts and imports it into your block list with one button, either replacing what is there or adding to it. The file is bundled with the plugin, so nothing is fetched from a remote service. You can keep adding your own patterns as new hosts appear.
Yes. Any entry beginning with a dot is matched as a suffix, so .edu covers every .edu address, and .ac.uk or .edu.au work the same way. You can also list specific school domains instead, or mix both in the one list.
Yes. There is a separate email whitelist for individual addresses, and it is checked first. An address on that list registers even if its domain is on the block list or missing from the allow list.
No. There is one allow list and one block list, and they apply to every registration path on the site. What you control is which forms are covered, not a different rule per form or per role.
Your own message, which you write in the plugin. It appears under the email field about half a second after they stop typing, and again if they submit anyway. When five or fewer domains are on the allow list, the message can also name them, so someone using the wrong address knows what to use instead.
It adds one small request roughly half a second after typing stops, not on every keystroke. On the server an exact domain match is a single lookup, with wildcard and extension patterns checked separately, and the log table is indexed on the columns the admin filters by. If you would rather not have it at all, one checkbox disables real time validation and the rules still apply when the form is submitted.
Into a table of their own, with the address, the domain, which form it came from, the IP and the time. You can filter by date range, source or domain, page through fifty rows at a time, and export the result as CSV. Entries older than your retention setting are deleted on a daily schedule, thirty days by default. Optionally each block also emails you.
No. Logs stay in your own database, and the disposable domain list is a file inside the plugin rather than a remote feed. The only outbound call the plugin makes is the licence check for updates.
There is no free edition, and every purchase carries a 30-day money-back guarantee. All three tiers ship the identical feature set. Personal covers one site, Professional covers multiple sites, and Agency is unlimited.
Install it, name the domains you will accept or the ones you will not, and the next registration attempt is checked before an account exists. The log tells you what it turned away, and the email tester tells you whether your rule does what you meant.
30-day money-back guarantee · Annual or lifetime · Personal, Professional, Agency
WBComDesigns is amazing. The WP plugins and themes are of top notch quality with lots of features and updated very frequently. Supports are very responsive and helpful. I use Reign with TutorLMS, and the experience is surprisingly smooth.…