{"id":337874,"date":"2026-07-11T12:57:46","date_gmt":"2026-07-11T12:57:46","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/wonderful-disposable-email-blocker\/"},"modified":"2026-07-11T12:57:30","modified_gmt":"2026-07-11T12:57:30","slug":"wonderful-disposable-email-blocker","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/wonderful-disposable-email-blocker\/","author":23357214,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.0.1","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Wonderful Disposable Email Blocker","header_author":"Wonderful Plugins","header_description":"Blocks registrations, WooCommerce checkouts, and comments that use disposable (throwaway) email addresses, with custom block and allow lists.","assets_banners_color":"","last_updated":"2026-07-11 12:57:30","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wonderfulplugins.eu\/wonderful-disposable-email-blocker","header_author_uri":"https:\/\/wonderfulplugins.eu","rating":0,"author_block_rating":0,"active_installs":0,"downloads":38,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"wonderfulplugins","date":"2026-07-11 12:57:30"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3603924,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3603924,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1-de.jpg":{"filename":"screenshot-1-de.jpg","revision":3603924,"resolution":"1","location":"assets","locale":"de","width":2560,"height":3250},"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3603924,"resolution":"1","location":"assets","locale":"","width":2560,"height":3128}},"screenshots":{"1":"The settings page: blocked areas, behavior on block, and custom block\/allow lists."}},"plugin_section":[],"plugin_tags":[33588,12886,58672,271056,286],"plugin_category":[45],"plugin_contributors":[247385],"plugin_business_model":[],"class_list":["post-337874","plugin","type-plugin","status-publish","hentry","plugin_tags-block-email","plugin_tags-disposable-email","plugin_tags-fake-email","plugin_tags-spam-registration","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-wonderfulplugins","plugin_committers-wonderfulplugins"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/wonderful-disposable-email-blocker\/assets\/icon-128x128.png?rev=3603924","icon_2x":"https:\/\/ps.w.org\/wonderful-disposable-email-blocker\/assets\/icon-256x256.png?rev=3603924","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/wonderful-disposable-email-blocker\/assets\/screenshot-1.jpg?rev=3603924","caption":"The settings page: blocked areas, behavior on block, and custom block\/allow lists."}],"raw_content":"<!--section=description-->\n<p>Spam bots and freeloaders love disposable email addresses: they register accounts, place fake orders, and post comments with throwaway inboxes \u2014 addresses that are dead an hour later.<\/p>\n\n<p><strong>Wonderful Disposable Email Blocker<\/strong> checks the submitted email address against a list of thousands of known disposable email domains and lets you block four areas of your site independently:<\/p>\n\n<ul>\n<li><strong>WordPress registration<\/strong> \u2014 the wp-login.php registration form.<\/li>\n<li><strong>WooCommerce registration<\/strong> \u2014 account registration on the My Account page and other WooCommerce registration forms (which WordPress-only spam plugins often miss, because WooCommerce validates registrations through its own hook).<\/li>\n<li><strong>WooCommerce checkout<\/strong> \u2014 the billing email address at checkout.<\/li>\n<li><strong>Comments<\/strong> \u2014 comments submitted with a disposable address.<\/li>\n<\/ul>\n\n<p><strong>You decide what happens<\/strong> when a submission is blocked:<\/p>\n\n<ul>\n<li><strong>Show an error message<\/strong> (customizable, basic HTML allowed) so real visitors can switch to a permanent address, or<\/li>\n<li><strong>Silently discard<\/strong> \u2014 the registration looks successful but no account is created, and comments are quietly marked as spam. Bots never learn they were blocked. (The checkout always shows the error message \u2014 an order cannot be silently discarded.)<\/li>\n<\/ul>\n\n<p><strong>Your own lists:<\/strong><\/p>\n\n<ul>\n<li><strong>Additional blocklist<\/strong> \u2014 one entry per line; a full email address blocks exactly that address, a domain blocks the domain and all its subdomains.<\/li>\n<li><strong>Allowlist<\/strong> \u2014 addresses and domains that are never blocked. The allowlist always wins, even over the disposable domain list.<\/li>\n<\/ul>\n\n<p><strong>Built-in safety rails:<\/strong><\/p>\n\n<ul>\n<li>Logged-in administrators are never blocked \u2014 you can always test your own checkout.<\/li>\n<li>Invalid email addresses are left to the form's own validation; the plugin only ever blocks, it never approves anything.<\/li>\n<li>If the domain list cannot be read, nothing is blocked \u2014 the plugin fails open, never breaks your forms.<\/li>\n<li>Subdomain trick protection: \"anything.disposable-domain.com\" is blocked when \"disposable-domain.com\" is on the list.<\/li>\n<\/ul>\n\n<p><strong>Domain data:<\/strong> the plugin ships with a bundled copy of the community-maintained <a href=\"https:\/\/github.com\/disposable-email-domains\/disposable-email-domains\">disposable-email-domains<\/a> list (thousands of domains, CC0 \/ public domain) and works completely offline out of the box. Optionally, one click downloads the newest list from GitHub onto your server, after which it refreshes itself once a week.<\/p>\n\n<p>For developers: the <code>wonderful_disposable_email_blocker_pre_is_blocked<\/code> and <code>wonderful_disposable_email_blocker_is_blocked<\/code> filters short-circuit or veto any decision, and every block fires the <code>wonderful_disposable_email_blocker_blocked<\/code> action for logging.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin can download the current disposable domain list from raw.githubusercontent.com (the disposable-email-domains community project on GitHub). The download only happens when you actively opt in by clicking the \"Update domain list now\" button on the settings page; afterwards a weekly scheduled refresh re-downloads the list from the same URL. The request contains no personal data whatsoever \u2014 it is a plain file download. Visitor email addresses are always checked locally on your server and never leave your site. This service is provided by GitHub: <a href=\"https:\/\/docs.github.com\/en\/site-policy\/github-terms\/github-terms-of-service\">terms of service<\/a>, <a href=\"https:\/\/docs.github.com\/en\/site-policy\/privacy-policies\/github-privacy-statement\">privacy statement<\/a>.<\/p>\n\n<p>Without the opt-in the plugin makes no external requests at all and uses only the bundled list.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>wonderful-disposable-email-blocker<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li>Go to <strong>Settings &gt; Disposable Email Blocker<\/strong> and tick the areas you want to protect (registration, WooCommerce registration, checkout, comments).<\/li>\n<li>Choose what happens with blocked submissions: show an error message or silently discard.<\/li>\n<li>Optional: click <strong>Update domain list now<\/strong> to fetch the newest community list, and add your own entries to the blocklist and allowlist.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20happens%20right%20after%20activation%3F\"><h3>What happens right after activation?<\/h3><\/dt>\n<dd><p>Nothing yet \u2014 all four areas start switched off. Blocking starts only for the areas you explicitly enable, so activating the plugin can never break a running shop.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20send%20my%20visitors%27%20email%20addresses%20anywhere%3F\"><h3>Does this plugin send my visitors' email addresses anywhere?<\/h3><\/dt>\n<dd><p>No. All checks run locally against a list file on your server. The only external request is the optional domain list download, which you trigger yourself and which contains no personal data.<\/p><\/dd>\n<dt id=\"a%20legitimate%20customer%20is%20being%20blocked%20%E2%80%94%20what%20do%20i%20do%3F\"><h3>A legitimate customer is being blocked \u2014 what do I do?<\/h3><\/dt>\n<dd><p>Put their email address (or their whole domain) on the allowlist. The allowlist always wins over every blocklist.<\/p><\/dd>\n<dt id=\"where%20does%20the%20domain%20list%20come%20from%3F\"><h3>Where does the domain list come from?<\/h3><\/dt>\n<dd><p>From the community-maintained disposable-email-domains project (CC0 \/ public domain). A copy is bundled with the plugin, so it works completely offline; the update button fetches the newest version from GitHub.<\/p><\/dd>\n<dt id=\"why%20does%20the%20checkout%20always%20show%20the%20error%20message%2C%20even%20in%20silent%20mode%3F\"><h3>Why does the checkout always show the error message, even in silent mode?<\/h3><\/dt>\n<dd><p>A checkout ends with a real order and a payment. Faking success would mean taking the customer's money without recording an order \u2014 so blocked checkouts always get an honest error message instead.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20custom%20woocommerce%20registration%20forms%3F\"><h3>Does it work with custom WooCommerce registration forms?<\/h3><\/dt>\n<dd><p>Yes, as long as the form creates its customers through <code>wc_create_new_customer()<\/code> (the WooCommerce standard), because validation runs through the <code>woocommerce_registration_errors<\/code> hook.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Readme cleanup: removed third-party service names from the description.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Blocks registrations, WooCommerce checkouts, and comments that use disposable (throwaway) email addresses, with custom block and allow lists.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/337874","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=337874"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/wonderfulplugins"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=337874"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=337874"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=337874"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=337874"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=337874"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=337874"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}