Create client-specific products in WooCommerce

By default, products created in WooCommerce are available to all users to buy. In this article, I’ll look at the simplest method possible to create client-specific products, also known as user-specific products, in WooCommerce.
What are client-specific products?
Client-specific products would normally be hidden from most visitors to your site. Only certain users would be able to view and purchase them. Users could be identified either by logging in or by using a unique password that you could assign to the product then issue to your customers.
Once the user has logged in or entered their password into a simple form, they can immediately view the unique products you’ve prepared for them. It’s simple but adds a really nice personal touch to your site.
Why create client-specific products?
Most of the time, you’d like to be selling as many products to as many customers as possible. However, there are times in certain industries where client-specific products make sense.
- You’re creating personalised products for individual clients
- You might not want everyone to see all your products
- Products might be private in nature
- Products might have an age restriction
- You might be charging different users different prices for similar products
Examples of client-specific products
Photographers
If you’re running a photography business, there’s a good chance that you’d like your customers to be able to purchase and download their photos from your site without the rest of the world seeing them.
Possible use cases here include wedding photographs, school or kids’ photos, portraits: in fact, any kind of photography project you care to mention.
School websites
Whether it’s school photos, personalised uniforms, reports, or other products, you might want to ensure that products are only available to designated parents.
Designers
If you’re a graphic designer and you’re working on client projects, then it’s highly convenient for your clients to be able to view, purchase and download your designs direct from your site. It’s highly convenient for you too.
By creating client-specific products, you can issue your clients with a user name or even just a password so that they can access their designs without anyone else seeing them.
Printers
Imagine being able to create proofs for your client’s brand new business cards, uploading it to a user-specific product, then sending the client their simple password to access the proofs. They can sign them off there and then, and pay for the order online. It’s a great service for your customers and it saves time for you too.
Wedding stationery
By its nature, wedding stationery is bound to be personalised. User-specific products are an ideal solution for allowing your clients to view proofs and pay for their designs.
Sports clubs
Your local rugby, football, cricket, hockey, la crosse team, whether it’s adult or kids, will often need a client-specific area on their website. You might use this to provide personalised kit for your players or offer special merchandise to supporters.
Branded apparel, workwear or goods
If your business centres around creating branded goods for companies or individuals, it makes a lot of sense to provide your customers with products that are specific to them.
How to create a client-specific product in WooCommerce
Having established the need and desirability for client-specific products, let’s look at how to create one in WooCommerce. This is a simple, three-step process:
- Purchase, download and install the WooCommerce Members Only plugin.
- Create your product
- Make your product private
Install the WooCommerce Members Only plugin
This is an ultra-simple plugin that, among other things, will allow you to create user-specific products.
Once you’ve uploaded the plugin and activated it, you don’t need to do any configuration.
Create a product
If you’re familiar with WooCommerce, then you shouldn’t need too much assistance with this. However, if it’s new to you, I recommend taking a look at the WooCommerce Docs section on adding and managing products.
Depending on the type of product you’re creating, at this stage you can upload any proofs or photos as product images, set the price, and even write a personal message to your custom.
But, before you hit ‘Publish’…
Make your product private
This is where the magic happens. With the Members Only plugin installed and active, you’ll have a new panel in the WooCommerce Product Data section entitled ‘Members Only’. Click on this.

Initially, you’ll have the option to choose a ‘Restriction method’. Note that there’s no restriction applied by default.
You can choose between ‘By User’, ‘By User Role’ and ‘Password’.

What’s the difference between ‘By User’, ‘By User Role’ and ‘Password’?
When you make your product private, it’ll be hidden from all other users apart from those you specify. You can specify users either by their user ID, user role or simply by giving them a password.
If you decide to use the ‘User ID’ setting, your customers will need to log in using their WordPress account in order to view the product.
If you specify user role, users will also need to log in. The main difference between user role and user ID is that you can assign multiple users to a role more easily than specifying multiple user IDs to a restricted product.
If you use passwords, then your user doesn’t need to have an account on the site – anyone who has the password can use it to view the product. This might be a good or a bad thing.
There’s a more detailed look at the pros and cons of user ID and passwords here.
How to get the user ID in WordPress
If you decide to use ‘User ID’ as the restriction method, there’s a simple way to get the user ID in WordPress. The Members Only plugin helpfully displays it for you.
Just go to Users in your WordPress admin, locate the user you wish to obtain the ID for, and hover over that user. You’ll see the ID appear as part of the extra options under the user name.

