=== Great Feature Toggle === Contributors: gmulligan Tags: features, toggle, admin, performance, optimization Requires at least: 6.2 Tested up to: 6.8 Requires PHP: 7.4 Stable tag: 6.5.2 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Dynamically toggles WordPress features via admin UI with performance optimization. Quickly toggle common site features: simple contact form w/ CAPTCHA, SEO meta, login logo, custom mail-from, disable comments, force-login with allowlist, hide admin help/screen options, trimmed menus for logged-out users, and helpful shortcodes. [Visit the plugin homepage](https://mulligan.com/gft) for more information. == Description == Great Feature Toggle (GFT) is a modular admin utility that lets you enable or disable a curated set of features from one screen. Ideal for fresh installs, prototyping, or client sites where you need sane defaults fast — but still want complete control. **Highlights** * **Simple Contact Form** shortcode: built-in *CAPTCHA* and sane validation. * **SEO Meta**: set site title/description (lightweight, theme-agnostic). * **Custom Login Logo**: for branded admin/login views. * **Custom Mail-From**: set name/address (including evelope) for outgoing emails. * **Disable Comments**: site-wide for posts/media (fully reversible). * **Force Login**: limit pages with *allowlist* of public paths (e.g., /privacy-policy, /contact). * **Hide Login/Account Nav Links** * **Hide Admin Screen Options & Help Tabs** * **Hide Menu Items**: a limit menu for logged out users. * **Shortcodes**: `[grftg_message]` to output a message; `[grftg_reading_time]` to show estimated reading time. * Built to WordPress coding standards and security best-practices (nonces, capabilities, escaping/sanitization). Key Features: * Performance-optimized compilation system * Categorized feature organization * Real-time admin interface * Robust error handling * Translation ready == Installation == 1. Upload the plugin folder to `/wp-content/plugins/great-feature-toggle/` or install via **Plugins → Add New**. 2. Activate via **Plugins**. 3. Go to **Settings → Great Feature Toggle** and enable the features you need. 4. For the contact form, add the shortcode to a page: `[grftg_contact_form]`. 5. For reading time, use: `[grftg_reading_time]`. == Frequently Asked Questions == = Do I have to use all of the various features? = Absolutely not. You can turn on or off any feature independently. No more activating and deactivating various plugins. = Does GFT replace a full SEO plugin? = No — GFT provides lightweight title/description fields. If you need advanced sitemaps, schema, redirects, etc., use a dedicated SEO plugin alongside GFT. = How do I allow public pages while force-login is enabled? = Enter paths (one per line) under **Force Login → Allowlist**, e.g. `/`, `/privacy-policy`, `/contact`. = Will this conflict with my theme or page builder? = GFT is theme-agnostic and works with Gutenberg and other popular builders like Elementor. The features are intentionally minimal and additive. = Can I hide the admin Help/Screen Options only for certain roles? = Yes. Set the minimum capability for each feature in settings. = Will this impact system perfornace? = Unlike having numerous plugins, having these in one single place will speed up a site. In fact the Great Feature Toggle plugin goes to great length to help improve performance such as minimizing DB interactions and ensuring the code only run on the specific pages. = Will there be more features? = Yes - I have an addition 20+ features in development such as: * Admin Menu ordering * Disable password resets * Auto downcase email addresses in registration * Send an email to the sites registered users * Turn of login nav links * Change the login error message for improved security * Redirect the login page to a different page * Rename media slugs * Obfuscate email address via shortcode * AND MORE = Is this plugin translation ready? = Yes! All strings are wrapped in translation functions. == Screenshots == 1. **Admin Settings Screen:** Toggle modules, adjust per-feature options. 2. **Config Settings Screen:** Toggle modules, adjust per-feature options. == Changelog == = 6.5.2 = * ** New Feature ** * Media-Copy: Adds link in media to create new copy of file = 6.5.1 = * Initial public release. == Upgrade Notice == = 6.5.1 = First release.