=== 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: 7.0 Stable tag: 1.4.1 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.4.1 = * Fix: Exclude `/bridge` directory and `pnpm-lock.yaml` from distribution zip via `.distignore`. = 1.4.0 = * Feature: Rule type labels — each rule shows its type (Domain / TLD / Exact email / Wildcard) inline in the admin panel. * Feature: Live rule preview — shows an example address the rule will match as you type. * Feature: Test email checker — enter any address to instantly see if it would be Allowed or Blocked. * Feature: Wildcard rule support — `*.example.com` matches any subdomain of example.com. * Feature: Duplicate detection — duplicate rules are removed on save with an admin notice. * Feature: CSV import summary — import results now show Imported / Skipped duplicates / Invalid rows counts. * Enhancement: `AEDR_Rule_Parser` and `AEDR_Rule_Matcher` classes introduced for clean, testable validation logic. * Enhancement: CSV processor now accepts TLDs, exact emails, and wildcard rules in addition to plain domains. * Enhancement: PHPUnit unit tests added for all new classes. = 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.4.0 = UX polish: rule type labels, live preview, test-email checker, duplicate detection, and CSV import summary. = 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.