=== Advanced Email Filter for Elementor Forms ===
Contributors: muktoapb
Donate link: https://buymeacoffee.com/mukto
Tags: email blacklist, spam protection, whitelist email, elementor form, disposable email
Requires at least: 5.6
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.3.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Enhance Elementor Pro Forms with advanced email filtering capabilities including global blocklists/whitelist and per-form controls.

== Description ==

Advanced Email Filter for Elementor Forms adds enterprise-grade email validation to your Elementor pro forms. Protect against spam submissions while maintaining flexibility for legitimate users.

== Features ==

* Global blocklist/allowlist management
* Per-form email filtering rules
* Wildcard support for domains and patterns
* Business email only filter
* Disposable / temporary email blocking
* Automatically refreshed domain databases with a local last-known-good cache
* Compatible with Elementor Pro forms only

[Learn more about all features](https://www.wpprodevs.com/advanced-email-filter-for-elementor-forms/) | [Read Documentation](https://www.wpprodevs.com/docs/email-filter-for-elementor/)


[youtube https://www.youtube.com/watch?v=fMFmGRLFpNQ]

== Installation ==

1. Upload the plugin files to the `/wp-content/plugins/advanced-email-filter-for-elementor-forms` directory
2. Activate the plugin through the 'Plugins' screen in WordPress
3. Configure global settings under Email Filter -> Settings
4. Set form-specific rules in Elementor Form widget settings

== Configuration ==
There are two places where you can control email filtering.
= Global Settings =
Navigate to `Email Filter -> Settings` to configure:

* **Blocklist**: @spamdomain.com, *.ru, fake-user@

* **Allowlist**: @yourcompany.com, admin@, *.trusted.org

= Form-Specific Settings =
1. Edit Elementor Form widget
2. Open *Email Filtering* section
3. Add patterns:
    * Blocklist (form-specific)
    @temp-domain.com, *.xyz
    * Allowlist (form-specific)
    @client-domain.com, manager@

== Frequently Asked Questions ==

= Is Elementor Pro required to use this plugin? =
Yes. This plugin extends Elementor Pro form features, so Elementor Pro must be installed and active.

= How do multiple patterns work? =
Separate patterns with commas. Both global and form rules apply cumulatively.

= Which takes priority - allowlist or blocklist settings? =
Matching allowlist rules take priority over blocklist, business email, and disposable email rules. Global and form-specific patterns are combined.

== External services ==

When Business Email Only or Disposable Email Blocking is enabled, this plugin downloads public domain databases from `https://lists.mukto.info/aefe/`. These lists are required to identify personal and disposable email providers.

The submitted email address and form contents are never sent to this service. A request is made only to download the domain-list JSON files. As with any web request, the server may receive standard connection information such as the requesting site's IP address and user agent.

Downloaded lists are stored under `wp-content/uploads/aefe/` and refreshed no more than once every seven days. If an update fails, the previous valid local list remains in use.

This service is operated by the plugin author. [Privacy policy](https://mukto.info/privacy-policy/)

== Hooks & Filters ==

Customize validation behavior using these hooks:

`
// Modify validation error message
add_filter('aefe_validation_error', function($message, $email) {
    return sprintf(__('Error: %s is blocked', 'text-domain'), $email);
}, 10, 2);
`
== Screenshots ==

1. Global Blocklist/Whitelist management
2. Per-form email filtering rules

== Changelog ==
= 1.3.0 =
* Fixed allowlist priority so matching addresses bypass all other filters
* Improved partial and wildcard pattern matching
* Added validated, automatically refreshed personal and disposable domain lists
* Store downloaded domain lists under `wp-content/uploads/aefe/` instead of the database
* Added last-known-good fallback and safe handling of remote failures
* Added request timeouts, domain normalization, deduplication, and JSON validation
* Removed duplicate settings registration
* Added validation regression tests

= 1.2.0 =
* Minimize plugin size & update email list

= 1.1.1 =
* Personal & Disposable email list updated

= 1.1.0 =
* Added Business Email filter
* Added Disposable / temporary email blocking
* Improved validation error message

= 1.0.0 =
* Initial release with core filtering features
* Global blocklist/Whitelist functionality
* Elementor Form widget integration

== Upgrade Notice ==
= 1.3.0 =
Improves filtering accuracy and keeps domain databases current without increasing the plugin package size.

= 1.2.0 =
Minimize plugin size & update email list

= 1.1.2 =
Additional disposable email domains have been added to improve blocklisting & Tested on new wp & elementor version

= 1.1.1 =
Additional disposable and personal email domains have been added to improve blocklisting.

= 1.1.0 =
A new feature has been added to block disposable and personal email providers.