Protecting the product by user ID
Let’s look at restricting the product by user ID first. Select ‘By User’ for ‘Restriction method’ and you’ll see a new field called ‘User IDs’. In here, you can enter a comma-separated list of IDs for users who are permitted to view this product.
So, if the user with the ID 241 is allowed to view this product, just enter ‘241’ into the ‘User IDs’ field:

Protecting the product by user role
To restrict the product to certain user roles, select ‘By User Role’ from the ‘Restriction method’ field.
You’ll see additional fields appear.

In ‘Permitted user roles’, enter the role or roles that are permitted to view this product.
If you want to ensure that certain roles can’t see the product, enter these roles into ‘Hide from User Roles’.
Protecting the product by password
If you decide to restrict the product by password instead, just choose ‘Password’ from ‘Restriction method’. You’ll see a new field where you enter as many passwords as you like, each on a separate line.

Now any user who enters a correct password will be able to view the product.
Hide or display user-specific products on archive pages
Whichever restriction method you choose here, you’ll get the option to ‘Hide in Archives’.
Maybe, with your clients’ permission, you want to display their specific products on the main shop and other archive pages. You can take advantage of the ‘fear of missing out’ factor by letting other users see customers’ products.
Other customers could see the products but when they click on them, they’re redirected to a password or log-in page. You could even design a specific landing page to encourage new customers to sign up with you.
The chances are, though, that you will probably want to keep user-specific products hidden from everyone except the customer they’re reserved for. If you want to hide private products in the shop and archives pages, just check the ‘Hide in Archives’ option.
Further reading
- WooCommerce private store: three easy steps to protect your content
- WooCommerce private products: how to create them (and why you should)
- How to create private categories in WooCommerce
- How to protect WooCommerce categories by user role or password
WooCommerce Members Only
Hopefully, this has given you some insight into how easy it is to create client-specific products. Just click the image below to find out more about the Members Only plugin.
ok, great idea. what if though…the products are massive? As you said for example maybe for a photographer. If he wants to give access to user 1 e.g for downloading and buying his photos…maybe 500 of them, does he need to add the user id to all 500 products by HAND?or can this be done automatically?
TThank you
Thanks – yes, good question. In this case, you could create a unique user role for each user then assign all the user’s products to a unique category. Then you can restrict categories by user role. This would be much quicker.
Thanks
Gareth
does your product support this strategy?
thanks
Yes, absolutely.
Gareth, could you please tell me exactly how you would do what’s above? How do I “create a unique user role for each user then assign all the user’s products to a unique category. Then you can restrict categories by user role.”?
Thanks!
b.
Hi Brent
You can create new user roles by following the steps here: https://pluginrepublic.com/documentation/create-new-user-roles/.
Then you can assign products to categories by following the guidance here: https://docs.woocommerce.com/document/managing-product-taxonomies/.
There’s a tutorial on protecting categories by user role here: https://pluginrepublic.com/woocommerce-protected-categories/.
If you have a licence and you need further help, please raise a ticket here – https://pluginrepublic.com/support/ – and we’ll get straight back to you.
Thanks.
Thanks Gareth!
For large number of users, creating a unique user role for each user could be laborious. I would like to explore protecting the products by user ID this way:
What if I assign the user ID to a large quantity of products in the same csv file for updating products and import the csv file to Woocommerce?
Does your plugin support product csv import?
Thank you very much.
Hi Michael
Yes, you should be able to do this using a CSV import/export plugin that allows you to import metadata.
Thanks.
My wife is a photographer with a wordpress site with a print-on-demand 3rd party plugin(for prints, frames, canvas, postcards, etc). But she also does physical special events where she takes digital pictures, and would like to offer the customer the option to upgrade by ordering the extras of the picture through her website, hours or days later. So there would be a ‘revolving door’ of temporary customers created with their personal login to access their personal photo(that no one else can see) and order the upgrades. Is this possible?
Hi Charlie
Yes, absolutely. You can create as many customer-specific products as you like. Please remember that the plugin protects access to product pages. Images may still be available, e.g. if a user had the direct URL to the image.
Thanks.
Hi Gareth,
Sorry that I am confused.
If “Images may still be available, e.g. if a user had the direct URL to the image.”,
would it be in conflict with the description – “without the rest of the world seeing them” – in the Photographers example of this article?
“Photographers
If you’re running a photography business, there’s a good chance that you’d like your customers to be able to purchase and download their photos from your site without the rest of the world seeing them.”
Would it be possible to further enhance the plugin to also restrict access to the product images?
Thank you very much!
Hi Michael
At the moment, it’s not possible to restrict access to the direct URLs in this way, though it would be possible as a customisation.
Thanks.