=== Advanced Email Domain Restriction ===
Contributors: rockscoder
Donate link:  https://buymeacoffee.com/imsiddiqur
Tags: email, domain, registration, restriction, woocommerce
Requires at least: 6.3
Tested up to: 6.9
Stable tag: 1.3.0
Requires PHP: 7.4
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

Restrict user registrations to specific domains, TLDs, or email addresses. Includes CSV import/export and WooCommerce support.

== Description ==

The **Advanced Email Domain Restriction** plugin provides a lightweight but powerful way to control which email domains are allowed to register on your WordPress site. 

### Key Features:
* **Allow-list Only**: Restrict registrations to a specific list of trusted domains.
* **Bulk Upload**: Import large lists of domains via CSV.
* **Domain Export**: Download your allowed domains list for backup or analysis.
* **WooCommerce Support**: Fully compatible with WooCommerce customer registration.
* **Form Plugin Support**: Automatically validate email fields in **Contact Form 7**, **WPForms**, and **Elementor Pro** forms.
* **TLD & Full Email Support**: Restrict registrations to specific TLDs (e.g., .com) or specific email addresses (e.g., user@example.com).
* **Case-Insensitive**: Matches `gmail.com` regardless of how the user types it.
* **Custom Messages**: Define your own error messages for restricted domains.


== Installation ==

1. Upload the plugin files to the `/wp-content/plugins/advanced-email-domain-restriction` directory, or install the plugin through the WordPress plugins screen directly.
2. Activate the plugin through the 'Plugins' screen in WordPress.
3. Use the Settings-> Domain Restriction screen to configure the plugin.

== Frequently Asked Questions ==

= How do I customize error messages? =

You can customize the error messages for allowed and restricted domains in the plugin settings under the "Custom Messages" section.

== Screenshots ==
1. Settings Page
2. Registration Form
3. Custom Error Message

== Changelog ==

= 1.3.0 =
* Feature: Added support for TLD-based matching (e.g., allow all emails from `.cz`).
* Feature: Added support for full email address matching (e.g., allow `user@example.com`).
* Enhancement: Updated Admin UI with clearer descriptions and placeholders for new matching types.

= 1.2.0 =
* Feature: Added Support for **WPForms** and **Elementor Pro** email field validation.
* Feature: Added Support for **Contact Form 7** email field validation.
* Feature: Added Export to CSV feature for allowed domains.
* Feature: Added CSV Bulk Upload for allowed domains.
* Feature: Added client-side and server-side validation for file uploads.
* Security: Hardened plugin with nonce and capability checks.
* Security: Applied late escaping throughout the admin interface.
* Security: Hardened CSV import logic against large files and malicious content.
* Bug Fix: Fixed WooCommerce registration errors hook (changed from action to filter).
* Enhancement: Added case-insensitive domain validation support.
* Enhancement: Refactored to Clean Architecture (separated Validator and CSV Processor).
* Enhancement: Settings are now cached for better performance.
* Improvement: Cleaned up code and improved domain sanitization.

= 1.1.0 =
* WooCommerce customer registration email domain check support added.

= 1.0.0 =
* Initial release with support for allowed domains and custom error messages.

== Upgrade Notice ==

= 1.3.0 =
New matching options: Support for TLD-based and full email address restriction.

= 1.2.0 =
Major update: CSV Bulk Upload/Export, Clean Architecture refactoring, and Security Hardening.

= 1.1.0 =
Now support WooCommerce customer registration email domain check.