{"id":285374,"date":"2026-03-10T03:25:17","date_gmt":"2026-03-10T03:25:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/session-limiter\/"},"modified":"2026-08-14T11:36:15","modified_gmt":"2026-08-14T11:36:15","slug":"sessionquota","status":"publish","type":"plugin","link":"https:\/\/pcd.wordpress.org\/plugins\/sessionquota\/","author":15614093,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.1","requires":"5.9","requires_php":"7.4","requires_plugins":null,"header_name":"SessionQuota","header_author":"HandyPlugins","header_description":"Limit concurrent user sessions with simple session management.","assets_banners_color":"597cbe","last_updated":"2026-08-14 11:36:15","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/HandyPlugins\/sessionquota","header_author_uri":"https:\/\/handyplugins.co\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":404,"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":"handyplugins","date":"2026-03-10 03:25:00"},"1.1.0":{"tag":"1.1.0","author":"handyplugins","date":"2026-08-14 11:36:15"}},"upgrade_notice":{"1.0.0":"<p>Initial release of SessionQuota.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3478715,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3478715,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3478715,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3478715,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3478715,"resolution":"1","location":"assets","locale":"","width":1059,"height":628}},"screenshots":{"1":"Set a global concurrent session limit and choose how SessionQuota handles extra logins."}},"plugin_section":[],"plugin_tags":[257402,4553,1229,247319,212032],"plugin_category":[],"plugin_contributors":[147258],"plugin_business_model":[],"class_list":["post-285374","plugin","type-plugin","status-publish","hentry","plugin_tags-account-sharing","plugin_tags-concurrent-login","plugin_tags-login-security","plugin_tags-session-limit","plugin_tags-user-sessions","plugin_contributors-handyplugins","plugin_committers-handyplugins"],"banners":{"banner":"https:\/\/ps.w.org\/sessionquota\/assets\/banner-772x250.png?rev=3478715","banner_2x":"https:\/\/ps.w.org\/sessionquota\/assets\/banner-1544x500.png?rev=3478715","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/sessionquota\/assets\/icon-128x128.png?rev=3478715","icon_2x":"https:\/\/ps.w.org\/sessionquota\/assets\/icon-256x256.png?rev=3478715","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/sessionquota\/assets\/screenshot-1.png?rev=3478715","caption":"Set a global concurrent session limit and choose how SessionQuota handles extra logins."}],"raw_content":"<!--section=description-->\n<p><strong>SessionQuota is a concurrent login limiter for WordPress.<\/strong> Set how many active sessions each user can have, then choose exactly what happens when that limit is reached.<\/p>\n\n<p>It is a practical way to reduce account sharing on membership sites, online courses, customer portals, private communities, and any WordPress site where one account should not stay active on too many devices.<\/p>\n\n<p>The free edition gives you a complete global session policy with three enforcement modes. Set it once under <code>Settings \u2192 SessionQuota<\/code> and let WordPress handle the rest.<\/p>\n\n<h4>Free Concurrent Login Controls<\/h4>\n\n<ul>\n<li><strong>Global session limit<\/strong> \u2013 Set the maximum number of active WordPress sessions allowed per user.<\/li>\n<li><strong>Block new login<\/strong> \u2013 Reject a new login when the account has already reached its limit.<\/li>\n<li><strong>Logout oldest session(s)<\/strong> \u2013 Allow the new login and remove only the oldest sessions needed to stay within the limit.<\/li>\n<li><strong>Single-session mode<\/strong> \u2013 Keep the latest login and automatically log out every other session for that account.<\/li>\n<li><strong>Unlimited mode<\/strong> \u2013 Set the limit to <code>0<\/code> when you do not want to enforce a global cap.<\/li>\n<li><strong>No external service required<\/strong> \u2013 Session enforcement runs on your WordPress site.<\/li>\n<\/ul>\n\n<h4>Choose the Right Enforcement Mode<\/h4>\n\n<p><strong>Block new login<\/strong><\/p>\n\n<p>Use this when you want the clearest deterrent against shared credentials. Existing sessions stay active and the next login is refused.<\/p>\n\n<p><strong>Logout oldest session(s)<\/strong><\/p>\n\n<p>Use this when legitimate users frequently switch devices. The new login succeeds and SessionQuota removes the oldest session or sessions needed to enforce the limit.<\/p>\n\n<p><strong>Logout all other sessions<\/strong><\/p>\n\n<p>Use this for a strict one-device-at-a-time policy. The latest login stays active and every other session for that account is terminated.<\/p>\n\n<h4>Need Granular Rules and Session Visibility?<\/h4>\n\n<p><a href=\"https:\/\/handyplugins.co\/sessionquota-pro\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=free_to_pro\">SessionQuota Pro<\/a> adds advanced controls for membership sites, stores, communities, and multisite networks:<\/p>\n\n<ul>\n<li>Role-based concurrent session limits.<\/li>\n<li>Membership-level limits for MemberPress and Paid Memberships Pro.<\/li>\n<li>Per-user session limit overrides.<\/li>\n<li>Frontend active-session controls for logged-in users.<\/li>\n<li>Blocked-login recovery through secure one-time email links.<\/li>\n<li>Force logout and site-wide session management tools.<\/li>\n<li>Security event logging, optional device and country context, and activity alerts.<\/li>\n<li>WP-CLI commands and network-managed multisite support.<\/li>\n<\/ul>\n\n<p>The free plugin remains fully functional for sites that only need one global limit. Upgrade when you need different rules for different users, self-service session controls, operational tools, or monitoring.<\/p>\n\n<p><strong><a href=\"https:\/\/handyplugins.co\/sessionquota-pro\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=free_to_pro&amp;utm_content=primary_cta\">Compare features and get SessionQuota Pro<\/a><\/strong><\/p>\n\n<h4>Privacy<\/h4>\n\n<p>The free edition uses WordPress session data to enforce your configured limit. It does not send session data to HandyPlugins or require an external account.<\/p>\n\n<h4>Support and Development<\/h4>\n\n<ul>\n<li>Free support: https:\/\/wordpress.org\/support\/plugin\/sessionquota\/<\/li>\n<li>Bug reports and contributions: https:\/\/github.com\/HandyPlugins\/sessionquota<\/li>\n<li>SessionQuota Pro documentation: https:\/\/handyplugins.co\/docs-category\/sessionquota-pro\/<\/li>\n<\/ul>\n\n<h4>More from HandyPlugins<\/h4>\n\n<ul>\n<li><a href=\"https:\/\/handyplugins.co\/magic-login-pro\/\">Magic Login Pro<\/a> \u2013 Passwordless WordPress authentication with magic links and flexible integrations.<\/li>\n<li><a href=\"https:\/\/poweredcache.com\/\">Powered Cache<\/a> \u2013 WordPress caching and optimization for PageSpeed and Core Web Vitals.<\/li>\n<li><a href=\"https:\/\/handyplugins.co\/stream-integration-pro\/\">Stream Integration Pro<\/a> \u2013 Upload, sync, restore, and manage Cloudflare Stream videos in WordPress.<\/li>\n<li><a href=\"https:\/\/handyplugins.co\/easy-text-to-speech\/\">Easy Text-to-Speech<\/a> \u2013 Convert WordPress content into synthesized speech.<\/li>\n<li><a href=\"https:\/\/handyplugins.co\/handywriter\/\">Handywriter<\/a> \u2013 AI-powered writing assistance inside WordPress.<\/li>\n<li><a href=\"https:\/\/handyplugins.co\/paddlepress-pro\/\">PaddlePress PRO<\/a> \u2013 Sell digital products and software licenses with Paddle.<\/li>\n<li><a href=\"https:\/\/handyplugins.co\/wp-accessibility-toolkit\/\">WP Accessibility Toolkit<\/a> \u2013 Add practical accessibility tools to your WordPress site.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<h4>From the WordPress Dashboard<\/h4>\n\n<ol>\n<li>Go to <code>Plugins \u2192 Add New<\/code>.<\/li>\n<li>Search for \u201cSessionQuota\u201d.<\/li>\n<li>Click <code>Install Now<\/code>, then <code>Activate<\/code>.<\/li>\n<li>Go to <code>Settings \u2192 SessionQuota<\/code>.<\/li>\n<li>Set a concurrent session limit and choose an enforcement mode.<\/li>\n<li>Click <code>Save Settings<\/code>.<\/li>\n<\/ol>\n\n<h4>Manual Installation<\/h4>\n\n<ol>\n<li>Upload the <code>sessionquota<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate SessionQuota through the <code>Plugins<\/code> screen in WordPress.<\/li>\n<li>Go to <code>Settings \u2192 SessionQuota<\/code> and configure your session policy.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20sessionquota%20prevent%20wordpress%20account%20sharing%3F\"><h3>Does SessionQuota prevent WordPress account sharing?<\/h3><\/dt>\n<dd><p>SessionQuota helps reduce account sharing by limiting how many active sessions an account can have at the same time. The result depends on the limit and enforcement mode you choose.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20a%20user%20reaches%20the%20concurrent%20login%20limit%3F\"><h3>What happens when a user reaches the concurrent login limit?<\/h3><\/dt>\n<dd><p>You decide. SessionQuota can block the new login, allow it and remove the oldest session or sessions, or keep only the newest session active.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20the%20session%20limit%20is%20set%20to%200%3F\"><h3>What happens when the session limit is set to 0?<\/h3><\/dt>\n<dd><p>0 means unlimited sessions. The global limit is not enforced unless you choose <code>Logout all other sessions<\/code>, which always keeps only the latest session active.<\/p><\/dd>\n<dt id=\"will%20existing%20users%20be%20logged%20out%20when%20i%20activate%20the%20plugin%3F\"><h3>Will existing users be logged out when I activate the plugin?<\/h3><\/dt>\n<dd><p>No. SessionQuota applies your selected policy when login and session enforcement events occur. Activating the plugin by itself does not immediately destroy every existing session.<\/p><\/dd>\n<dt id=\"does%20the%20free%20plugin%20support%20role-based%20or%20membership-level%20limits%3F\"><h3>Does the free plugin support role-based or membership-level limits?<\/h3><\/dt>\n<dd><p>The free edition applies one global limit to all users. <a href=\"https:\/\/handyplugins.co\/sessionquota-pro\/?utm_source=wordpress.org&amp;utm_medium=readme&amp;utm_campaign=free_to_pro&amp;utm_content=faq\">SessionQuota Pro<\/a> adds role-based rules, supported membership-level rules, and per-user overrides.<\/p><\/dd>\n<dt id=\"can%20users%20view%20and%20end%20their%20own%20active%20sessions%3F\"><h3>Can users view and end their own active sessions?<\/h3><\/dt>\n<dd><p>Frontend session lists and self-service session controls are available in SessionQuota Pro. The free edition focuses on automatic enforcement of the global limit.<\/p><\/dd>\n<dt id=\"can%20i%20run%20sessionquota%20and%20sessionquota%20pro%20at%20the%20same%20time%3F\"><h3>Can I run SessionQuota and SessionQuota Pro at the same time?<\/h3><\/dt>\n<dd><p>No. Only one edition should be active at a time. Deactivate the free edition before activating SessionQuota Pro.<\/p><\/dd>\n<dt id=\"does%20uninstalling%20sessionquota%20remove%20its%20settings%3F\"><h3>Does uninstalling SessionQuota remove its settings?<\/h3><\/dt>\n<dd><p>Yes. Uninstalling the plugin through WordPress removes the <code>sessionquota_settings<\/code> option. It does not delete WordPress user accounts.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0 (Aug 10, 2026)<\/h4>\n\n<ul>\n<li>Added locked previews.<\/li>\n<li>Added a blocked-login recovery preview when using block mode.<\/li>\n<li>Added direct access to SessionQuota Pro from the settings and Plugins screens.<\/li>\n<li>Improved keyboard navigation and accessibility for settings tabs.<\/li>\n<li>Confirmed compatibility with WordPress 7.1<\/li>\n<li>Dependency Updates.<\/li>\n<\/ul>\n\n<h4>1.0.0 (Mar 10, 2026)<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Limit concurrent WordPress logins, prevent account sharing, and choose whether to block new logins or remove older sessions.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/285374","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=285374"}],"author":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/handyplugins"}],"wp:attachment":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=285374"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=285374"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=285374"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=285374"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=285374"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=285374"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}