=== TR Register Only === Contributors: techieresource Tags: login, members only, restrict, private, registration, access control Requires at least: 5.6 Tested up to: 6.7 Stable tag: 2.0.0 Requires PHP: 7.4 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Restrict your WordPress site to registered/logged-in users only. Perfect for private communities, staging sites, and intranet portals. == Description == **TR Register Only** makes your entire WordPress site private. Once enabled, only logged-in users can access any page, post, or custom post type. Everyone else is redirected to the login page (or a custom URL of your choice). **Key Features:** * โœ… One-click enable/disable toggle * ๐Ÿ”’ Role-based access control โ€” set minimum required user role * โ†ฉ๏ธ Redirect to WordPress login page or any custom URL * ๐Ÿ’ฌ Custom message shown on the login page * ๐Ÿ“‹ Whitelist specific pages for public access (e.g. pricing, landing pages) * ๐Ÿ  Optionally whitelist the home/front page * ๐Ÿ“ก Optionally restrict REST API to authenticated users * ๐Ÿงน Clean uninstall โ€” removes all data when deleted **Perfect for:** * Private/members-only communities * Staging and development sites * Corporate intranets * Schools and educational platforms * Subscription-based content sites == Installation == 1. Upload the `tr-register-only` folder to `/wp-content/plugins/` 2. Activate the plugin from **Plugins > Installed Plugins** 3. Go to **Settings > TR Register Only** to configure == Frequently Asked Questions == = Will this lock me out of the admin? = No. The WordPress login page (`wp-login.php`) is always whitelisted automatically, so you can always log in. = Can I allow some pages to be publicly accessible? = Yes. In Settings, enter the page IDs you want to keep public under "Whitelisted Page IDs". Separate multiple IDs with commas. = Does this protect the REST API too? = Optionally. Enable "Protect REST API" in settings to require authentication on all REST endpoints. Note this may break plugins that rely on unauthenticated API calls. = How do I find a page's ID? = Go to Pages > All Pages, hover over a page, and the ID appears in the URL at the bottom of the browser (e.g. `post=42`). == Screenshots == 1. Settings page with all configuration options == Changelog == = 2.0.0 = * Complete rewrite for modern WordPress 6.x compatibility * Added role-based access control (minimum role setting) * Added custom URL redirect option * Added page whitelist feature * Added home page whitelist option * Added REST API protection option * Added custom login message support * Added clean uninstall (removes options on delete) * PHP 8.x compatible * Singleton pattern with proper OOP architecture * Full input sanitization and escaping = 1.0 = * Initial release == Upgrade Notice == = 2.0.0 = Major update with new features including role-based access, page whitelisting, REST API protection, and custom redirect URLs. Settings are stored fresh โ€” please review your configuration after upgrading.