{"id":339893,"date":"2026-07-15T09:34:47","date_gmt":"2026-07-15T09:34:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ajo-membership\/"},"modified":"2026-07-15T09:36:32","modified_gmt":"2026-07-15T09:36:32","slug":"ajo-membership","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/ajo-membership\/","author":23519448,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0","stable_tag":"1.0","tested":"7.1","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"AJO Membership","header_author":"Ali J Online","header_description":"A simple, secure membership portal to protect pages\/posts and provide login, registration, password reset, and profile editing shortcodes.","assets_banners_color":"4f507b","last_updated":"2026-07-15 09:36:32","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":78,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0":{"tag":"1.0","author":"wgs2026","date":"2026-07-15 09:36:32"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3608556,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3608556,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3608556,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3608556,"resolution":"1","location":"assets","locale":"","width":1746,"height":757}},"screenshots":[]},"plugin_section":[],"plugin_tags":[602,1932,1801,603,11917],"plugin_category":[38,43,58],"plugin_contributors":[],"plugin_business_model":[],"class_list":["post-339893","plugin","type-plugin","status-publish","hentry","plugin_tags-login","plugin_tags-membership","plugin_tags-protect-content","plugin_tags-registration","plugin_tags-user-roles","plugin_category-authentication","plugin_category-customization","plugin_category-user-management","plugin_committers-wgs2026"],"banners":{"banner":"https:\/\/ps.w.org\/ajo-membership\/assets\/banner-772x250.png?rev=3608556","banner_2x":"https:\/\/ps.w.org\/ajo-membership\/assets\/banner-1544x500.png?rev=3608556","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/ajo-membership\/assets\/icon-256x256.png?rev=3608556","icon_2x":"https:\/\/ps.w.org\/ajo-membership\/assets\/icon-256x256.png?rev=3608556","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/ajo-membership\/assets\/screenshot-1.png?rev=3608556","caption":""}],"raw_content":"<!--section=description-->\n<p>AJO Membership is a lightweight, secure, and straightforward plugin designed to turn your WordPress site into a basic membership portal without the bloat of massive membership plugins.<\/p>\n\n<p>It allows you to restrict access to specific pages, posts, or entire URL paths directly from a simple settings dashboard. Non-registered users attempting to access protected content are automatically redirected to a custom link of your choosing.<\/p>\n\n<p>The plugin also safely redirects non-administrative users away from the default WordPress dashboard (<code>wp-admin<\/code>), keeping your frontend pristine, and provides native WordPress-powered shortcodes to handle user authentication entirely on the frontend.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li><strong>Content Protection:<\/strong> Protect any URL or path (e.g., <code>\/premium-content\/<\/code>). Sub-pages are automatically protected.<\/li>\n<li><strong>Custom Redirects:<\/strong> Send unauthorized visitors to a specific landing page or your login page.<\/li>\n<li><strong>Dashboard Restriction:<\/strong> Automatically blocks non-administrators from accessing the WordPress backend dashboard, redirecting them to the homepage instead.<\/li>\n<li><strong>Frontend Profile Editor:<\/strong> Allow users to update their Name, Email, and Password directly from a frontend page.<\/li>\n<li><strong>Native Authentication:<\/strong> Uses WordPress's core secure functions to handle logins, registrations, and password resets. No clunky third-party tables\u2014just clean, native integration.<\/li>\n<\/ul>\n\n<h3>Included Shortcodes<\/h3>\n\n<p>Simply paste these shortcodes onto any page or post to display the respective forms:<\/p>\n\n<ul>\n<li><code>[ajo_login]<\/code> - Displays the standard login form. (Hides automatically if the user is already logged in).<\/li>\n<li><code>[ajo_register]<\/code> - Displays a straightforward registration form.<\/li>\n<li><code>[ajo_password_reset]<\/code> - Displays the lost password \/ reset request form.<\/li>\n<li><code>[ajo_edit_profile]<\/code> - Displays a secure frontend profile editor for logged-in users to update their name, email, and password.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>ajo-membership<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install it via the WordPress Plugins dashboard by uploading the <code>.zip<\/code> file.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li>Go to <strong>Settings &gt; AJO Membership<\/strong> to configure your protected URLs and custom redirect link.<\/li>\n<li>Go to <strong>Settings &gt; General<\/strong> and ensure \"Anyone can register\" is checked if you plan to use the registration shortcode.<\/li>\n<li>Create standard WordPress pages (e.g., \"Login\", \"Register\", \"My Profile\") and paste the provided shortcodes into the page content.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"why%20is%20the%20registration%20form%20not%20working%3F\"><h3>Why is the registration form not working?<\/h3><\/dt>\n<dd><p>Because this plugin securely utilizes WordPress's native registration system, you must enable registration in your main WordPress settings. Go to <strong>Settings &gt; General<\/strong> and check the box next to Membership that says \"Anyone can register\".<\/p><\/dd>\n<dt id=\"how%20do%20i%20protect%20a%20specific%20page%3F\"><h3>How do I protect a specific page?<\/h3><\/dt>\n<dd><p>Go to <strong>Settings &gt; AJO Membership<\/strong>. In the \"Protected URLs \/ Paths\" box, type the path of the page you want to protect (e.g., <code>\/my-secret-page\/<\/code>). Enter one path per line.<\/p><\/dd>\n<dt id=\"does%20protecting%20a%20parent%20page%20protect%20its%20child%20pages%3F\"><h3>Does protecting a parent page protect its child pages?<\/h3><\/dt>\n<dd><p>Yes! If you protect <code>\/members\/<\/code>, then any sub-page like <code>\/members\/downloads\/<\/code> or <code>\/members\/videos\/<\/code> will automatically be protected as well.<\/p><\/dd>\n<dt id=\"can%20regular%20users%20access%20my%20wordpress%20dashboard%3F\"><h3>Can regular users access my WordPress dashboard?<\/h3><\/dt>\n<dd><p>No. The plugin automatically detects if a user is an Administrator or not. If a subscriber or customer tries to access <code>\/wp-admin\/<\/code>, they will be safely redirected back to your homepage.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Added content protection via URL path.<\/li>\n<li>Added shortcodes: <code>[ajo_login]<\/code>, <code>[ajo_register]<\/code>, <code>[ajo_password_reset]<\/code>.<\/li>\n<li>Added <code>[ajo_edit_profile]<\/code> shortcode for secure frontend profile updating.<\/li>\n<li>Added security feature to block non-admins from accessing the WordPress dashboard.<\/li>\n<li>Improved security nonces and user input sanitization.<\/li>\n<\/ul>","raw_excerpt":"A simple, secure membership portal to protect pages\/posts and provide frontend login, registration, password reset, and profile editing.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/339893","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=339893"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/wgs2026"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=339893"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=339893"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=339893"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=339893"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=339893"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=339893"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}