{"id":230,"date":"2022-12-22T11:26:05","date_gmt":"2022-12-22T05:26:05","guid":{"rendered":"https:\/\/my.pluggable.io\/?post_type=download&#038;p=230"},"modified":"2026-05-20T11:33:57","modified_gmt":"2026-05-20T05:33:57","slug":"share-logins","status":"publish","type":"download","link":"https:\/\/my.pluggable.io\/plugin\/share-logins\/","title":{"rendered":"Share Logins"},"content":{"rendered":"<p>== Description ==<\/p>\n<p>**Share Logins** keeps user accounts in sync across multiple WordPress sites. When a user registers, logs in, logs out, updates their profile, resets their password, or is deleted on one site \u2014 all connected sites reflect that change instantly.<\/p>\n<p>No shared database required. Each site stays independent. Share Logins connects them via an encrypted REST API.<\/p>\n<p>= How It Works =<\/p>\n<p>1. Install and activate Share Logins on all sites you want to connect.<br \/>\n2. Set the same Secret Key on every site.<br \/>\n3. Add your remote site URLs on each site&#8217;s settings page.<br \/>\n4. Configure which user roles and metadata to sync.<br \/>\n5. Done \u2014 user events now propagate across all connected sites automatically.<\/p>\n<p>= Features =<\/p>\n<p>* **Real-time sync** \u2014 login, logout, register, update, delete, and password reset events sync instantly.<br \/>\n* **Encrypted communication** \u2014 all inter-site requests use bearer token authentication with encrypted payloads.<br \/>\n* **Granular control** \u2014 choose which user roles to sync, which user metadata fields to include, and toggle incoming\/outgoing actions independently per site.<br \/>\n* **WooCommerce support** \u2014 syncs customers created via WooCommerce checkout (including Blocks-based checkout).<br \/>\n* **AffiliateWP support** \u2014 syncs users created via AffiliateWP affiliate registration.<br \/>\n* **WordPress Multisite support** \u2014 handles user creation, role assignment, and removal across multisite networks.<br \/>\n* **User migration** \u2014 export users from one site and import them on another using a `.cx` JSON file.<br \/>\n* **Activity log** \u2014 optional logging of all sync actions with direction, site, and timestamp.<br \/>\n* **Session management** \u2014 pending syncs are queued in the database and processed reliably.<\/p>\n<p>= Supported Sync Actions =<\/p>\n<p>| Action | Outgoing | Incoming |<br \/>\n|&#8212;|&#8212;|&#8212;|<br \/>\n| Login | \u2713 | \u2713 |<br \/>\n| Logout | \u2713 | \u2713 |<br \/>\n| Register | \u2713 | \u2713 |<br \/>\n| Profile Update | \u2713 | \u2713 |<br \/>\n| Password Reset | \u2713 | \u2713 |<br \/>\n| Delete | \u2713 | \u2713 |<\/p>\n<p>Each action can be enabled or disabled independently per direction per remote site.<\/p>\n<p>= Use Cases =<\/p>\n<p>* **Membership networks** \u2014 one registration gives access to multiple sites.<br \/>\n* **Multi-brand setups** \u2014 keep the same user base across separate WordPress installs.<br \/>\n* **Staging environments** \u2014 push users from production to staging.<br \/>\n* **WooCommerce store networks** \u2014 customers register once, shop on any connected store.<\/p>\n<p>== Installation ==<\/p>\n<p>1. Upload the `share-logins` folder to `\/wp-content\/plugins\/` or install via the WordPress plugin directory.<br \/>\n2. Activate the plugin on each site you want to connect.<br \/>\n3. Go to **Settings &gt; Share Logins** on each site.<br \/>\n4. Under **Settings**, copy the Secret Key and set the same key on all sites.<br \/>\n5. Under **Remote Sites**, add the URLs of all other sites you want to connect.<br \/>\n6. Under **Connectivity**, select user roles and metadata to sync, and configure outgoing\/incoming actions.<br \/>\n7. Click **Save** and use the status checker to verify the connection.<\/p>\n<p>== Frequently Asked Questions ==<\/p>\n<p>= Do all sites need Share Logins installed? =<\/p>\n<p>Yes. The plugin must be active on every site that will participate in the sync.<\/p>\n<p>= Does this require a shared database? =<\/p>\n<p>No. Each site keeps its own database. Share Logins connects sites through REST API calls.<\/p>\n<p>= Is it secure? =<\/p>\n<p>All requests are authenticated using an encrypted bearer token derived from your Secret Key. The Secret Key must match on all connected sites. Keep it private.<\/p>\n<p>= What happens if a remote site is offline? =<\/p>\n<p>The sync request will fail silently for that site. There is no automatic retry. The activity log (if enabled) will record the attempt.<\/p>\n<p>= Can I control which users are synced? =<\/p>\n<p>Yes. Under **Connectivity**, choose which user roles to include. Users with excluded roles are ignored.<\/p>\n<p>= Can I sync custom user metadata? =<\/p>\n<p>Yes. Under **Connectivity**, select any user meta keys you want to include when syncing profile updates.<\/p>\n<p>= Does it work with WooCommerce? =<\/p>\n<p>Yes. Customers created during WooCommerce checkout (including the Blocks-based checkout) are synced to remote sites.<\/p>\n<p>= Does it work with AffiliateWP? =<\/p>\n<p>Yes. Users created via AffiliateWP affiliate registration are synced to remote sites.<\/p>\n<p>= Does it work with WordPress Multisite? =<\/p>\n<p>Yes. The plugin handles user creation and role assignment across multisite networks.<\/p>\n<p>= How do I migrate existing users to a new site? =<\/p>\n<p>Use the **Migrate Sites** tab. Export users from the source site as a `.cx` file, then import that file on the destination site.<\/p>\n<p>== Screenshots ==<\/p>\n<p>1. Remote Sites \u2014 add and manage connected site URLs.<br \/>\n2. Connectivity \u2014 configure user roles, metadata, and sync actions per direction.<br \/>\n3. Migrate Sites \u2014 export and import users between sites.<br \/>\n4. Settings \u2014 secret key, activity log toggle, and system report.<\/p>\n<p>== Changelog ==<\/p>\n<p>= 5.5.1 =<br \/>\n* Fix: WooCommerce Blocks checkout user sync now works correctly when REST_REQUEST is active.<br \/>\n* Fix: AffiliateWP affiliate registration now syncs users to remote sites.<\/p>\n<p>= 5.5.0 =<br \/>\n* Updated Local.php.<\/p>\n<p>= 5.0.0 =<br \/>\n* Major release with REST API architecture, encrypted token auth, and session management.<\/p>\n<p>== Upgrade Notice ==<\/p>\n<p>= 5.6 =<br \/>\nFixes user sync for WooCommerce Blocks checkout and AffiliateWP registrations. Update recommended for all users running WooCommerce or AffiliateWP.<\/p>\n<table class=\"fes-display-field-table fes-submission-form-display-field-table\">\t\t\t\r\n\t\t\t<tr class=\"fes-display-field-row download_category\" id=\"download_category\">\r\n\t\t\t\t<td class=\"fes-display-field-label\">Plugin Category<\/td>\r\n\t\t\t\t<td class=\"fes-display-field-values\">\r\n\t\t\t\t\t<a href=\"https:\/\/my.pluggable.io\/plugin\/category\/utility\/\" rel=\"tag\">Utility<\/a>\t\t\t\t<\/td>\r\n\t\t\t<\/tr>\r\n\r\n\t\t\t\t\t\r\n\t\t\r\n\t\t<tr class=\"fes-display-field-row textarea\" id=\"installation\">\r\n\t\t\t<td class=\"fes-display-field-label\">Installation Guide<\/td>\r\n\t\t\t<td class=\"fes-display-field-values\">\r\n\t\t\t\t\t\t\t<\/td>\r\n\t\t<\/tr>\r\n\r\n\t\t\r\n\t\t\r\n\t\t<tr class=\"fes-display-field-row textarea\" id=\"_edd_sl_changelog\">\r\n\t\t\t<td class=\"fes-display-field-label\">Changelog<\/td>\r\n\t\t\t<td class=\"fes-display-field-values\">\r\n\t\t\t\t5.2.4 (14.05.2025)\r\n<ul>\r\n \t<li>License activator fixed<\/li>\r\n<\/ul>\r\n5.2.3 (13.10.2023)\r\n<ul>\r\n \t<li>License activator fixed<\/li>\r\n<\/ul>\r\n5.2.2 (22.12.2022)\r\n<ul>\r\n \t<li>License type changed<\/li>\r\n \t<li>Compatibility added for WooCommerce user creation<\/li>\r\n<\/ul>\r\n5.2.1 (20.12.2022)\r\n<ul>\r\n \t<li>Code cleaned<\/li>\r\n \t<li>Fetching users by email instead of username<\/li>\r\n<\/ul>\r\n5.2.0 (02.12.2022)\r\n<ul>\r\n \t<li>Codebase completely rewritten<\/li>\r\n<\/ul>\r\n2.1.3 (23.11.2019)\r\n<ul>\r\n \t<li>[improve] Destroy session when needed<\/li>\r\n<\/ul>\r\n2.1.2 (17.11.2019)\r\n<ul>\r\n \t<li>[improve] Better session management<\/li>\r\n<\/ul>\r\n2.1.1 (17.11.2019)\r\n<ul>\r\n \t<li>[fix] Large export stops working<\/li>\r\n \t<li>[improve] Log sort<\/li>\r\n<\/ul>\r\n2.1.0 (09.10.2019)\r\n<ul>\r\n \t<li>[fix] Bug fixed<\/li>\r\n \t<li>[fix] Warning fixed<\/li>\r\n \t<li>[add] User role selector added<\/li>\r\n<\/ul>\r\n2.0.2 (02.10.2019)\r\n<ul>\r\n \t<li>[fix] Bug fixed<\/li>\r\n<\/ul>\r\n2.0.1 (23.09.2019)\r\n<ul>\r\n \t<li>[fix] Bug fixed<\/li>\r\n<\/ul>\r\n2.0 (19.09.2019)\r\n<ul>\r\n \t<li>[add] Multisite compatible<\/li>\r\n \t<li>[add] User role handling<\/li>\r\n \t<li>[add] User meta handling<\/li>\r\n \t<li>[fix] Bug fixed<\/li>\r\n \t<li>[improve] UI Improved<\/li>\r\n<\/ul>\r\n1.30 (21.05.2019)\r\n<ul>\r\n \t<li>[add] Validator<\/li>\r\n \t<li>[add] Help section<\/li>\r\n \t<li>[improve] Code Improved<\/li>\r\n<\/ul>\r\n1.20 (22.03.2019)\r\n<ul>\r\n \t<li>[improve] Code Improved<\/li>\r\n \t<li>[add] Native List Table implemented for logs<\/li>\r\n<\/ul>\r\n1.10 (06.01.2019)\r\n<ul>\r\n \t<li>[improve] Code Improved [improve] CSS and JS minified<\/li>\r\n<\/ul>\r\n1.0 (05.12.2018)\r\n<ul>\r\n \t<li>Initial release<\/li>\r\n<\/ul>\t\t\t<\/td>\r\n\t\t<\/tr>\r\n\r\n\t\t\r\n\t\t\r\n\t\t<tr class=\"fes-display-field-row text\" id=\"min_php\">\r\n\t\t\t<td class=\"fes-display-field-label\">PHP version<\/td>\r\n\t\t\t<td class=\"fes-display-field-values\">\r\n\t\t\t\t7.4\t\t\t<\/td>\r\n\t\t<\/tr>\r\n\r\n\t\t\r\n\t\t\r\n\t\t<tr class=\"fes-display-field-row text\" id=\"min_wp\">\r\n\t\t\t<td class=\"fes-display-field-label\">WP Version<\/td>\r\n\t\t\t<td class=\"fes-display-field-values\">\r\n\t\t\t\t5.0\t\t\t<\/td>\r\n\t\t<\/tr>\r\n\r\n\t\t\r\n\t\t\r\n\t\t<tr class=\"fes-display-field-row text\" id=\"tested_wp\">\r\n\t\t\t<td class=\"fes-display-field-label\">Tested up to<\/td>\r\n\t\t\t<td class=\"fes-display-field-values\">\r\n\t\t\t\t6.1\t\t\t<\/td>\r\n\t\t<\/tr>\r\n\r\n\t\t<\/table>","protected":false},"excerpt":{"rendered":"<p>== Description == **Share Logins** keeps user accounts in sync across multiple WordPress sites. When a user registers, logs in, logs out, updates their profile, resets their password, or is deleted on one site \u2014 all connected sites reflect that change instantly. No shared database required. Each site stays independent. Share Logins connects them via &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/my.pluggable.io\/plugin\/share-logins\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Share Logins&#8221;<\/span><\/a><\/p>\n","protected":false},"author":12,"featured_media":474,"comment_status":"open","ping_status":"closed","template":"","format":"standard","edd-categories":[18],"edd-tags":[15,14],"class_list":["post-230","download","type-download","status-publish","format-standard","has-post-thumbnail","hentry","download_category-utility","download_tag-top-seller","download_tag-trendy","edd-download","edd-download-cat-utility","edd-download-tag-top-seller","edd-download-tag-trendy"],"_links":{"self":[{"href":"https:\/\/my.pluggable.io\/api\/wp\/v2\/edd-downloads\/230","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/my.pluggable.io\/api\/wp\/v2\/edd-downloads"}],"about":[{"href":"https:\/\/my.pluggable.io\/api\/wp\/v2\/types\/download"}],"author":[{"embeddable":true,"href":"https:\/\/my.pluggable.io\/api\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/my.pluggable.io\/api\/wp\/v2\/comments?post=230"}],"version-history":[{"count":0,"href":"https:\/\/my.pluggable.io\/api\/wp\/v2\/edd-downloads\/230\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/my.pluggable.io\/api\/wp\/v2\/media\/474"}],"wp:attachment":[{"href":"https:\/\/my.pluggable.io\/api\/wp\/v2\/media?parent=230"}],"wp:term":[{"taxonomy":"download_category","embeddable":true,"href":"https:\/\/my.pluggable.io\/api\/wp\/v2\/edd-categories?post=230"},{"taxonomy":"download_tag","embeddable":true,"href":"https:\/\/my.pluggable.io\/api\/wp\/v2\/edd-tags?post=230"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}