[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fNap9u3y2CUghA_CHDxwzTTBDZXhmRVUlg62CgKWAQY0":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30,"vulnerabilities":31,"developer":32,"crawl_stats":29,"alternatives":40,"analysis":145,"fingerprints":242},"private-suite","Private Suite","2.1","Stephanie Leary","https:\u002F\u002Fprofiles.wordpress.org\u002Fsillybean\u002F","\u003Cul>\n\u003Cli>Optionally adds private pages to \u003Ccode>wp_list_pages()\u003C\u002Fcode>, \u003Ccode>wp_page_menu()\u003C\u002Fcode>, and the Pages widget\u003C\u002Fli>\n\u003Cli>Provides a separate \u003Ccode>wp_list_private_pages()\u003C\u002Fcode> tag (a clone of \u003Ccode>wp_list_pages()\u003C\u002Fcode> that accepts all the same arguments)\u003C\u002Fli>\n\u003Cli>Specifies private categories, in which all posts will automatically be set to private\u003C\u002Fli>\n\u003Cli>Lets you change the “Private:” prefix on private post\u002Fpage titles\u003C\u002Fli>\n\u003Cli>Lets you change the “Protected:” prefix on password-protected post\u002Fpage titles\u003C\u002Fli>\n\u003Cli>Lets you choose which user roles can read private pages and posts\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Now on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsillybean\u002Fprivate-suite\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Translations\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>French (fr_FR) by Regis Lemaire\u003C\u002Fli>\n\u003Cli>Bulgarian (bg_BG) by \u003Ca href=\"http:\u002F\u002Fwww.siteground.com\u002F\" rel=\"nofollow ugc\">SiteGround\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Turkish (tr_TR) by \u003Ca href=\"http:\u002F\u002Fbijoubijouterie.com\" rel=\"nofollow ugc\">&Ouml;mer Faruk Karabulut\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Notes\u003C\u002Fh3>\n\u003Ch3>Reading Settings\u003C\u002Fh3>\n\u003Cp>You must have at least one public page. Otherwise, as of 3.1, the front page settings (where you can choose a static page as your home page) will not appear on the settings page at all. As long as you have one public page, all the private pages will appear as options in the dropdown menu.\u003C\u002Fp>\n\u003Ch3>Page Lists and Widgets\u003C\u002Fh3>\n\u003Cp>Adding private pages to \u003Ccode>wp_list_pages()\u003C\u002Fcode>, \u003Ccode>wp_page_menu()\u003C\u002Fcode>, and the Pages widget does not always work as it should. The private pages will be out of order, and they might appear as children of the wrong parent page. If this occurs, try using the \u003Ccode>wp_list_private_pages()\u003C\u002Fcode> template tag instead. It’s a clone of \u003Ccode>wp_list_pages()\u003C\u002Fcode> and should accept all the same arguments. This plugin includes an extra Pages widget that includes private pages.\u003C\u002Fp>\n\u003Ch3>Private Categories\u003C\u002Fh3>\n\u003Cp>When you mark a category as private, all the posts in that category will have their visibility set to private when they are published, even if you don’t change the visibility setting on the edit screen. Only published posts are affected; your draft, pending, and scheduled posts will work as usual, except that scheduled posts will be set to private when they become active.\u003C\u002Fp>\n\u003Ch3>Acknowledgments\u003C\u002Fh3>\n\u003Cp>Huge thanks to \u003Ca href=\"https:\u002F\u002Fprofiles.wordpress.org\u002Fmtekk\" rel=\"nofollow ugc\">mtekk\u003C\u002Fa> for providing the \u003Ca href=\"https:\u002F\u002Fcore.trac.wordpress.org\u002Fticket\u002F8592\" rel=\"nofollow ugc\">patch\u003C\u002Fa> that makes the page list features possible. The alternative method of listing pages was adapted from \u003Ca href=\"http:\u002F\u002Factivecodeline.com\u002Fcreate-a-menu-for-private-pages-and-posts-in-wordpress\" rel=\"nofollow ugc\">Branko Ajzele\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Translations\u003C\u002Fh3>\n\u003Cp>If you would like to send me a translation, please write to me through \u003Ca href=\"http:\u002F\u002Fsillybean.net\u002Fabout\u002Fcontact\u002F\" rel=\"nofollow ugc\">my contact page\u003C\u002Fa>. Let me know which plugin you’ve translated and how you would like to be credited. I will write you back so you can attach the files in your reply.\u003C\u002Fp>\n","Allows you to choose who can read private content and offers better control of privacy features.",60,12851,100,1,"2016-04-22T21:29:00.000Z","4.5.33","3.3","",[20,21,22,23,24],"categories","password","privacy","private","users","http:\u002F\u002Fsillybean.net\u002Fcode\u002Fwordpress\u002Fprivate-suite\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fprivate-suite.2.1.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":33,"display_name":7,"profile_url":8,"plugin_count":34,"total_installs":35,"avg_security_score":36,"avg_patch_time_days":37,"trust_score":38,"computed_at":39},"sillybean",16,17260,84,2856,68,"2026-04-04T05:25:35.002Z",[41,59,81,106,126],{"slug":42,"name":43,"version":44,"author":45,"author_profile":46,"description":47,"short_description":48,"active_installs":49,"downloaded":50,"rating":13,"num_ratings":14,"last_updated":51,"tested_up_to":52,"requires_at_least":53,"requires_php":18,"tags":54,"homepage":57,"download_link":58,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"force-user-login-multisite","Force User Login Multisite","1.2.1","jamesdlow","https:\u002F\u002Fprofiles.wordpress.org\u002Fjamesdlow\u002F","\u003Cp>Makes your wordpress blog private unless the user is logged in, optionally setting a minium user level. Modified from https:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fforce-user-login\u002F\u003C\u002Fp>\n","Makes your wordpress blog private unless the user is logged in, optionally setting a minium user level. Modified from http:\u002F\u002Fwordpress.",20,5906,"2023-10-24T09:26:00.000Z","3.2.1","3.0.0",[55,56,21,22,23],"force-user-login","login","http:\u002F\u002Fjameslow.com\u002F2011\u002F10\u002F11\u002Fforce-user-login-multisite\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fforce-user-login-multisite.1.2.1.zip",{"slug":60,"name":61,"version":62,"author":63,"author_profile":64,"description":65,"short_description":66,"active_installs":67,"downloaded":68,"rating":69,"num_ratings":70,"last_updated":71,"tested_up_to":72,"requires_at_least":73,"requires_php":18,"tags":74,"homepage":78,"download_link":79,"security_score":80,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"wp-force-login","Force Login","5.6.3","Kevin Vess","https:\u002F\u002Fprofiles.wordpress.org\u002Fkevinvess\u002F","\u003Cp>Easily hide your WordPress site from public viewing by requiring visitors to log in first. As simple as flipping a switch.\u003C\u002Fp>\n\u003Cp>Make your website private until it’s ready to share publicly, or keep it private for members only.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Features\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>WordPress Multisite compatible.\u003C\u002Fli>\n\u003Cli>Login redirects visitors back to the url they tried to visit.\u003C\u002Fli>\n\u003Cli>Extensive Developer API (hooks & filters).\u003C\u002Fli>\n\u003Cli>Customizable. Set a specific URL to always redirect to on login.\u003C\u002Fli>\n\u003Cli>Filter exceptions for certain pages or posts.\u003C\u002Fli>\n\u003Cli>Restrict REST API to authenticated users.\u003C\u002Fli>\n\u003Cli>Translation Ready & WPML certified.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Bug Reports\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Bug reports for \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fkevinvess\u002Fwp-force-login\" rel=\"nofollow ugc\">Force Login are welcomed on GitHub\u003C\u002Fa>. Please note that GitHub is \u003Cem>not\u003C\u002Fem> a support forum.\u003C\u002Fp>\n","Force Login is a simple lightweight plugin that requires visitors to log in to interact with the website.",30000,8925536,96,101,"2025-02-07T16:57:00.000Z","6.7.5","4.6",[22,23,75,76,77],"protected","registered-only","restricted","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwp-force-login\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-force-login.5.6.3.zip",92,{"slug":82,"name":83,"version":84,"author":85,"author_profile":86,"description":87,"short_description":88,"active_installs":89,"downloaded":90,"rating":91,"num_ratings":92,"last_updated":93,"tested_up_to":94,"requires_at_least":95,"requires_php":96,"tags":97,"homepage":101,"download_link":102,"security_score":103,"vuln_count":104,"unpatched_count":28,"last_vuln_date":105,"fetched_at":30},"jonradio-private-site","My Private Site","4.1.0","David Gewirtz","https:\u002F\u002Fprofiles.wordpress.org\u002Fdgewirtz\u002F","\u003Cp>\u003Cstrong>My Private Site\u003C\u002Fstrong> makes your WordPress site private so only logged-in users can see your content. With one click, you can restrict access to all posts and pages, automatically redirect visitors to the login screen, and keep your site visible only to people you trust.\u003C\u002Fp>\n\u003Cp>Unlike full membership or subscription systems, My Private Site focuses on strong privacy without unnecessary complexity. It is ideal for family sites, schools, clubs, client previews, or development environments where you want to share content with a trusted audience without managing payments, profiles, or custom roles.\u003C\u002Fp>\n\u003Ch3>Ideal Use Cases\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Family sites and school projects\u003C\u002Fstrong>: Share personal updates, photos, or assignments only with family members, classmates, or teachers you choose.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Development and staging sites\u003C\u002Fstrong>: Safely show work-in-progress to clients or teammates without exposing unfinished content or letting it be indexed by search engines.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Clubs, groups, and internal blogs\u003C\u002Fstrong>: Create a private online space for members or staff without the overhead of a complex membership system.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Digital Fortress protection\u003C\u002Fh3>\n\u003Cp>My Private Site helps protect the “front door” of your private site with built-in safeguards for login and user registration, including registration spam protection and optional reCAPTCHA support. It also includes AI Crawler Defense to discourage automated collection of your site’s content.\u003C\u002Fp>\n\u003Ch3>Key Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Make your entire WordPress site private with a single setting  \u003C\u002Fli>\n\u003Cli>Redirect logged-out visitors automatically to the login page  \u003C\u002Fli>\n\u003Cli>Choose where users land after login (requested page, home, dashboard, or custom URL)  \u003C\u002Fli>\n\u003Cli>Support user self-registration on private sites when enabled  \u003C\u002Fli>\n\u003Cli>Protect registration with built-in spam controls and optional reCAPTCHA  \u003C\u002Fli>\n\u003Cli>Optionally block unauthenticated access to the WordPress REST API  \u003C\u002Fli>\n\u003Cli>Simple, no-code setup using standard WordPress settings \u003C\u002Fli>\n\u003Cli>Privacy shortcode lets you selectively show or hide content within a page or post.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Built-in AI Crawler Defense\u003C\u002Fh3>\n\u003Cp>The internet is rapidly changing, with AI crawlers and bots harvesting content without consent. My Private Site helps you defend your work with integrated \u003Cstrong>AI Crawler Defense\u003C\u002Fstrong> features:\u003Cbr \u002F>\n* \u003Cstrong>NoAI and NoImageAI tags\u003C\u002Fstrong>: Automatically add meta tags and headers that signal compliant AI systems not to use your text or images for training.\u003Cbr \u002F>\n* \u003Cstrong>Block GPTBot\u003C\u002Fstrong>: Add a robots.txt rule to prevent OpenAI’s crawler from accessing your site.\u003Cbr \u002F>\n* \u003Cstrong>Really Simple Licensing (RSL)\u003C\u002Fstrong>: Publish a machine-readable license that explicitly prohibits AI training on your content.\u003C\u002Fp>\n\u003Cp>These protections are included free in the core plugin, easy to enable with a checkbox, and designed to safeguard your site without affecting normal visitors or search engines. You can use them even if you’re not using any other site privacy features.\u003C\u002Fp>\n\u003Ch3>Watch the Video Overview and Demo\u003C\u002Fh3>\n\u003Cp>\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002Fjry3DHD-OB8?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch3>Premium Add-ons\u003C\u002Fh3>\n\u003Cp>Premium add-ons turn My Private Site into a comprehensive privacy suite, giving you enterprise-style layered security defenses, smarter oversight, and flexible access, without the complexity or cost.\u003C\u002Fp>\n\u003Cp>Advanced AI Crawler Defense, Visitor Intelligence, and Block IP provide protections regardless of whether you’re using any site privacy features.\u003C\u002Fp>\n\u003Cp>\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FB6s8O9VZLc0?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fzatzlabs.com\u002Fproject\u002Fmy-private-site-public-pages\u002F\" rel=\"nofollow ugc\">\u003Cstrong>Public Pages 2.0\u003C\u002Fstrong>\u003C\u002Fa>: Allows site operators to designate certain specific pages, or pages with specified prefix, to be available to the public without login. Now also allows public site, private pages. \u003Ca href=\"https:\u002F\u002Fyoutu.be\u002Fu7BuYtzS_pI\" rel=\"nofollow ugc\">Watch the video\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fzatzlabs.com\u002Fproject\u002Fmy-private-site-advanced-ai-defense\u002F\" rel=\"nofollow ugc\">\u003Cstrong>Advanced AI Crawler Defense\u003C\u002Fstrong>\u003C\u002Fa>: Protect WordPress content from AI crawlers using licensing, opt-out tags, selective bot blocking, and firewall defenses to control and safeguard your data. \u003Ca href=\"https:\u002F\u002Fyoutu.be\u002FEb4qQDafaRk\" rel=\"nofollow ugc\">Watch the video\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fzatzlabs.com\u002Fproject\u002Fmy-private-site-visitor-intelligence\u002F\" rel=\"nofollow ugc\">\u003Cstrong>Visitor Intelligence\u003C\u002Fstrong>\u003C\u002Fa>: Track logins, logouts, failed attempts, and bot activity with a unified log, anomaly detection, and export tools for stronger site oversight and security. \u003Ca href=\"https:\u002F\u002Fyoutu.be\u002FTTK8bGVD8pM\" rel=\"nofollow ugc\">Watch the video\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fzatzlabs.com\u002Fproject\u002Fmy-private-site-guest-access\u002F\" rel=\"nofollow ugc\">\u003Cstrong>Guest Access\u003C\u002Fstrong>\u003C\u002Fa>: Grant temporary, secure access to private WordPress content using unique shareable links with expiration, one-time use, and full admin-controlled invite management. \u003Ca href=\"https:\u002F\u002Fyoutu.be\u002Fj1vYV8lhqcc\" rel=\"nofollow ugc\">Watch the video\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fzatzlabs.com\u002Fproject\u002Fmy-private-site-block-ip\u002F\" rel=\"nofollow ugc\">\u003Cstrong>Block IP\u003C\u002Fstrong>\u003C\u002Fa>: Block unwanted visitors by IP address or range with full IPv4\u002FIPv6 support, configurable scope, and fast enforcement to secure your WordPress site. \u003Ca href=\"https:\u002F\u002Fyoutu.be\u002FvsxLqYXWITs\" rel=\"nofollow ugc\">Watch the video\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fzatzlabs.com\u002Fproject\u002Fmy-private-site-tags-and-categories\u002F\" rel=\"nofollow ugc\">\u003Cstrong>Tags & Categories\u003C\u002Fstrong>\u003C\u002Fa>: Allows you to make pages public or (with Public Pages 2.0) private based on tags and categories. \u003Ca href=\"https:\u002F\u002Fyoutu.be\u002FdEv7lXxU5lo\" rel=\"nofollow ugc\">Watch the video\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fzatzlabs.com\u002Fproject\u002Fmy-private-site-selective-content\u002F\" rel=\"nofollow ugc\">\u003Cstrong>Selective Content\u003C\u002Fstrong>\u003C\u002Fa>: Allows hiding, showing, and obscurifying page content through the use of shortcodes. Can also selectively hide widgets and sidebars. \u003Ca href=\"https:\u002F\u002Fyoutu.be\u002FexgJrJJSCNY\" rel=\"nofollow ugc\">Watch the video\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fzatzlabs.com\u002Fproject\u002Fmy-private-site-pricing\u002F\" rel=\"nofollow ugc\">\u003Cstrong>Digital Fortress Bundle\u003C\u002Fstrong>\u003C\u002Fa>: All add-ons are available in bundle form.  \u003Ca href=\"https:\u002F\u002Fyoutu.be\u002FB6s8O9VZLc0\" rel=\"nofollow ugc\">Watch the video\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Limits\u003C\u002Fh3>\n\u003Cp>This plugin does not hide non-WordPress web pages, such as .html and .php files. It also won’t restrict images and other media and text files directly accessed by their URL. If your hosting provider’s filesystem protections haven’t been set up correctly, files may also be accessed by directory listing.\u003C\u002Fp>\n\u003Ch3>Support Note\u003C\u002Fh3>\n\u003Cp>Support has moved to the ZATZLabs site and is no longer provided on the WordPress.org forums. If you need a timely reply from the developer, please \u003Ca href=\"http:\u002F\u002Fzatzlabs.com\u002Fsubmit-ticket\u002F\" rel=\"nofollow ugc\">open a ticket\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Mailing List\u003C\u002Fh3>\n\u003Cp>If you’d like to keep up with the latest updates to this plugin, please visit \u003Ca href=\"http:\u002F\u002Fzatzlabs.com\u002Flab-notes\u002F\" rel=\"nofollow ugc\">David’s Lab Notes\u003C\u002Fa> and add yourself to the mailing list.\u003C\u002Fp>\n","Make your WordPress site private with one click for family, projects, or teams. Protection for content, login, and registration.",20000,568968,90,80,"2026-01-28T21:00:00.000Z","6.9.4","4.4","5.4",[56,22,98,99,100],"private-site","registration","security","http:\u002F\u002Fzatzlabs.com\u002Fplugins\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fjonradio-private-site.4.1.0.zip",99,2,"2024-02-16 00:00:00",{"slug":107,"name":108,"version":109,"author":110,"author_profile":111,"description":112,"short_description":113,"active_installs":114,"downloaded":115,"rating":91,"num_ratings":116,"last_updated":117,"tested_up_to":118,"requires_at_least":119,"requires_php":18,"tags":120,"homepage":124,"download_link":125,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"wc-password-strength-settings","Password Strength Settings for WooCommerce","3.0.1","Danny Santoro","https:\u002F\u002Fprofiles.wordpress.org\u002Fdanielsantoro\u002F","\u003Cp>Help secure your WooCommerce site by enforcing stronger passwords and taking additional control of your strength requirements.\u003C\u002Fp>\n\u003Ch3>What does this plugin do?\u003C\u002Fh3>\n\u003Cp>WooCommerce has an integrated Password Strength Meter which forces users to use strong passwords. Sometimes this isn’t desirable – with this plugin, you can choose between five password levels ranging from “Anything Goes” to “Strong Passwords Only”. In addition, you can modify the colors and appearance of these custom messages, as well as modify or remove the password hint. For details on how the password strength is determined, \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FDanielSantoro\u002Fwc-password-strength-settings\u002Fwiki\u002FHow-Password-Strength-is-Determined\" rel=\"nofollow ugc\">please read the documentation here\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>What’s New?\u003C\u002Fh4>\n\u003Cp>Version 3.0.0 is a bit of a rewrite to bring the plugin up to modern coding standards. Functionality should not be impacted, but if it is, please reach out on the support forums.\u003C\u002Fp>\n\u003Cp>Version 3.0.1 is simply a hotfix declaring compatibility with WooCommerce HPOS. Since this plugin doesn’t touch anything with the orders or order metadata, it shouldn’t be impacted at all. \u003Cem>However\u003C\u002Fem>, if you notice any issues then please reach out via the contact form on my website.\u003C\u002Fp>\n\u003Ch4>Notes\u003C\u002Fh4>\n\u003Cp>While this does allow for user accounts to have weaker passwords, it’s a good idea to still encourage strong password use – \u003Cem>especially\u003C\u002Fem> for administrators!\u003C\u002Fp>\n\u003Ch4>Planned Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Option to remove “- Please enter a stronger password.” that is added by WordPress.\u003C\u002Fli>\n\u003Cli>Nothing else at the moment, but let me know if you have any ideas.\u003C\u002Fli>\n\u003C\u002Ful>\n","Help secure your WooCommerce site by enforcing stronger passwords and taking additional control of your strength requirements.",10000,176985,24,"2023-10-11T20:51:00.000Z","6.3.8","5.8",[121,122,100,24,123],"accounts","passwords","woocommerce","https:\u002F\u002Fdanielsantoro.com\u002Fproject\u002Fwoocommerce-password-strength-settings-plugin","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwc-password-strength-settings.zip",{"slug":127,"name":128,"version":129,"author":130,"author_profile":131,"description":132,"short_description":133,"active_installs":134,"downloaded":135,"rating":69,"num_ratings":136,"last_updated":137,"tested_up_to":138,"requires_at_least":96,"requires_php":139,"tags":140,"homepage":143,"download_link":144,"security_score":13,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"expire-users","Expire Users","1.2.2","Ben Huson","https:\u002F\u002Fprofiles.wordpress.org\u002Fhusobj\u002F","\u003Cblockquote>\n\u003Cp>Important security update – if you are using version 0.2 or earlier please upgrade\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>This plugin allows you to set expiry dates for user logins. You can set a user to:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Never expire (default)\u003C\u002Fli>\n\u003Cli>Expire in X days, weeks, moths or years\u003C\u002Fli>\n\u003Cli>Expire on a specific date\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>When a user expires you can:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Change the role of that user\u003C\u002Fli>\n\u003Cli>Replace the user’s password with a randomly generated one\u003C\u002Fli>\n\u003Cli>Send an email notification to the user\u003C\u002Fli>\n\u003Cli>Send an email notification to the site administrator\u003C\u002Fli>\n\u003Cli>Remove expiry details and allow user to continue to login\u003C\u002Fli>\n\u003Cli>Perform you own actions using an \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbenhuson\u002Fexpire-users\u002Fwiki\u002Fexpire_users_expired\" rel=\"nofollow ugc\">\u003Ccode>expire_users_expired\u003C\u002Fcode>\u003C\u002Fa> hook\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>You can automatically assign expiry details to users who sign up via the register form.\u003C\u002Fp>\n\u003Cp>The email notification messages can be configured in the admin settings.\u003C\u002Fp>\n\u003Cp>Please post in the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fexpire-users\" rel=\"ugc\">support forum\u003C\u002Fa> if you have any questions, or refer to the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbenhuson\u002Fexpire-users\u002Fwiki\" rel=\"nofollow ugc\">documentation\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbenhuson\u002Fexpire-users\u002Fissues\" rel=\"nofollow ugc\">report bugs\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbenhuson\u002Fexpire-users\u002Fissues\" rel=\"nofollow ugc\">submit translations\u003C\u002Fa> at the plugin’s \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbenhuson\u002Fexpire-users\u002F\" rel=\"nofollow ugc\">GitHub page\u003C\u002Fa>.\u003C\u002Fp>\n","Set expiry dates for user logins.",4000,53229,25,"2025-09-19T16:05:00.000Z","6.8.5","7.4",[141,56,21,142,24],"expire","roles","http:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fexpire-users\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fexpire-users.1.2.2.zip",{"attackSurface":146,"codeSignals":203,"taintFlows":234,"riskAssessment":235,"analyzedAt":241},{"hooks":147,"ajaxHandlers":199,"restRoutes":200,"shortcodes":201,"cronEvents":202,"entryPointCount":28,"unprotectedCount":28},[148,154,158,164,168,172,175,176,180,184,187,191,195],{"type":149,"name":150,"callback":151,"file":152,"line":153},"action","admin_menu","private_suite_add_options_page","private-suite.php",18,{"type":149,"name":155,"callback":156,"file":152,"line":157},"admin_init","register_private_suite_settings",41,{"type":159,"name":160,"callback":161,"priority":162,"file":152,"line":163},"filter","plugin_action_links","private_suite_plugin_actions",10,57,{"type":159,"name":165,"callback":166,"file":152,"line":167},"private_title_format","private_suite_custom_private_title",65,{"type":159,"name":169,"callback":170,"file":152,"line":171},"protected_title_format","private_suite_custom_protected_title",72,{"type":149,"name":173,"callback":174,"priority":162,"file":152,"line":92},"save_post","set_private_categories",{"type":149,"name":173,"callback":174,"priority":162,"file":152,"line":91},{"type":159,"name":177,"callback":178,"file":152,"line":179},"pre_get_posts","private_suite_query_filter",95,{"type":159,"name":181,"callback":182,"priority":162,"file":152,"line":183},"page_attributes_dropdown_pages_args","private_suite_add_parents",110,{"type":159,"name":185,"callback":182,"priority":162,"file":152,"line":186},"quick_edit_dropdown_pages_args",111,{"type":159,"name":188,"callback":189,"priority":162,"file":152,"line":190},"list_pages","private_suite_parent_status_filter",119,{"type":159,"name":192,"callback":193,"file":152,"line":194},"widget_pages_args","private_suite_filter_pages_args",130,{"type":149,"name":196,"callback":197,"file":152,"line":198},"widgets_init","private_suite_widgets_init",210,[],[],[],[],{"dangerousFunctions":204,"sqlUsage":205,"outputEscaping":207,"fileOperations":28,"externalRequests":28,"nonceChecks":28,"capabilityChecks":28,"bundledLibraries":233},[],{"prepared":28,"raw":28,"locations":206},[],{"escaped":208,"rawEcho":209,"locations":210},12,13,[211,214,216,218,220,222,223,224,226,228,229,231,232],{"file":152,"line":212,"context":213},158,"raw output",{"file":152,"line":215,"context":213},160,{"file":152,"line":217,"context":213},163,{"file":152,"line":219,"context":213},166,{"file":152,"line":221,"context":213},188,{"file":152,"line":221,"context":213},{"file":152,"line":221,"context":213},{"file":152,"line":225,"context":213},190,{"file":152,"line":227,"context":213},191,{"file":152,"line":227,"context":213},{"file":152,"line":230,"context":213},198,{"file":152,"line":230,"context":213},{"file":152,"line":230,"context":213},[],[],{"summary":236,"deductions":237},"Based on the provided static analysis and vulnerability history, the 'private-suite' plugin v2.1 appears to have a strong security posture. The absence of any entry points like AJAX handlers, REST API routes, shortcodes, or cron events significantly limits the potential attack surface. Furthermore, the code analysis shows no dangerous functions, no raw SQL queries, no file operations, and no external HTTP requests, all of which are positive indicators. The fact that 100% of SQL queries use prepared statements is excellent practice. However, the low percentage of properly escaped output (48%) is a notable concern. This could lead to cross-site scripting (XSS) vulnerabilities if user-supplied data is not correctly sanitized before being displayed. The complete lack of any recorded vulnerabilities in its history is a positive sign, suggesting a history of secure development or that the plugin has not been a target. Despite the strong foundation, the insufficient output escaping presents a tangible risk that needs to be addressed to achieve a truly robust security profile.",[238],{"reason":239,"points":240},"Insufficient output escaping detected",6,"2026-03-16T21:48:50.843Z",{"wat":243,"direct":248},{"assetPaths":244,"generatorPatterns":245,"scriptPaths":246,"versionParams":247},[],[],[],[],{"cssClasses":249,"htmlComments":251,"htmlAttributes":252,"restEndpoints":265,"jsGlobals":266,"shortcodeOutput":267},[250],"widget_private_pages",[],[253,254,255,256,257,258,259,260,261,262,263,264],"id=\"private_suite\"","name=\"private_suite\"","id=\"private_suite-title_prefix\"","name=\"private_suite-title_prefix\"","id=\"private_suite-protected_title_prefix\"","name=\"private_suite-protected_title_prefix\"","id=\"private_suite-categories\"","name=\"private_suite-categories\"","id=\"private_suite-private_suite_filter\"","name=\"private_suite-private_suite_filter\"","id=\"private_pages\"","name=\"private_pages\"",[],[],[268],"[wp_list_private_pages]"]