=== Advanced Email Domain Restriction === Contributors: rockscoder Donate link: https://buymeacoffee.com/imsiddiqur Tags: email, domain, registration, restriction, woocommerce, csv import, export, security Requires at least: 6.3 Tested up to: 6.9 Stable tag: 1.2.0 Requires PHP: 7.4 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Limit user registrations to specific email domains. Features include case-insensitive validation, CSV bulk upload/export, specific WooCommerce support, and robust security hardening. == 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. * **Security Hardened**: Built with clean architecture, nonce protection, and late escaping. * **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.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.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.