{"id":390096,"date":"2026-10-29T19:25:32","date_gmt":"2026-10-29T19:25:32","guid":{"rendered":"https:\/\/es.wordpress.org\/plugins\/tso-login-organizer\/"},"modified":"2026-10-29T19:25:24","modified_gmt":"2026-10-29T19:25:24","slug":"tso-login-organizer","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/tso-login-organizer\/","author":9581708,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.4","requires":"6.1","requires_php":"7.4","requires_plugins":null,"header_name":"TSO Login Organizer","header_author":"Tu Soporte Online","header_description":"Your own login, registration and password-reset pages inside your site, instead of wp-login.php, plus optional 2FA, security and social login.","assets_banners_color":"67aad9","last_updated":"2026-10-29 19:25:24","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/ko-fi.com\/deadko_cat","header_plugin_uri":"","header_author_uri":"https:\/\/www.tusoporteonline.es\/blog","rating":0,"author_block_rating":0,"active_installs":0,"downloads":64,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"deadko","date":"2026-10-29 19:25:24","revision":3773842}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3773837,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3773837,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x499.png":{"filename":"banner-1544x499.png","revision":3773962,"resolution":"1544x499","location":"assets","locale":"","width":1544,"height":499},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3773962,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3773837,"resolution":"1","location":"assets","locale":"","width":1420,"height":873},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3773837,"resolution":"2","location":"assets","locale":"","width":1138,"height":872},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3773837,"resolution":"3","location":"assets","locale":"","width":1279,"height":874},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3773837,"resolution":"4","location":"assets","locale":"","width":794,"height":869},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3773837,"resolution":"5","location":"assets","locale":"","width":1418,"height":868},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3773837,"resolution":"6","location":"assets","locale":"","width":922,"height":836}},"screenshots":{"1":"Core settings: AJAX forms, who can register, login and registration type, user-chosen passwords, auto-login and default role.","2":"Migration tab: import the free settings of Theme My Login, with a checklist and a friendly URL check.","3":"Social login module: sign in with Google, Facebook or X using your own OAuth credentials, with step-by-step setup and the callback URL to copy.","4":"Frontend profile page: users edit their name, email, password and avatar on the site and can turn on two-factor authentication.","5":"Captcha module: Google reCAPTCHA v2\/v3 or Cloudflare Turnstile, with compatibility warnings for other plugins.","6":"Modules tab: every optional module (redirection, moderation, restrictions, security, captcha, custom fields, profiles and more) can be turned on or off."}},"plugin_section":[],"plugin_tags":[9211,710,21141,602,603],"plugin_category":[38,58],"plugin_contributors":[260487],"plugin_business_model":[],"class_list":["post-390096","plugin","type-plugin","status-publish","hentry","plugin_tags-2fa","plugin_tags-authentication","plugin_tags-frontend-login","plugin_tags-login","plugin_tags-registration","plugin_category-authentication","plugin_category-user-management","plugin_contributors-deadko","plugin_committers-deadko"],"banners":{"banner":"https:\/\/ps.w.org\/tso-login-organizer\/assets\/banner-772x250.png?rev=3773962","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/tso-login-organizer\/assets\/icon-128x128.png?rev=3773837","icon_2x":"https:\/\/ps.w.org\/tso-login-organizer\/assets\/icon-256x256.png?rev=3773837","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/tso-login-organizer\/assets\/screenshot-1.png?rev=3773837","caption":"Core settings: AJAX forms, who can register, login and registration type, user-chosen passwords, auto-login and default role."},{"src":"https:\/\/ps.w.org\/tso-login-organizer\/assets\/screenshot-2.png?rev=3773837","caption":"Migration tab: import the free settings of Theme My Login, with a checklist and a friendly URL check."},{"src":"https:\/\/ps.w.org\/tso-login-organizer\/assets\/screenshot-3.png?rev=3773837","caption":"Social login module: sign in with Google, Facebook or X using your own OAuth credentials, with step-by-step setup and the callback URL to copy."},{"src":"https:\/\/ps.w.org\/tso-login-organizer\/assets\/screenshot-4.png?rev=3773837","caption":"Frontend profile page: users edit their name, email, password and avatar on the site and can turn on two-factor authentication."},{"src":"https:\/\/ps.w.org\/tso-login-organizer\/assets\/screenshot-5.png?rev=3773837","caption":"Captcha module: Google reCAPTCHA v2\/v3 or Cloudflare Turnstile, with compatibility warnings for other plugins."},{"src":"https:\/\/ps.w.org\/tso-login-organizer\/assets\/screenshot-6.png?rev=3773837","caption":"Modules tab: every optional module (redirection, moderation, restrictions, security, captcha, custom fields, profiles and more) can be turned on or off."}],"raw_content":"<!--section=description-->\n<p>TSO Login Organizer gives your site its own login, registration and password-reset pages, at addresses you choose (by default <code>\/login<\/code>, <code>\/register<\/code> and <code>\/lostpassword<\/code>), so visitors never see the standard WordPress login screen (<code>wp-login.php<\/code>). The pages match your theme and work with a shortcode, a widget or menu items.<\/p>\n\n<p>On top of that you can switch on optional modules: redirect users by role after login, approve new registrations, restrict content by role, lock out brute-force attempts, add two-factor authentication (TOTP), let users edit their profile and avatar on the site, sign in with Google, Facebook or X, add favorites, and subscribe new users to Mailchimp. Every module is off until you turn it on.<\/p>\n\n<p>Coming from Theme My Login? You can import its free settings and keep the <code>[theme-my-login]<\/code> shortcode working.<\/p>\n\n<h4>Core<\/h4>\n\n<ul>\n<li>Login, register, lost password, reset password, dashboard and privacy confirmation pages<\/li>\n<li>Custom slugs, shortcode <code>[tso-login-organizer]<\/code> and Theme My Login alias <code>[theme-my-login]<\/code><\/li>\n<li>Login with username, email, or either; email-only registration; user passwords; auto-login; AJAX<\/li>\n<li>Widget and navigation menu items<\/li>\n<li>Import settings from Theme My Login<\/li>\n<li>Bundled translations: Catalan (ca), Spanish (es_ES); English is the source language<\/li>\n<\/ul>\n\n<h4>Optional modules (all off by default)<\/h4>\n\n<ul>\n<li>Redirection by role<\/li>\n<li>Moderation (email confirm \/ admin approval)<\/li>\n<li>Restrictions (private site \/ per-post roles)<\/li>\n<li>Security (brute-force lockouts, password length, hide wp-login.php) \u2014 may collide with TSO Swiss Knife Login Protect or Kadence Security<\/li>\n<li>reCAPTCHA \u2014 may collide with CleanTalk or Kadence<\/li>\n<li>Frontend profiles (optional wp-admin block)<\/li>\n<li>Custom HTML notifications<\/li>\n<li>TOTP 2FA \u2014 may collide with other 2FA plugins<\/li>\n<li>Social login (Google, Facebook, X)<\/li>\n<li>Avatar uploads under <code>uploads\/tso-login-organizer\/<\/code><\/li>\n<li>Favorites<\/li>\n<li>Mailchimp opt-in<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin can connect to third-party services <strong>only when the related module is enabled and credentials are saved by an administrator<\/strong>:<\/p>\n\n<ol>\n<li><strong>Google reCAPTCHA<\/strong> (<code>https:\/\/www.google.com\/recaptcha\/api.js<\/code> and <code>https:\/\/www.google.com\/recaptcha\/api\/siteverify<\/code>) \u2014 when the Captcha module is enabled with Google v2\/v3 site\/secret keys. Used to verify that form submissions are human. <a href=\"https:\/\/policies.google.com\/terms\">Terms<\/a> \u00b7 <a href=\"https:\/\/policies.google.com\/privacy\">Privacy<\/a><\/li>\n<li><strong>Cloudflare Turnstile<\/strong> (<code>https:\/\/challenges.cloudflare.com\/turnstile\/v0\/api.js<\/code> and <code>https:\/\/challenges.cloudflare.com\/turnstile\/v0\/siteverify<\/code>) \u2014 when the Captcha module provider is Turnstile with site\/secret keys. Used to verify that form submissions are human. <a href=\"https:\/\/www.cloudflare.com\/website-terms\/\">Terms<\/a> \u00b7 <a href=\"https:\/\/www.cloudflare.com\/privacypolicy\/\">Privacy<\/a><\/li>\n<li><strong>Google OAuth<\/strong> (<code>https:\/\/accounts.google.com\/<\/code> and <code>https:\/\/oauth2.googleapis.com\/<\/code> \/ <code>https:\/\/www.googleapis.com\/<\/code>) \u2014 when Social login Google keys are configured. Used to authenticate users. <a href=\"https:\/\/policies.google.com\/terms\">Terms<\/a> \u00b7 <a href=\"https:\/\/policies.google.com\/privacy\">Privacy<\/a><\/li>\n<li><strong>Facebook Login<\/strong> (<code>https:\/\/www.facebook.com\/<\/code> and <code>https:\/\/graph.facebook.com\/<\/code>) \u2014 when Social login Facebook keys are configured. <a href=\"https:\/\/www.facebook.com\/terms.php\">Terms<\/a> \u00b7 <a href=\"https:\/\/www.facebook.com\/privacy\/explanation\">Privacy<\/a><\/li>\n<li><strong>X (Twitter) OAuth<\/strong> (<code>https:\/\/twitter.com\/<\/code> and <code>https:\/\/api.twitter.com\/<\/code>) \u2014 when Social login X keys are configured. <a href=\"https:\/\/twitter.com\/tos\">Terms<\/a> \u00b7 <a href=\"https:\/\/twitter.com\/privacy\">Privacy<\/a><\/li>\n<li><strong>Mailchimp API<\/strong> (<code>https:\/\/*.api.mailchimp.com\/<\/code>) \u2014 when the Mailchimp module has an API key and list ID and the user opts in (or auto-subscribe is configured). Sends the registrant email\/name to your audience. <a href=\"https:\/\/mailchimp.com\/legal\/terms\/\">Terms<\/a> \u00b7 <a href=\"https:\/\/www.intuit.com\/privacy\/statement\/\">Privacy<\/a><\/li>\n<\/ol>\n\n<p>No remote calls run while those modules stay disabled or keys are empty.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>tso-login-organizer<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin<\/li>\n<li>Open Tools \u2192 TSO Login Organizer<\/li>\n<li>Optionally import Theme My Login settings, then deactivate Theme My Login<\/li>\n<li>Enable only the modules you need (keep Security\/Captcha\/2FA off if Swiss Knife, Kadence Security or CleanTalk already cover them)<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20this%20conflict%20with%20tso%20swiss%20knife%3F\"><h3>Will this conflict with TSO Swiss Knife?<\/h3><\/dt>\n<dd><p>Swiss Knife Login Protect can hide <code>wp-login.php<\/code> and lock out IPs. TSO Login Organizer Security does similar work and stays <strong>off<\/strong> by default. Use only one stack for hide-login \/ brute-force.<\/p><\/dd>\n<dt id=\"how%20do%20i%20keep%20theme%20my%20login%20shortcodes%20working%3F\"><h3>How do I keep Theme My Login shortcodes working?<\/h3><\/dt>\n<dd><p>[theme-my-login] is registered as an alias of <code>[tso-login-organizer]<\/code>.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20import%20theme%20my%20login%20settings%3F\"><h3>What happens when I import Theme My Login settings?<\/h3><\/dt>\n<dd><p>Import copies AJAX, login\/registration type, passwords, auto-login, and <strong>all configured address slugs<\/strong> (including profile and favorites when present) into TSO Login Organizer with the <strong>same names<\/strong>. If Theme My Login only stored page IDs, the page slug (<code>post_name<\/code>) is used. Optional modules are <strong>not<\/strong> turned on automatically \u2014 if profile or favorites URLs were used, enable <strong>Profiles<\/strong> \/ <strong>Favorites<\/strong> under Modules after import so those addresses work. Then deactivate Theme My Login once you have verified the URLs.<\/p><\/dd>\n<dt id=\"is%20it%20correct%20to%20say%20which%20plugin%20this%20migrates%20from%3F\"><h3>Is it correct to say which plugin this migrates from?<\/h3><\/dt>\n<dd><p>Yes. Theme My Login is GPL, so importing its free settings and keeping the <code>[theme-my-login]<\/code> shortcode as an alias is allowed if you keep the GPL license. This plugin is independent: it is not Theme My Login and is not an official product of that project\u2019s authors. Their name is their trademark \u2014 use it only to describe migration, not as if this were the same product.<\/p><\/dd>\n<dt id=\"what%20does%20the%20ca%20%2F%20es%20%2F%20en%20switcher%20store%3F\"><h3>What does the CA \/ ES \/ EN switcher store?<\/h3><\/dt>\n<dd><p>Only the administrator\u2019s interface language preference (Catalan, Spanish, or English) as user meta (<code>tso_login_organizer_ui_lang<\/code>). Nothing is sent to external servers for that setting. The \u201cSupport this plugin\u201d link opens Ko-fi in a new tab.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First plugin version.<\/li>\n<\/ul>","raw_excerpt":"Your own login, registration and password-reset pages inside your site, instead of wp-login.php, plus optional 2FA, security and social login.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/390096","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=390096"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/deadko"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=390096"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=390096"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=390096"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=390096"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=390096"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=390096"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}