{"id":159990,"date":"2022-07-18T11:01:36","date_gmt":"2022-07-18T11:01:36","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/build-private-store-for-woocommerce\/"},"modified":"2026-05-23T07:33:22","modified_gmt":"2026-05-23T07:33:22","slug":"build-private-store-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/en-ca.wordpress.org\/plugins\/build-private-store-for-woocommerce\/","author":20413676,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2","stable_tag":"trunk","tested":"7.0","requires":"5.5","requires_php":"7.4","requires_plugins":null,"header_name":"Build Private Store For Woocommerce","header_author":"","header_description":"This plugin allows create OC Private Store For Woocommerce plugin.","assets_banners_color":"212123","last_updated":"2026-05-23 07:33:22","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":5,"author_block_rating":0,"active_installs":200,"downloads":5078,"num_ratings":7,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","faq","changelog"],"tags":[],"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":7},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":2757851,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":2757851,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":2757851,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":2757851,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":[],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":2757851,"resolution":"1","location":"assets","locale":"","width":1600,"height":789},"screenshot-2.png":{"filename":"screenshot-2.png","revision":2757851,"resolution":"2","location":"assets","locale":"","width":1600,"height":749},"screenshot-3.png":{"filename":"screenshot-3.png","revision":2757851,"resolution":"3","location":"assets","locale":"","width":1600,"height":1260},"screenshot-4.png":{"filename":"screenshot-4.png","revision":2757851,"resolution":"4","location":"assets","locale":"","width":1264,"height":691},"screenshot-5.png":{"filename":"screenshot-5.png","revision":2757851,"resolution":"5","location":"assets","locale":"","width":1267,"height":699},"screenshot-6.png":{"filename":"screenshot-6.png","revision":2757851,"resolution":"6","location":"assets","locale":"","width":1265,"height":693}},"screenshots":{"1":"General Settings \u2014 Choose privacy mode, redirect URLs, and login-to-price options.","2":"Registration Form Settings \u2014 Customize login title, registration title, and success message.","3":"New User Registration Settings \u2014 Enable manual approval and configure pending\/disabled messages.","4":"User Management Dashboard \u2014 View, approve, or deny pending user registrations with full pagination.","5":"Approved Users \u2014 Browse all approved customers with their name, email, role, and avatar.","6":"Denied Users \u2014 Manage rejected registrations from a dedicated filtered view.","7":"Email Notification Settings \u2014 Customize approve, reject, and admin notification emails.","8":"Selected Items Mode \u2014 Use searchable dropdowns to restrict specific products, categories, tags, and pages."}},"plugin_section":[],"plugin_tags":[236457,264083,264082,155690,190089],"plugin_category":[],"plugin_contributors":[],"plugin_business_model":[],"class_list":["post-159990","plugin","type-plugin","status-publish","hentry","plugin_tags-login-to-see-price","plugin_tags-members-only-store","plugin_tags-restrict-woocommerce-products","plugin_tags-woocommerce-access-control","plugin_tags-woocommerce-private-store","plugin_committers-silverplugins217"],"banners":{"banner":"https:\/\/ps.w.org\/build-private-store-for-woocommerce\/assets\/banner-772x250.png?rev=2757851","banner_2x":"https:\/\/ps.w.org\/build-private-store-for-woocommerce\/assets\/banner-1544x500.png?rev=2757851","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/build-private-store-for-woocommerce\/assets\/icon-128x128.png?rev=2757851","icon_2x":"https:\/\/ps.w.org\/build-private-store-for-woocommerce\/assets\/icon-256x256.png?rev=2757851","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/build-private-store-for-woocommerce\/assets\/screenshot-1.png?rev=2757851","caption":"General Settings \u2014 Choose privacy mode, redirect URLs, and login-to-price options."},{"src":"https:\/\/ps.w.org\/build-private-store-for-woocommerce\/assets\/screenshot-2.png?rev=2757851","caption":"Registration Form Settings \u2014 Customize login title, registration title, and success message."},{"src":"https:\/\/ps.w.org\/build-private-store-for-woocommerce\/assets\/screenshot-3.png?rev=2757851","caption":"New User Registration Settings \u2014 Enable manual approval and configure pending\/disabled messages."},{"src":"https:\/\/ps.w.org\/build-private-store-for-woocommerce\/assets\/screenshot-4.png?rev=2757851","caption":"User Management Dashboard \u2014 View, approve, or deny pending user registrations with full pagination."},{"src":"https:\/\/ps.w.org\/build-private-store-for-woocommerce\/assets\/screenshot-5.png?rev=2757851","caption":"Approved Users \u2014 Browse all approved customers with their name, email, role, and avatar."},{"src":"https:\/\/ps.w.org\/build-private-store-for-woocommerce\/assets\/screenshot-6.png?rev=2757851","caption":"Denied Users \u2014 Manage rejected registrations from a dedicated filtered view."}],"raw_content":"<!--section=description-->\n<p><strong>Build Private Store For WooCommerce<\/strong> lets you turn any WooCommerce shop into a fully private, members-only store in minutes. Whether you want to hide your entire website, lock down your WooCommerce store pages, or restrict only specific products, categories, tags, or pages \u2014 this plugin gives you precise, flexible control without writing a single line of code.<\/p>\n\n<p>Guest visitors are seamlessly redirected to a login\/registration page of your choice, and you control exactly what they can see, price or no price, button or no button.<\/p>\n\n<p><em>\ud83c\udf1f <a href=\"https:\/\/www.plugin999.com\/docs\/build-private-store-for-woocommerce\/\">Documentation<\/a><\/em> | <em>\ud83c\udf1f <a href=\"https:\/\/plugin999.com\/demo\/build-private-store-for-woocommerce\/shop\/\">Live Demo<\/a><\/em> | <em>\ud83c\udf1f <a href=\"https:\/\/www.plugin999.com\/plugin\/build-private-store-for-woocommerce\/\">Get Pro<\/a><\/em> | <em>\ud83c\udf1f <a href=\"https:\/\/www.plugin999.com\/support\/\">Support<\/a><\/em><\/p>\n\n\n\n<h3>\ud83d\udd12 WHO IS THIS PLUGIN FOR?<\/h3>\n\n<ul>\n<li><strong>B2B \/ Wholesale stores<\/strong> that want to show pricing only to registered trade customers.<\/li>\n<li><strong>Membership sites<\/strong> that restrict product access to paying members.<\/li>\n<li><strong>Exclusive boutiques<\/strong> that need manual vetting before letting new customers browse.<\/li>\n<li><strong>Multi-role WooCommerce stores<\/strong> that want different access rules for different user types.<\/li>\n<li>Any store owner who wants to add a <strong>login wall<\/strong> to products, categories, or their full site.<\/li>\n<\/ul>\n\n\n\n<h3>\u2705 KEY FEATURES<\/h3>\n\n<p><strong>Three Privacy Modes<\/strong><\/p>\n\n<p>Choose exactly how much of your site to lock down:<\/p>\n\n<ul>\n<li><strong>Whole Website<\/strong> \u2014 Every page requires login. Guest users are redirected to your chosen URL automatically.<\/li>\n<li><strong>WooCommerce Store Only<\/strong> \u2014 Protect shop, product, category, tag, cart, and checkout pages while keeping the rest of your site publicly accessible.<\/li>\n<li><strong>Selected Items Only<\/strong> \u2014 Pick individual products, product categories, product tags, or WordPress pages to restrict. Everything else stays public.<\/li>\n<\/ul>\n\n<p><strong>Login to See Price<\/strong><\/p>\n\n<p>Replace product prices with a customizable \"Login to see prices\" link for guest users. Works on product listing pages, single product pages, and WooCommerce block-based themes. The link text and color are fully customizable from the admin panel.<\/p>\n\n<p><strong>Hide Add to Cart Button for Guests<\/strong><\/p>\n\n<p>Completely remove the Add to Cart button for non-logged-in visitors on restricted products. The button is hidden in product loops, on single product pages, and even inside WooCommerce blocks \u2014 guests cannot add restricted items to their cart by any route.<\/p>\n\n<p><strong>Granular Product, Category, Tag &amp; Page Restrictions<\/strong><\/p>\n\n<p>Use the built-in Select2 searchable dropdowns to choose exactly which products, product categories, product tags, or pages are restricted. Restricted items are also automatically excluded from Related Products, Upsells, and Cross-sells so guest users never stumble across a restricted product through a sidebar widget.<\/p>\n\n<p><strong>Manual User Registration Approval<\/strong><\/p>\n\n<p>Enable admin approval for new customer registrations. New users are placed in a \"Pending\" state and cannot log in until an administrator approves their account. Admins can Approve or Deny users directly from a clean dashboard inside the plugin, with full pagination and user search.<\/p>\n\n<p><strong>User Status Dashboard<\/strong><\/p>\n\n<p>A dedicated admin panel tab lists all registered users segmented by status \u2014 Pending, Approved, and Denied \u2014 with their name, email, avatar, and role. Approve or deny users with a single click. A custom \"User Status\" column is also added to the standard WordPress Users screen for at-a-glance management.<\/p>\n\n<p><strong>Fully Customizable Email Notifications<\/strong><\/p>\n\n<p>Control every email your store sends related to access management:<\/p>\n\n<ul>\n<li><strong>Account Approved Email<\/strong> \u2014 Notify users when their account is approved (enable\/disable, custom subject &amp; body).<\/li>\n<li><strong>Account Rejected Email<\/strong> \u2014 Notify users when their account is denied (enable\/disable, custom subject &amp; body).<\/li>\n<li><strong>Admin Notification Email<\/strong> \u2014 Alert the site administrator when a user is approved or denied, with dynamic <code>{customer_name}<\/code> placeholder support.<\/li>\n<li><strong>New User Registration Email<\/strong> \u2014 Send a welcome or confirmation email to new registrants immediately upon sign-up (enable\/disable, custom subject &amp; body).<\/li>\n<\/ul>\n\n<p><strong>Custom Login &amp; Registration Form Titles<\/strong><\/p>\n\n<p>Replace the default WooCommerce \"Login\" and \"Register\" headings with any text you like, so your store's branding stays consistent throughout the customer journey.<\/p>\n\n<p><strong>Custom Redirect URLs<\/strong><\/p>\n\n<p>Set separate redirect destinations for:\n* Guest users who try to access a restricted product or page.\n* Users who successfully log in.<\/p>\n\n<p>Both fields accept any URL on your site, giving you full control over user flow.<\/p>\n\n<p><strong>Pending &amp; Disabled Account Messages<\/strong><\/p>\n\n<p>Define the exact message shown to users whose account is still awaiting approval or has been disabled, displayed at the login screen so customers always know their status.<\/p>\n\n<p><strong>Custom Registration Success Message<\/strong><\/p>\n\n<p>Write a personalized message that appears after a new user completes registration \u2014 ideal for setting expectations around the approval process.<\/p>\n\n<p><strong>Cart Validation Protection<\/strong><\/p>\n\n<p>Even if a guest user somehow reaches the add-to-cart URL directly, a server-side validation hook prevents restricted products from being added to the cart. A descriptive error notice is displayed so the user understands why.<\/p>\n\n\n\n<h3>\ud83d\udd12 PRO VERSION FEATURES<\/h3>\n\n<h4>1. Restrict by Private Categories<\/h4>\n\n<p>In the free version, the \"Selected Items\" mode lets you restrict individual products and pages. The <strong>Private Categories<\/strong> field in General Settings is locked behind Pro. With Pro, you can select entire WooCommerce product categories to privatize \u2014 every product belonging to the selected categories is automatically restricted for guest users, without having to list each product individually. This is essential for stores with large or frequently changing catalogues organized by category.<\/p>\n\n<h4>2. Restrict by Private Tags<\/h4>\n\n<p>Similarly, the <strong>Private Tags<\/strong> field in General Settings is a Pro-only feature. Pro users can restrict access to products by WooCommerce product tag, making it easy to mark any tagged subset of your catalogue as members-only \u2014 without touching individual product or category settings.<\/p>\n\n<h4>3. Customizable Account Rejection Email (Subject &amp; Body)<\/h4>\n\n<p>While the free version lets you toggle the rejection email on or off, the <strong>Rejection Email Subject<\/strong> and <strong>Rejection Email Message<\/strong> fields are locked in the free plan. Upgrading to Pro lets you fully customize both the subject line and the body of the email sent to users when their registration is denied \u2014 so your rejection communication stays on-brand and gives customers clear next steps.<\/p>\n\n<h4>4. Customizable Account Approval Email (Subject &amp; Body)<\/h4>\n\n<p>Likewise, the <strong>Approval Email Subject<\/strong> and <strong>Approval Email Message<\/strong> fields are Pro-only. Free users can enable or disable the approval email, but cannot edit its content. Pro users can write a fully personalized approval email \u2014 welcoming new members, sharing login instructions, or linking to exclusive content \u2014 giving a polished first impression the moment a customer is granted access.<\/p>\n\n<p><a href=\"https:\/\/www.plugin999.com\/plugin\/build-private-store-for-woocommerce\/\">\u2b50 Upgrade to Pro<\/a><\/p>\n\n\n\n<h3>\u2699\ufe0f HOW IT WORKS<\/h3>\n\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Go to <strong>Private Store<\/strong> in your WordPress admin menu.<\/li>\n<li>Choose your privacy mode: Whole Website, WooCommerce Store, or Selected Items.<\/li>\n<li>If using Selected Items, search and select the products, categories, tags, or pages you want to restrict using the searchable dropdowns.<\/li>\n<li>Configure your redirect URLs, login-to-see-price text, and email notifications.<\/li>\n<li>Optionally enable Manual Approval to review every new registration before granting access.<\/li>\n<li>Save \u2014 your private store is live immediately.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20restrict%20only%20specific%20products%20and%20leave%20the%20rest%20of%20my%20store%20public%3F\"><h3>Can I restrict only specific products and leave the rest of my store public?<\/h3><\/dt>\n<dd><p>Yes. Choose the \"Selected Items\" privacy mode and use the searchable product selector to pick exactly which products, categories, tags, or pages are restricted. Everything else remains publicly accessible.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20a%20guest%20user%20tries%20to%20view%20a%20restricted%20product%3F\"><h3>What happens when a guest user tries to view a restricted product?<\/h3><\/dt>\n<dd><p>They are automatically redirected to a URL of your choice \u2014 typically your login or My Account page. The redirect happens server-side before any page content is rendered.<\/p><\/dd>\n<dt id=\"can%20i%20hide%20the%20price%20but%20still%20show%20the%20product%3F\"><h3>Can I hide the price but still show the product?<\/h3><\/dt>\n<dd><p>Yes. Enable the \"Login to See Price\" option and the plugin replaces prices with a customizable login link. The product remains visible in listings, but the price and Add to Cart button are hidden for guest users.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20work%20with%20woocommerce%20block-based%20themes%3F\"><h3>Does the plugin work with WooCommerce block-based themes?<\/h3><\/dt>\n<dd><p>Yes. The plugin is compatible with block-based WooCommerce layouts and hooks into the WooCommerce product block to hide prices and remove Add to Cart buttons for guest users.<\/p><\/dd>\n<dt id=\"can%20i%20manually%20approve%20new%20customer%20registrations%20before%20they%20can%20log%20in%3F\"><h3>Can I manually approve new customer registrations before they can log in?<\/h3><\/dt>\n<dd><p>Yes. Enable \"Manual Approval Required\" in the New User Registration tab. New users will be placed in a Pending state and cannot log in until you approve them from the plugin's User Management dashboard.<\/p><\/dd>\n<dt id=\"will%20restricted%20products%20appear%20in%20related%20products%2C%20upsells%2C%20or%20cross-sells%3F\"><h3>Will restricted products appear in Related Products, Upsells, or Cross-sells?<\/h3><\/dt>\n<dd><p>No. Restricted products, categories, and tags are automatically filtered out of Related Products, Upsell, and Cross-sell lists so guest users never encounter restricted items through secondary product recommendations.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20compatible%20with%20the%20latest%20version%20of%20woocommerce%20and%20wordpress%3F\"><h3>Is the plugin compatible with the latest version of WooCommerce and WordPress?<\/h3><\/dt>\n<dd><p>Yes. The plugin is actively maintained and tested against the latest stable releases of both WooCommerce and WordPress.<\/p><\/dd>\n<dt id=\"where%20can%20i%20get%20support%3F\"><h3>Where can I get support?<\/h3><\/dt>\n<dd><p>Visit (https:\/\/www.plugin999.com\/support\/) to submit a support request. You can also leave a review on WordPress.org.<\/p>\n\n<\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2<\/h4>\n\n<ul>\n<li>Added Select2 searchable dropdowns for products, categories, tags, and pages.<\/li>\n<li>Added User Management Dashboard with paginated Pending \/ Approved \/ Denied views.<\/li>\n<li>Added admin notification email for approval and rejection actions with <code>{customer_name}<\/code> placeholder.<\/li>\n<li>Added WooCommerce block theme compatibility for price and Add to Cart button hiding.<\/li>\n<li>Added automatic exclusion of restricted items from Related Products, Upsells, and Cross-sells.<\/li>\n<li>Added server-side cart validation to prevent restricted products being added via direct URL.<\/li>\n<li>Added custom User Status column to the WordPress Users screen.<\/li>\n<li>Improved sanitization and nonce verification on all AJAX endpoints.<\/li>\n<\/ul>\n\n<h4>1.1<\/h4>\n\n<ul>\n<li>Added three privacy modes: Whole Website, WooCommerce Store Only, Selected Items.<\/li>\n<li>Added manual user registration approval workflow.<\/li>\n<li>Added customizable Approve and Reject email notifications.<\/li>\n<li>Added custom login-to-see-price text with link.<\/li>\n<li>Added custom redirect URLs for guests and logged-in users.<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Restrict WooCommerce store access to logged-in users only. Hide prices, hide products, require manual approval, and control who sees what \u2014 with zero  &hellip;","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/en-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/159990","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/en-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/en-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/en-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=159990"}],"author":[{"embeddable":true,"href":"https:\/\/en-ca.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/silverplugins217"}],"wp:attachment":[{"href":"https:\/\/en-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=159990"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/en-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=159990"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/en-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=159990"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/en-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=159990"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/en-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=159990"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/en-ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=159990"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}