=== Stackedboost Email Guard - Block Disposable & Fake Emails for WooCommerce ===
Contributors: stackedboost
Tags: disposable email, temporary email, email validation, woocommerce, fake email
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.2.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Block disposable, temporary, fake and mistyped email addresses at WooCommerce checkout, before the order is placed.

== Description ==

Bad email addresses cause failed deliveries, chargebacks, fake accounts, and support tickets. Email Guard checks the customer's email at checkout and stops the risky ones before the order goes through, entirely on your own server, with no account required.

**Free version (this plugin):**

* Blocks over 8,200 known disposable and temp-mail domains at checkout, including subdomains
* Catches common typos and suggests the correct domain ("Did you mean gmail.com?")
* Enforces your own blocklist, and an allow list that overrules everything
* Also validates email on account registration
* A dashboard showing what it actually caught: counts, corrected typos and blocked domains
* 100% local. No external service, no account, no data leaves your site

The domain list is bundled with the plugin, so blocking keeps working whether or not you are online and without sending a single customer address anywhere.

**Email Guard Pro (optional, from https://stackedboost.com/woocommerce/stackedboost-email-guard/):**

Pro is not a bigger list. It is the checks a bundled file cannot perform at all, because they need a live lookup at the moment the order arrives:

* DNS and MX deep scan, to catch domains that cannot receive mail
* Post-order risk scoring and automatic order tagging
* Instant alerts when a risky order lands
* Hosted risk dashboard across your orders

Pro is a separate add-on from Stackedboost and is not required to use the free version. Everything listed above under the free version keeps working whether or not you ever buy it.

**Credits**

The bundled domain list is derived from the disposable-email-domains project, dedicated to the public domain under CC0 1.0. Attribution is not required by that licence; it is given because the work deserves it.

== Installation ==

1. Upload the plugin to `/wp-content/plugins/` or install it from the Plugins screen.
2. Activate it through the **Plugins** screen.
3. Make sure WooCommerce is active.
4. Go to **WooCommerce → Email Guard** to configure blocking, typo suggestions, and your own block and allow lists.

That is the whole setup for the free version: there is no account to create and nothing to connect.

If you bought Email Guard Pro, paste your licence key into the **Email Guard Pro licence** box on that same screen and press **Activate licence**. One licence covers one site; you can move it to another site from your account at any time.

== Frequently Asked Questions ==

= Does this send customer data anywhere? =

No. The free version performs all checks locally on your own server using bundled lists. Nothing is sent to any external service.

= Does it require WooCommerce? =

Yes. Email Guard protects the WooCommerce checkout and account registration.

= Does it work with the new block-based checkout? =

Yes. Email Guard validates both the classic (shortcode) checkout and the newer Cart/Checkout blocks (Store API). On the block checkout, a blocked email stops the order when "Place order" is clicked.

= Will it block real customers? =

The bundled list contains disposable and temp-mail providers only, and the typo map covers near-certain mistakes. If a real customer is ever refused anyway, add their domain to the allow list on the settings screen: it overrules everything, including the bundled list, so you never have to switch protection off to let one person through.

= What does Pro add? =

Checks that cannot be done from a bundled file: a live DNS and MX lookup to see whether the domain can actually receive mail, risk scoring on the finished order, order tagging and alerts. The disposable blocking in the free version is not limited in any way, and Pro does not make it bigger.

Pro is optional and sold separately at https://stackedboost.com/woocommerce/stackedboost-email-guard/.

= A real customer was blocked. What do I do? =

Add their domain to "Always allow these domains" on the settings screen. The allow list overrules everything, including the bundled list, so you never have to switch protection off to let one customer through.

= Does it catch subdomains? =

Yes. An address at mail.example.com is refused if example.com is on any list, which is how throwaway providers usually hand out addresses.

= Does the free version phone home or check a licence? =

No. The free version never contacts any server: there is no licence check, no telemetry, and no upsell nag beyond the settings screen. The plugin only makes an outbound request if you deliberately activate a Pro licence key, and then only to the Stackedboost API.

= What happens if my Pro licence expires? =

The site quietly returns to the free version: local blocking, typo suggestions and your custom blocklist keep working exactly as before. Nothing is disabled and no data is removed.

== Screenshots ==

1. A disposable address refused at checkout, before the order is created.
2. A likely typo caught, with the correct domain suggested.
3. The Email Guard dashboard: what was blocked, what was corrected, and your settings.

== Changelog ==

= 1.2.0 =
* The bundled disposable list grows from about 50 domains to over 8,200, from the public-domain disposable-email-domains project. Still bundled, still no outbound request.
* Subdomains are now caught. An address at mail.example.com is refused when example.com is listed, which is how most throwaway providers hand out addresses.
* New: an allow list that overrules everything, including the bundled list, so a wrongly refused customer no longer means switching protection off.
* Mistyped addresses now offer the correction even when the mistyped domain is itself on the disposable list. Several well-known typosquats are, and telling a shopper their address is disposable gave them no way to fix it.
* The list loads only when an address actually needs checking, so requests that never reach checkout do not pay for it.

= 1.1.2 =
* Renamed in the directory to say what the plugin does, so it can be found by people searching for a disposable-email blocker. Nothing in the plugin changed.

= 1.1.1 =
* Added a Settings link to the plugins list, so the dashboard is easier to find.
* Added a Support link, and a one-time pointer after activation.
* No change to how email checking works.

= 1.1.0 =
* New: a dashboard at WooCommerce → Email Guard showing how many risky addresses were refused, which typos were corrected, and which domains were blocked.
* Counts are kept on your own site and never sent anywhere. Domain names only, no customer address is stored.
* New: test any address from the settings screen and see exactly what checkout would do. Test checks do not affect your counts.
* New: preview the dashboard with example figures before your own activity builds up. The example is never saved.
* Redesigned the settings screen around that information.

= 1.0.1 =
* The "Buy a licence" button now opens the product page instead of the checkout directly, so you can read what Pro adds before paying.
* Added the plugin's product page to its header.
* No changes to how email checking works.

= 1.0.0 =
* Initial release: local checkout + registration email validation (disposable, typo, custom blocklist).

== Upgrade Notice ==

= 1.2.0 =
Blocks over 8,200 disposable domains instead of about 50, now including subdomains. Adds an allow list in case a real customer is ever refused.

= 1.1.2 =
Name change only. Checkout validation is unchanged.

= 1.1.1 =
Easier to find from the plugins list. Checkout validation is unchanged.

= 1.1.0 =
Adds a dashboard showing what has been blocked on your store.

= 1.0.1 =
Links only; checkout validation is unchanged.

= 1.0.0 =
Initial release.
