{"id":261015,"date":"2025-11-17T15:22:13","date_gmt":"2025-11-17T15:22:13","guid":{"rendered":"https:\/\/en-gb.wordpress.org\/plugins\/h6-private-store-for-woocommerce\/"},"modified":"2026-07-13T18:22:49","modified_gmt":"2026-07-13T18:22:49","slug":"h6-private-store-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/nb.wordpress.org\/plugins\/h6-private-store-for-woocommerce\/","author":18825805,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.1","stable_tag":"1.2.1","tested":"7.0.2","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"H6 Private Store for WooCommerce","header_author":"Hut Six Digital","header_description":"Redirect logged-out users to WooCommerce My Account. Restrict the whole site, the whole store, or selected parts (pages, products, posts, categories, tags). Optional search visibility controls for restricted content.","assets_banners_color":"","last_updated":"2026-07-13 18:22:49","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/plugins.hutsixdigital.co.uk","rating":0,"author_block_rating":0,"active_installs":30,"downloads":734,"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":"hutsixdigital","date":"2026-01-28 15:33:50"},"1.1.0":{"tag":"1.1.0","author":"hutsixdigital","date":"2026-05-26 09:38:24"},"1.1.1":{"tag":"1.1.1","author":"hutsixdigital","date":"2026-06-19 18:12:55"},"1.2.0":{"tag":"1.2.0","author":"hutsixdigital","date":"2026-07-06 20:19:45"},"1.2.1":{"tag":"1.2.1","author":"hutsixdigital","date":"2026-07-13 18:22:49"}},"upgrade_notice":{"1.2.1":"<p>Compatibility hardening for the plugin bootstrap. Recommended if you also run H6 Private Store Pro. No changes to your private-store settings or behaviour.<\/p>","1.2.0":"<p>Adds setup presets, a first-run setup panel, clearer diagnostics, HPOS compatibility signalling, optional REST hardening, and stronger shared-password access cookies.<\/p>","1.1.0":"<p>Major usability improvements and new access control features. Existing settings continue to work as expected.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3432063,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3432063,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0","1.1.1","1.2.0","1.2.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3598297,"resolution":"1","location":"assets","locale":"","width":2234,"height":2234},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3598297,"resolution":"2","location":"assets","locale":"","width":2234,"height":2831},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3598297,"resolution":"3","location":"assets","locale":"","width":2560,"height":2000}},"screenshots":{"1":"Private store settings: scope.","2":"Private store settings: access method and search visibility.","3":"The front-end private store gate shown to logged-out visitors."}},"plugin_section":[],"plugin_tags":[10553,30794,190087,51032,286],"plugin_category":[45],"plugin_contributors":[250789],"plugin_business_model":[],"class_list":["post-261015","plugin","type-plugin","status-publish","hentry","plugin_tags-b2b","plugin_tags-password-protect","plugin_tags-private-store","plugin_tags-wholesale","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-hutsixdigital","plugin_committers-hutsixdigital"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/h6-private-store-for-woocommerce\/assets\/icon-128x128.png?rev=3432063","icon_2x":"https:\/\/ps.w.org\/h6-private-store-for-woocommerce\/assets\/icon-256x256.png?rev=3432063","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/h6-private-store-for-woocommerce\/assets\/screenshot-1.png?rev=3598297","caption":"Private store settings: scope."},{"src":"https:\/\/ps.w.org\/h6-private-store-for-woocommerce\/assets\/screenshot-2.png?rev=3598297","caption":"Private store settings: access method and search visibility."},{"src":"https:\/\/ps.w.org\/h6-private-store-for-woocommerce\/assets\/screenshot-3.png?rev=3598297","caption":"The front-end private store gate shown to logged-out visitors."}],"raw_content":"<!--section=description-->\n<p>H6 Private Store for WooCommerce gives you simple, precise control over who can access your private WooCommerce store.<\/p>\n\n<p>Whether you're running a WooCommerce wholesale store, a trade-only shop, a members-only WooCommerce store, a B2B WooCommerce login-only store, or a private WooCommerce catalogue, you can quickly lock down your WooCommerce content without adding unnecessary complexity.<\/p>\n\n<p>Use it to password protect a WooCommerce shop, hide WooCommerce products from guests, or keep a pre-launch catalogue private until you are ready.<\/p>\n\n<p>Perfect for:<\/p>\n\n<ul>\n<li>Wholesale and trade-only stores<\/li>\n<li>B2B customer portals and login-only catalogues<\/li>\n<li>Private product catalogues<\/li>\n<li>Members-only WooCommerce stores<\/li>\n<li>Pre-launch or invite-only shops<\/li>\n<\/ul>\n\n<h3>Key Features<\/h3>\n\n<h4>Create a private WooCommerce store<\/h4>\n\n<p>Require visitors to log in before accessing your shop, products, or entire site.<\/p>\n\n<h4>Flexible restriction modes<\/h4>\n\n<ul>\n<li>Entire website<\/li>\n<li>WooCommerce only<\/li>\n<li>Specific products or pages<\/li>\n<\/ul>\n\n<h4>Flexible access control<\/h4>\n\n<ul>\n<li>Require login<\/li>\n<li>Or allow access with a shared password<\/li>\n<\/ul>\n\n<h4>Control how visitors are handled<\/h4>\n\n<ul>\n<li>Redirect to login<\/li>\n<li>Or display a custom access message<\/li>\n<\/ul>\n\n<h4>Control exactly what\u2019s private<\/h4>\n\n<ul>\n<li>Shop page<\/li>\n<li>Product pages<\/li>\n<li>Categories<\/li>\n<li>Cart and checkout<\/li>\n<\/ul>\n\n<h4>Public exceptions<\/h4>\n\n<p>Allow selected content to remain visible while everything else is private.<\/p>\n\n<h4>Password session control<\/h4>\n\n<p>Choose how long visitors stay unlocked after entering the shared password.<\/p>\n\n<h4>SEO-friendly<\/h4>\n\n<p>Prevent restricted content from being indexed by search engines.<\/p>\n\n<h4>Quick setup and protection overview<\/h4>\n\n<p>Use setup presets for common private-store patterns, then check the protection overview to see what visitors need access for.<\/p>\n\n<h4>REST and block hardening<\/h4>\n\n<p>Optionally block unauthorised catalogue REST requests to reduce product exposure through modern storefront and block endpoints.<\/p>\n\n<h3>Compatibility Notes<\/h3>\n\n<p>H6 Private Store is designed for classic WooCommerce shop, product, cart, checkout, and account pages.<\/p>\n\n<p>The optional REST and block hardening setting blocks common unauthorised WooCommerce catalogue REST and Store API requests while protection is active. It is best-effort hardening for modern storefront and block endpoints, not a full WooCommerce Blocks integration layer. Custom themes, blocks, and integrations should be tested on your store.<\/p>\n\n<p>The plugin declares compatibility with WooCommerce High-Performance Order Storage (HPOS). It does not directly store or query WooCommerce order table data.<\/p>\n\n<p>Protected areas can include the whole site, selected WooCommerce areas, or selected content. Public exception pages can stay visible in whole-site mode. Search engine handling can send noindex headers on restricted requests, but no plugin can guarantee that already-indexed URLs will disappear instantly from search engines.<\/p>\n\n<h3>Upgrade to Pro<\/h3>\n\n<p>Need more control? Upgrade to Pro.<\/p>\n\n<p>H6 Private Store Pro adds powerful features for growing WooCommerce stores:<\/p>\n\n<ul>\n<li>Restrict access by individual users<\/li>\n<li>Restrict access by user roles<\/li>\n<li>Create customer-specific catalogues<\/li>\n<li>Add product\/category access rules<\/li>\n<li>Hide prices and add-to-cart buttons<\/li>\n<li>Disable add-to-cart for restricted users<\/li>\n<\/ul>\n\n<p>Ideal for B2B stores, customer-specific catalogues, and controlled pricing visibility.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate via Plugins screen<\/li>\n<li>Go to WooCommerce \u2192 H6 Private Store<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20create%20a%20wholesale%20store%3F\"><h3>Can I create a wholesale store?<\/h3><\/dt>\n<dd><p>Yes. Require login to access your store.<\/p><\/dd>\n<dt id=\"can%20i%20use%20a%20password%20instead%20of%20login%3F\"><h3>Can I use a password instead of login?<\/h3><\/dt>\n<dd><p>Yes. You can enable a shared password.<\/p><\/dd>\n<dt id=\"how%20long%20does%20password%20access%20last%3F\"><h3>How long does password access last?<\/h3><\/dt>\n<dd><p>You can choose the duration, from session-only to 30 days.<\/p><\/dd>\n<dt id=\"can%20i%20keep%20selected%20pages%20public%3F\"><h3>Can I keep selected pages public?<\/h3><\/dt>\n<dd><p>Yes. Whole-site mode includes public exceptions so selected pages, posts, or products can remain visible while the rest of the site is private.<\/p><\/dd>\n<dt id=\"can%20search%20engines%20index%20private%20products%3F\"><h3>Can search engines index private products?<\/h3><\/dt>\n<dd><p>The plugin can send noindex headers on restricted requests and hide protected products from common queries. Search engine removal is never instant or guaranteed, especially for URLs indexed before protection was enabled.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20woocommerce%20blocks%3F\"><h3>Does it work with WooCommerce Blocks?<\/h3><\/dt>\n<dd><p>The plugin focuses on classic WooCommerce pages and includes optional best-effort hardening for common WooCommerce REST and Store API catalogue requests. It does not currently provide a dedicated WooCommerce Blocks integration.<\/p><\/dd>\n<dt id=\"can%20i%20hide%20prices%20or%20add-to-cart%20buttons%3F\"><h3>Can I hide prices or add-to-cart buttons?<\/h3><\/dt>\n<dd><p>The free plugin controls access to protected store content. Hiding prices and disabling add-to-cart for restricted users are Pro features.<\/p><\/dd>\n<dt id=\"how%20does%20pro%20extend%20the%20free%20plugin%3F\"><h3>How does Pro extend the free plugin?<\/h3><\/dt>\n<dd><p>Pro adds customer-specific catalogues, role-based visibility, product\/category access rules, hidden prices until approval, restricted purchasing, diagnostics, activity logging, and licence-managed updates.<\/p><\/dd>\n<dt id=\"can%20i%20restrict%20only%20certain%20categories%20or%20products%3F\"><h3>Can I restrict only certain categories or products?<\/h3><\/dt>\n<dd><p>Yes. The free plugin can protect selected products and product categories. Pro adds more advanced product\/category rules for specific customers and roles.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Hardened plugin bootstrap so constants and core classes load safely when another plugin (such as H6 Private Store Pro) has already loaded a bundled copy, preventing redeclaration notices in mixed setups.<\/li>\n<li>No functional changes to private-store behaviour.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Added quick setup presets for wholesale, password-protected, whole-site, and selected-content stores.<\/li>\n<li>Added a first-run setup panel for wholesale\/B2B stores, password-protected catalogues, and pre-launch shops.<\/li>\n<li>Added contextual Pro upgrade prompts for customer-specific catalogues, role visibility, product\/category rules, hidden prices, and purchase controls.<\/li>\n<li>Added a protection overview panel so store owners can quickly check active access settings.<\/li>\n<li>Expanded diagnostics with clearer protection-state explanations.<\/li>\n<li>Added optional REST and block hardening for unauthorised product catalogue requests.<\/li>\n<li>Declared WooCommerce HPOS compatibility.<\/li>\n<li>Improved shared-password access cookies with salted HMAC tokens while keeping legacy cookie compatibility.<\/li>\n<li>Tightened admin REST taxonomy searching to expected content types only.<\/li>\n<li>Updated release metadata and cleanup for the 2.0 release.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Improved settings sanitisation for the main enable toggle.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Complete redesign of settings UI for clarity and ease of use.<\/li>\n<li>Added shared password access option.<\/li>\n<li>Added configurable password session duration.<\/li>\n<li>Added redirect or message options for restricted users.<\/li>\n<li>Added WooCommerce-specific restriction controls.<\/li>\n<li>Added public exceptions for whole-site mode.<\/li>\n<li>Added preview mode for testing.<\/li>\n<li>Improved SEO handling for restricted content.<\/li>\n<li>Improved overall UX, spacing, and labelling.<\/li>\n<li>Preserved backward compatibility with previous settings.<\/li>\n<li>Fixed frontend gate-page styling for password and message modes.<\/li>\n<li>Plugin Check and translation cleanup improvements.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Hide your WooCommerce shop from the public with login-only or shared-password access, flexible catalogue restrictions, and simple setup presets.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/nb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/261015","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/nb.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/nb.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=261015"}],"author":[{"embeddable":true,"href":"https:\/\/nb.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/hutsixdigital"}],"wp:attachment":[{"href":"https:\/\/nb.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=261015"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/nb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=261015"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/nb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=261015"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/nb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=261015"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/nb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=261015"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/nb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=261015"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}