Gatemi Private Store for WooCommerce makes part of a shop — or all of it — private. Protect a category, a list of products, or the whole store, and choose who gets in: anybody signed in, particular roles, or anybody holding a password.
A hidden product is removed from the query, not styled away. This is the part the category gets wrong. A product id is a guessable number, and a direct URL, a bookmark, a search engine's memory or a REST call all reach a product without ever passing through a shop loop. So the same verdict is enforced in four places: the query that lists it, WooCommerce's own visibility answer, the purchasability filter — which is what covers the Store API, the blocks cart and checkout without this plugin knowing they exist — and add-to-cart, where the refusal carries a reason.
A protection is never loosened by another protection. Every rule covering a product must be satisfied, not the first one and not any one of them. First-match-wins would mean a broad rule added at the top of the list silently unlocking everything the narrower rules below it were protecting — and a merchant finds that out from a customer. Here, adding a rule can only ever protect more.
A password unlocks a rule, never a URL. Passwords are stored hashed, never in the clear. The cookie that records an unlock is an HMAC over the rule and its stored hash, signed with your site's own salts: it carries no secret, it cannot be minted from a rule name, and changing a rule's password closes every unlock already handed out — which is the entire reason a merchant changes it.
Features
- Protect the whole shop, chosen categories (sub-categories included), or chosen products
- Three kinds of access: anyone signed in, chosen roles, or a password
- Protected products and categories leave the shop, search, menus and category widgets — or stay listed but unbuyable, if that is what you want
- A refused visitor gets your own sentence, and the password box when a password is what they need
- Or send them to sign in, or show "not found" — your choice
- Anyone who can edit products always sees everything, so you can check your own shop
- No storefront JavaScript, one small stylesheet, and a template a theme can override
Every license includes
- One year of updates and priority support, delivered straight to your WordPress dashboard.
- Use on 1, 5 or 25 sites depending on your license — local, staging and development sites are always free.
- 30-day money-back guarantee — full refund, no questions asked.
- Keeps working after expiry — if you choose not to renew, the plugin keeps running exactly as installed; it simply stops receiving updates and support until you do.
Requires WordPress 6.4+ · PHP 7.4+ · tested up to WordPress 7.0. Works with the classic and block checkout alike.

Niklas L. (verified owner) –
Preislich fair, auch mit dem kleinen Haken. Single Site passt für mich, mehr Auswahl wäre schön gewesen. Passt so.
Alessandro (verified owner) –
La configurazione ha richiesto più tempo del previsto. Private Store fa quello che deve. Sono soddisfatto.
Pauline S. (verified owner) –
A remplacé une extension bien plus lourde qui en faisait la moitié. Private Store ne m’a jamais surpris, et c’est un compliment. Exactement ce que j’espérais.
G. Porter (verified owner) –
Decent, and I’d still buy it. Private Store has done everything I’ve asked of it so far. Would recommend it.
Katie N (verified owner) –
The trial convinced me within a day. Been recommending Private Store to people in the same boat. Absolutely worth it.