{"id":238697,"date":"2025-07-16T23:53:06","date_gmt":"2025-07-16T23:53:06","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/blog-password-protection-bpp\/"},"modified":"2025-07-16T23:56:30","modified_gmt":"2025-07-16T23:56:30","slug":"blog-password-protection-bpp","status":"publish","type":"plugin","link":"https:\/\/es-ec.wordpress.org\/plugins\/blog-password-protection-bpp\/","author":20985366,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.4.2","stable_tag":"1.4.2","tested":"6.8.5","requires":"6.6","requires_php":"7.2","requires_plugins":null,"header_name":"Blog Password Protection - BPP","header_author":"dmytro1zamaraiev","header_description":"Add password protection for blog page or post.","assets_banners_color":"f7f7f7","last_updated":"2025-07-16 23:56:30","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":10,"downloads":339,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.4.2":{"tag":"1.4.2","author":"dmytro1zamaraiev","date":"2025-07-16 23:56:30"}},"upgrade_notice":{"1.4.0":"<p>First public version. No upgrade issues expected.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3329311,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3329311,"resolution":"1544x500","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.4.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3329311,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3329311,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3329311,"resolution":"3","location":"assets","locale":""}},"screenshots":{"1":"Admin settings interface for configuring password, category filters, secure links, and messages.","2":"Popup modal shown to visitors when password protection is enabled.","3":"Blog frontend with protected content and password request."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[245017,1930,1178,245016,238736],"plugin_category":[54],"plugin_contributors":[245018],"plugin_business_model":[],"class_list":["post-238697","plugin","type-plugin","status-publish","hentry","plugin_tags-category-restriction","plugin_tags-password","plugin_tags-protection","plugin_tags-secure-blog","plugin_tags-user-role-restriction","plugin_category-security-and-spam-protection","plugin_contributors-dmytro1zamaraiev","plugin_committers-dmytro1zamaraiev"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/blog-password-protection-bpp\/assets\/icon-256x256.png?rev=3329311","icon_2x":"https:\/\/ps.w.org\/blog-password-protection-bpp\/assets\/icon-256x256.png?rev=3329311","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/blog-password-protection-bpp\/assets\/screenshot-1.png?rev=3329311","caption":"Admin settings interface for configuring password, category filters, secure links, and messages."},{"src":"https:\/\/ps.w.org\/blog-password-protection-bpp\/assets\/screenshot-2.png?rev=3329311","caption":"Popup modal shown to visitors when password protection is enabled."},{"src":"https:\/\/ps.w.org\/blog-password-protection-bpp\/assets\/screenshot-3.png?rev=3329311","caption":"Blog frontend with protected content and password request."}],"raw_content":"<!--section=description-->\n<p><strong>Blog Password Protection - BPP<\/strong> is a lightweight, easy-to-use plugin that helps you protect your entire WordPress blog or specific parts of it with a password. Whether you\u2019re running a private journal, members-only site, or internal project blog \u2014 this plugin allows you to manage visibility and access without any complex setup.<\/p>\n\n<p>It includes a customizable popup login prompt, the ability to restrict content by category, bypass access via secure URLs, and selectively disable protection for logged-in users by role.<\/p>\n\n<p>\ud83d\udee1\ufe0f <strong>Core Features:<\/strong><\/p>\n\n<ul>\n<li>Password-protect the entire blog or specific categories.<\/li>\n<li>Popup login box with custom title, message, and return button.<\/li>\n<li>Shareable secure access link (no password needed).<\/li>\n<li>Role-based exclusion (e.g. allow Editors or Admins without login).<\/li>\n<li>Feed protection and error messages for incorrect passwords.<\/li>\n<li>Flexible cookie session lifetime (e.g. 24h, 72h, 7d).<\/li>\n<li>Fully managed via a settings page in the WordPress admin panel.<\/li>\n<\/ul>\n\n<h3>Plugin Structure<\/h3>\n\n<p>The plugin consists of the following core files:<\/p>\n\n<ol>\n<li><p><strong>plugin_settings_page.php<\/strong><\/p>\n\n<ul>\n<li>Registers the plugin settings page under <code>Settings &gt; Password Protection<\/code>.<\/li>\n<li>Provides UI controls for all plugin options, such as:\n\n<ul>\n<li>Password setting<\/li>\n<li>Cookie session lifetime<\/li>\n<li>Category protection checkboxes<\/li>\n<li>Secure link sharing toggle<\/li>\n<li>User role bypass<\/li>\n<li>Popup customization (title, text, return link)<\/li>\n<\/ul><\/li>\n<\/ul><\/li>\n<li><p><strong>secure_content.php<\/strong><\/p>\n\n<ul>\n<li>Implements content filtering logic.<\/li>\n<li>Hooks into the page rendering process to:\n\n<ul>\n<li>Detect protected categories or homepage<\/li>\n<li>Display the popup login interface<\/li>\n<\/ul><\/li>\n<li>Injects the popup modal HTML and JavaScript dynamically into the frontend.<\/li>\n<\/ul><\/li>\n<li><p><strong>validation.php<\/strong><\/p>\n\n<ul>\n<li>Handles password validation via <code>POST<\/code>.<\/li>\n<li>Sets encrypted cookies with the correct password session.<\/li>\n<li>Supports error messaging for incorrect attempts.<\/li>\n<li>Provides content masking when accessed through RSS feeds.<\/li>\n<li>Validate session status<\/li>\n<\/ul><\/li>\n<li><p><strong>Screenshots (screenshot-1.png, screenshot-2.png, screenshot-3.jpeg)<\/strong><\/p>\n\n<ul>\n<li>Preview the admin panel settings interface.<\/li>\n<li>Show how the popup form appears on the frontend.<\/li>\n<li>Example of protected content in action.<\/li>\n<\/ul><\/li>\n<\/ol>\n\n<h3>Credits<\/h3>\n\n<p>This plugin was created by Dmytro Zamaraiev for easy blog protection.<\/p>\n\n<h3>License<\/h3>\n\n<p>This plugin is licensed under the GNU General Public License v3.0.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to the <code>\/wp-content\/plugins\/<\/code> directory or install via the WordPress plugin installer.<\/li>\n<li>Activate the plugin through the \u2018Plugins\u2019 menu in WordPress.<\/li>\n<li>Navigate to <code>Settings &gt; Password Protection<\/code>.<\/li>\n<li>Set your desired password and configuration options.<\/li>\n<li>Save your settings and visit the blog frontend to test.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='can%20i%20protect%20only%20certain%20categories%3F'><h3>Can I protect only certain categories?<\/h3><\/dt>\n<dd><p>Yes, you can enable protection only for specific categories using checkboxes in the settings.<\/p><\/dd>\n<dt id='how%20do%20i%20share%20access%20without%20a%20password%3F'><h3>How do I share access without a password?<\/h3><\/dt>\n<dd><p>Enable the secure access link and share the generated URL. This URL includes a secure hash that bypasses the password screen.<\/p><\/dd>\n<dt id='can%20i%20allow%20admins%20or%20editors%20to%20bypass%20protection%3F'><h3>Can I allow Admins or Editors to bypass protection?<\/h3><\/dt>\n<dd><p>Yes, the plugin allows you to disable password protection based on WordPress user roles.<\/p><\/dd>\n<dt id='what%20happens%20on%20rss%20feeds%3F'><h3>What happens on RSS feeds?<\/h3><\/dt>\n<dd><p>RSS feed content is also protected. You can customize the feed message displayed to unauthorized users.<\/p><\/dd>\n<dt id='how%20long%20does%20the%20password%20session%20last%3F'><h3>How long does the password session last?<\/h3><\/dt>\n<dd><p>You can configure cookie session duration in hours (e.g. 24 for 1 day, 168 for 7 days).<\/p><\/dd>\n<dt id='can%20i%20customize%20the%20login%20popup%20text%20and%20title%3F'><h3>Can I customize the login popup text and title?<\/h3><\/dt>\n<dd><p>Yes, you can change the title of the popup, main message, error message, and \"Return\" button label and destination URL.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.4.2<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Added full settings page in admin panel<\/li>\n<li>Support for global and category-specific password protection<\/li>\n<li>User role exclusion (Admin, Editor, etc.)<\/li>\n<li>Secure sharing URL functionality<\/li>\n<li>Popup-based password input form<\/li>\n<li>Customizable messages and session duration<\/li>\n<li>Frontend and feed content protection<\/li>\n<\/ul>","raw_excerpt":"A simple and secure plugin to protect your entire blog or specific categories with a password popup.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/es-ec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/238697","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/es-ec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/es-ec.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/es-ec.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=238697"}],"author":[{"embeddable":true,"href":"https:\/\/es-ec.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/dmytro1zamaraiev"}],"wp:attachment":[{"href":"https:\/\/es-ec.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=238697"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/es-ec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=238697"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/es-ec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=238697"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/es-ec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=238697"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/es-ec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=238697"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/es-ec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=238697"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}