=== Simple Exit Notifier === Contributors: chrsinteractive Plugin URI: https://wordpress.org/plugins/simple-exit-notifier/ Tags: exit popup, external links, link notifier, external link warning Requires at least: 6.0.0 Tested up to: 6.9 Requires PHP: 8.2 Stable tag: 2.0.1 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Display a customizable notification when users click on external links. Perfect for warning users about leaving your website. == Description == **Simple Exit Notifier** is a lightweight plugin that displays a popup notification when users click on external links. This helps alert users that they are about to leave your website, ensuring transparency and improving user experience. ### Features: - **Enable/Disable Toggle**: Easily turn the notifier on or off globally. - **Customizable Popup**: Change heading, message, and button texts. - **Full Color Customization**: 8 color pickers for header, body, and button colors - perfect for matching your site's theme or dark mode. - **Overlay Opacity**: Adjust the background overlay darkness. - **Modal Width**: Set custom width for the popup. - **Animation Styles**: Choose from fade, slide up, slide down, or none. - **Custom CSS**: Add your own CSS for advanced styling. - **Delay Timer**: Optional countdown before users can proceed. - **Remember User Choice**: Allow users to skip the popup for future visits. - **External Link Icon**: Display an icon next to external links. - **Multiple Exception Classes**: Exclude links using multiple CSS classes. - **Domain Whitelist**: Specify trusted domains that won't trigger the popup. - **Page Exclusions**: Disable the popup on specific pages. - **Keyboard Accessible**: Escape to close, Tab to navigate, focus trapping. - **Click Overlay to Close**: Users can click outside the modal to dismiss. - **Clean Uninstall**: Removes all plugin data when deleted. - **Lightweight and Fast**: Minimal impact on page load times. ### Use Cases: - Warn users before they leave your site. - Highlight external links with customizable notifications. - Comply with regulations requiring external link warnings. - Match popup appearance to your site's dark mode theme. == Support == Please submit your support requests through the WordPress forums for [Simple Exit Notifier](http://wordpress.org/support/plugin/simple-exit-notifier). For any additional requests or suggestions, please contact us directly at hello@chrsinteractive.com == Installation == 1. Download the plugin zip file or install directly from the WordPress Plugin Repository. 2. Upload the plugin to your WordPress site: - Go to `Plugins > Add New`. - Click `Upload Plugin` and choose the plugin zip file. - Click `Install Now`. 3. Activate the plugin via the `Plugins` menu in WordPress. 4. Configure the settings under `Settings > Exit Notifier`. == Frequently Asked Questions == = How do I enable or disable the popup? = Go to `Settings > Exit Notifier` and use the "Enable Exit Notifier" toggle in the Content 1 tab. = How do I customize the popup appearance? = Go to `Settings > Exit Notifier` and click the "Appearance" tab. You can customize all colors, opacity, modal width, animation style, and add custom CSS. = How do I match the popup to my dark mode theme? = Use the color pickers in the Appearance tab to set dark background colors and light text colors for both the header and body of the popup. = Can I show different popups for different links? = Yes! Use the Content 1 and Content 2 tabs to create two different popups. Add a CSS class to specific links and set the corresponding "Trigger Class" to control which popup appears. = How do I show the popup only for specific links? = In the Content 1 tab, enter a CSS class in the "Trigger Class" field. The popup will only appear for external links with that class. Leave empty to show for all external links. = How do I add a delay before showing the popup? = Enable "Delay Timer" in the Behavior tab and set the number of seconds to wait before the popup appears. = How do I exclude certain external links from showing the popup? = In the Exclusions tab, enter CSS class names (one per line or comma-separated). Add any of these classes to links you want to exclude. Default: `noexit` = How do I whitelist certain domains? = In the Exclusions tab, enter domain names (one per line) that should not trigger the popup. Example: `facebook.com` = How do I exclude specific pages from showing the popup? = In the Exclusions tab, use the "Excluded Pages" dropdown to select pages where the popup should not appear. = Does the plugin work with both `http` and `https` links? = Yes, it works seamlessly with both protocols. = Will the popup appear for internal links? = No, the popup is triggered only for external links. = Can users opt to not see the popup again? = Yes! Enable "Remember User Choice" in the Behavior tab. Users will see a "Don't show again" checkbox. = Does the plugin support translations? = Yes, the plugin is translation-ready. Use `.pot` files to add translations. == Screenshots == 1. **Content 1 Tab**: Default popup settings with enable/disable toggle, trigger class, and customizable texts. 2. **Content 2 Tab**: Custom popup settings for targeted links with separate content options. 3. **Appearance Tab**: Color pickers for header, body, and buttons, plus overlay and animation settings. 4. **Behavior Tab**: Delay timer, remember choice, and external link icon settings. 5. **Exclusions Tab**: Exception classes, whitelisted domains, and page exclusions. == Changelog == = 2.0.1 = * Updated: Minimum PHP requirement changed from 8.4 to 8.2 for broader compatibility. = 2.0.0 = * Major Feature Update: Complete redesign of admin interface with tabbed navigation. * Added: Global enable/disable toggle for the exit notifier. * Added: 8 color pickers for full popup customization (header, body, and button colors). * Added: Overlay opacity slider. * Added: Modal width setting. * Added: Animation style options (fade, slide up, slide down, none). * Added: Custom CSS field for advanced styling. * Added: Delay timer with countdown before users can proceed. * Added: "Remember User Choice" feature with configurable duration. * Added: External link icon indicator with position options. * Added: Support for multiple exception CSS classes. * Added: Domain whitelist to skip popup for trusted external domains. * Added: Page exclusions to disable popup on specific pages. * Added: Live preview panel in admin settings. * Improved: Backward compatibility with existing settings from version 1.x. * Improved: Better organized settings in logical tabs. = 1.2.0 = * Updated: WordPress 6.9 compatibility. * Updated: PHP 8.4 compatibility. * Updated: Added type hints to all function parameters and return types. * Updated: Added proper DocBlocks to all classes and methods. * Updated: Applied WordPress Coding Standards (WPCS) throughout. * Updated: Maintained backward compatibility with existing settings. * Updated: Improved checkbox sanitization using absint(). * Updated: Improved external link detection using URL API. * Enhancement: Added ARIA attributes for improved accessibility. * Enhancement: Added rel="noopener noreferrer" to external links for security. * Enhancement: Added explicit button type attributes. * Enhancement: Added keyboard accessibility (Escape to close, focus trapping). * Enhancement: Added click-to-close on overlay. * Enhancement: Added focus management (returns focus after modal closes). * Enhancement: Added body scroll lock when modal is open. * Enhancement: Added visible focus states for keyboard navigation. * Enhancement: Added hover states for buttons. * Added: Uninstall script to clean up options on plugin deletion. = 1.1.0 = * Added: "Settings" link on the Plugins page for quick access to the settings page. * Added: "Display External Link in Popup" option to display the external link (href) within the popup. * Added: Dynamic preview on the settings page that updates as fields are edited. * Fixed: Fallback to default "noexit" exception class when the "Exception Class" field is empty. * Fixed: Default text now displays for popup title, message, and buttons if settings fields are left blank. * Updated: Improved localization handling for fallback text and checkbox behavior. * Enhancement: Two-column layout for the settings page on desktop for better usability. = 1.0.0 = * Initial release. * Displays popup for external links. * Excludes links with a custom exception class. * Fully customizable texts for heading, message, and buttons. == Upgrade Notice == = 2.0.0 = IMPORTANT: Please backup your site before updating. Major feature update with full color customization, tabbed admin interface, delay timer, remember choice, domain whitelist, and more. All existing settings are preserved. = 1.2.0 = Code modernization update with PHP 8.4 and WordPress 6.9 compatibility. Improved accessibility and security. = 1.0.0 = Initial release. Upgrade to stay up-to-date with future improvements. == License == This plugin is licensed under the GPLv2 or later. See [License URI](https://www.gnu.org/licenses/gpl-2.0.html) for details.