{"id":355538,"date":"2026-08-17T04:52:49","date_gmt":"2026-08-17T04:52:49","guid":{"rendered":"https:\/\/es.wordpress.org\/plugins\/glocalsaino-webpagespassworded\/"},"modified":"2026-08-17T04:52:37","modified_gmt":"2026-08-17T04:52:37","slug":"glocalsaino-webpagespassworded","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/glocalsaino-webpagespassworded\/","author":23548763,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"4.4.3","stable_tag":"4.4.3","tested":"7.0.4","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"GlocalSaino WebPagesPassworded","header_author":"Glocal Saino","header_description":"Single access page for groups of password-protected child pages. Place [glocalsaino_wppw] on a parent page and visitors are redirected to the matching child page after entering the correct password.","assets_banners_color":"3294db","last_updated":"2026-08-17 04:52:37","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/glocalsaino.com","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":30,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"4.4.3":{"tag":"4.4.3","author":"glocalsaino","date":"2026-08-17 04:52:37"}},"upgrade_notice":{"4.4.2":"<p>Fix: global variable names now carry the glocalsaino_wppw_ prefix (PHPCS PrefixAllGlobals compliance).<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3650426,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3650426,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3650426,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3650426,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["4.4.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3650426,"resolution":"1","location":"assets","locale":"","width":1280,"height":478},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3650426,"resolution":"2","location":"assets","locale":"","width":1280,"height":600},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3650426,"resolution":"3","location":"assets","locale":"","width":1280,"height":701},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3650426,"resolution":"4","location":"assets","locale":"","width":1280,"height":479},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3650426,"resolution":"5","location":"assets","locale":"","width":1280,"height":574}},"screenshots":{"1":"Password form on the front-end, with a custom icon and custom colours applied via the settings panel.","2":"Settings panel: general settings section (button label and shortcode reference) and customisable error messages.","3":"Settings panel: form design section with colour pickers, font size controls, and a Font Awesome icon picker.","4":"WordPress editor showing the parent page with the [glocalsaino_wppw] shortcode inserted.","5":"WordPress editor showing a child page configured as a child of the parent page and protected with a password."}},"plugin_section":[],"plugin_tags":[1912,9660,1930,12100,80],"plugin_category":[43,54],"plugin_contributors":[78154,275875,276054],"plugin_business_model":[],"class_list":["post-355538","plugin","type-plugin","status-publish","hentry","plugin_tags-access-control","plugin_tags-child-pages","plugin_tags-password","plugin_tags-protected-pages","plugin_tags-shortcode","plugin_category-customization","plugin_category-security-and-spam-protection","plugin_contributors-freemius","plugin_contributors-glocalsaino","plugin_contributors-rafammoo","plugin_committers-glocalsaino"],"banners":{"banner":"https:\/\/ps.w.org\/glocalsaino-webpagespassworded\/assets\/banner-772x250.png?rev=3650426","banner_2x":"https:\/\/ps.w.org\/glocalsaino-webpagespassworded\/assets\/banner-1544x500.png?rev=3650426","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/glocalsaino-webpagespassworded\/assets\/icon-128x128.png?rev=3650426","icon_2x":"https:\/\/ps.w.org\/glocalsaino-webpagespassworded\/assets\/icon-256x256.png?rev=3650426","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/glocalsaino-webpagespassworded\/assets\/screenshot-1.png?rev=3650426","caption":"Password form on the front-end, with a custom icon and custom colours applied via the settings panel."},{"src":"https:\/\/ps.w.org\/glocalsaino-webpagespassworded\/assets\/screenshot-2.png?rev=3650426","caption":"Settings panel: general settings section (button label and shortcode reference) and customisable error messages."},{"src":"https:\/\/ps.w.org\/glocalsaino-webpagespassworded\/assets\/screenshot-3.png?rev=3650426","caption":"Settings panel: form design section with colour pickers, font size controls, and a Font Awesome icon picker."},{"src":"https:\/\/ps.w.org\/glocalsaino-webpagespassworded\/assets\/screenshot-4.png?rev=3650426","caption":"WordPress editor showing the parent page with the [glocalsaino_wppw] shortcode inserted."},{"src":"https:\/\/ps.w.org\/glocalsaino-webpagespassworded\/assets\/screenshot-5.png?rev=3650426","caption":"WordPress editor showing a child page configured as a child of the parent page and protected with a password."}],"raw_content":"<!--section=description-->\n<p><strong>GlocalSaino WebPagesPassworded<\/strong> creates a single access page that acts as a gateway for a group of password-protected child pages. Place the <code>[glocalsaino_wppw]<\/code> shortcode on a parent page: the plugin renders a password form and, on a correct match, redirects the visitor directly to the matching child page.<\/p>\n\n<p>Every feature listed below is included, free and unlimited \u2014 nothing is locked behind a license or upgrade.<\/p>\n\n<h4>How it works<\/h4>\n\n<ol>\n<li>In WordPress, create a parent page (e.g. \"Private Area\") and set the pages you want to protect as its children.<\/li>\n<li>Assign each child page its own password via <strong>Publish \u2192 Visibility \u2192 Password protected<\/strong> in the editor.<\/li>\n<li>Insert the <code>[glocalsaino_wppw]<\/code> shortcode on the parent page.<\/li>\n<li>When a visitor arrives, they see the plugin's password form. If the password matches a child page, they are redirected to it automatically.<\/li>\n<\/ol>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>Single entry point<\/strong> \u2014 one page with the shortcode gives access to all protected child pages.<\/li>\n<li><strong>Automatic redirect<\/strong> \u2014 the visitor lands directly on the right page without extra steps.<\/li>\n<li><strong>Session cookie<\/strong> \u2014 the password is stored in a cookie for 10 days so the visitor does not need to re-enter it on subsequent visits.<\/li>\n<li><strong>Security nonce<\/strong> \u2014 the form includes a WordPress nonce to guard submissions against CSRF attacks.<\/li>\n<li><strong>Customisable error messages<\/strong> \u2014 configure the wrong-password and lockout messages from the settings panel.<\/li>\n<li><strong>Brute-force protection<\/strong> \u2014 after 5 failed attempts from the same IP, access is locked for 15 minutes using WordPress transients, with no extra database tables.<\/li>\n<li><strong>Secure cookie<\/strong> \u2014 the session cookie is set with <code>HttpOnly<\/code> and <code>SameSite=Strict<\/code> flags.<\/li>\n<li><strong>Form design<\/strong> \u2014 adjust the colours, font sizes, and spacing of the form fields and button directly from the settings panel.<\/li>\n<li><strong>Button icon<\/strong> \u2014 choose a Font Awesome icon to display on the submit button, with configurable position (left, right, or above the text).<\/li>\n<li><strong>No external dependencies<\/strong> \u2014 the plugin loads no external libraries or remote resources.<\/li>\n<\/ul>\n\n<h4>Usage<\/h4>\n\n<p>Insert the shortcode on the parent page that will act as the access form:<\/p>\n\n<pre><code>[glocalsaino_wppw]\n<\/code><\/pre>\n\n<p>Optional shortcode parameters:<\/p>\n\n<ul>\n<li><code>label<\/code> \u2014 submit button text. Default: <code>Enter<\/code>.<\/li>\n<li><code>id<\/code> \u2014 <code>id<\/code> attribute of the <code>&lt;form&gt;<\/code> element. Default: <code>glocalsaino-wppw-login<\/code>.<\/li>\n<li><code>parent<\/code> \u2014 ID of the parent page whose children will be searched. Default: the current page ID.<\/li>\n<\/ul>\n\n<p>Example with parameters:<\/p>\n\n<pre><code>[glocalsaino_wppw label=\"Log in\" id=\"my-form\"]\n<\/code><\/pre>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 5.0 or higher.<\/li>\n<li>PHP 7.4 or higher.<\/li>\n<li>Child pages must be published and have a password configured from the WordPress editor.<\/li>\n<\/ul>\n\n<h3>Privacy Policy<\/h3>\n\n<p>GlocalSaino WebPagesPassworded does not collect, store, or transmit any personal data.<\/p>\n\n<ul>\n<li>The plugin reads the password entered in the form only to compare it against the passwords of the child pages stored in the WordPress database. That comparison happens entirely on the server and the data is not saved or sent to any third party.<\/li>\n<li>A cookie (<code>wp-postpass_*<\/code>) is stored in the visitor's browser to maintain access for 10 days. This is a standard WordPress cookie and contains only the hash of the password, never the password in plain text.<\/li>\n<li>No external connections of any kind are made.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>glocalsaino-webpagespassworded<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin from <strong>Plugins \u2192 Installed Plugins<\/strong>.<\/li>\n<li>Create a parent page and add child pages with their passwords via <strong>Publish \u2192 Visibility \u2192 Password protected<\/strong>.<\/li>\n<li>Insert <code>[glocalsaino_wppw]<\/code> on the parent page.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20have%20several%20parent%20pages%20each%20with%20their%20own%20group%20of%20child%20pages%3F\"><h3>Can I have several parent pages each with their own group of child pages?<\/h3><\/dt>\n<dd><p>Yes. The <code>[glocalsaino_wppw]<\/code> shortcode placed on each parent page searches only among its direct child pages. Each group is independent.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20two%20child%20pages%20share%20the%20same%20password%3F\"><h3>What happens if two child pages share the same password?<\/h3><\/dt>\n<dd><p>The visitor is redirected to the most recently published child page that matches the entered password.<\/p><\/dd>\n<dt id=\"how%20long%20does%20the%20access%20cookie%20last%3F\"><h3>How long does the access cookie last?<\/h3><\/dt>\n<dd><p>10 days. After that, or if the visitor clears their browser cookies, they will need to enter the password again.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20https%3F\"><h3>Does it work with HTTPS?<\/h3><\/dt>\n<dd><p>Yes. If the site uses HTTPS the cookie is automatically marked as <code>Secure<\/code>.<\/p><\/dd>\n<dt id=\"i%20entered%20the%20correct%20password%20but%20i%20see%20the%20lockout%20message.%20what%20should%20i%20do%3F\"><h3>I entered the correct password but I see the lockout message. What should I do?<\/h3><\/dt>\n<dd><p>The lockout lasts 15 minutes and is tied to the IP address. If you are the administrator and need to clear it early, delete the transients with the prefix <code>glocalsaino_wppw_lock_<\/code> and <code>glocalsaino_wppw_fail_<\/code> from the database or with a transient management plugin.<\/p><\/dd>\n<dt id=\"is%20it%20compatible%20with%20page-exclusion%20plugins%3F\"><h3>Is it compatible with page-exclusion plugins?<\/h3><\/dt>\n<dd><p>Yes. If the site has a plugin that exposes <code>pause_exclude_pages()<\/code> \/ <code>resume_exclude_pages()<\/code> (a common pattern in menu and listing exclusion plugins), the plugin calls them around its query to ensure protected pages are always found.<\/p><\/dd>\n<dt id=\"the%20password%20is%20correct%20but%20the%20visitor%20is%20not%20redirected.%20what%20could%20be%20wrong%3F\"><h3>The password is correct but the visitor is not redirected. What could be wrong?<\/h3><\/dt>\n<dd><p>Check that:<\/p>\n\n<ul>\n<li>The child page is published (not a draft).<\/li>\n<li>The child page is a direct child of the page containing the shortcode, not a grandchild.<\/li>\n<li>The password in WordPress is saved without leading or trailing spaces.<\/li>\n<\/ul><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>4.4.3<\/h4>\n\n<ul>\n<li>Tweak: rename first submenu item from \"WebPagesPassworded\" to \"Configuraci\u00f3n\" so it fits in the sidebar.<\/li>\n<\/ul>\n\n<h4>4.4.2<\/h4>\n\n<ul>\n<li>Fix: rename $wppw_core, $wppw_admin, $wppw_styles to use the glocalsaino_wppw_ prefix in the main plugin file (PHPCS PrefixAllGlobals).<\/li>\n<\/ul>\n\n<h4>4.4.1<\/h4>\n\n<ul>\n<li>Plugin renamed to GlocalSaino WebPagesPassworded (slug: glocalsaino-webpagespassworded).<\/li>\n<li>Shortcode changed to [glocalsaino_wppw].<\/li>\n<li>All features (custom error messages, form design, button icon) are now fully free and unlimited.<\/li>\n<li>Magic links feature removed from this plugin; will be released as a separate add-on.<\/li>\n<li>Inline styles replaced with wp_add_inline_style() for WP.org compliance.<\/li>\n<li>All registration identifiers (menu slug, option names, script handles, transient keys) updated with the glocalsaino_wppw_ prefix.<\/li>\n<\/ul>\n\n<h4>4.3.1<\/h4>\n\n<ul>\n<li>Fix: admin assets (Font Awesome, colour pickers) not loading after moving to top-level menu.<\/li>\n<li>Fix: update admin enqueue hook from settings_page_ to toplevel_page_.<\/li>\n<li>Added composer.json to satisfy WP.org plugin checker.<\/li>\n<li>Author unified to Glocal Saino across all files.<\/li>\n<\/ul>","raw_excerpt":"Single password form for groups of password-protected child pages. Enter the password and get redirected to the right child page automatically.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/355538","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=355538"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/glocalsaino"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=355538"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=355538"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=355538"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=355538"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=355538"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=355538"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}