WooCommerce Members Only

Protect your content and sell members-only products

View Prices

Control access to your site

Create a private WooCommerce store to protect your content

What customers say

We have a customized online shop to sell school supplies for parents with children in one or many school levels. We had a lot of issues trying to fulfill the requirements such as restricting products and categories only to registered users, restricting products categories depending on the school level, and giving parents access only to those products their children need for their current school level.

We are more than satisfied with the WooCommerce Members Only because it not only helped us solving all the issues we were having but also gave us some more functionality, like restricting menu items and widgets, which made our store even more precise to our customer needs. Plus the support is A+: fast and attentive to all our needs.

Mario López

I've been using WooCommerce Members Only plugin to setup presale access for people who previously bought our limited edition books.  The difficulty we faced was that we couldn't create private access to a specific user role.

This plugin enabled us to assign multiple roles to users and thus enable presale access to them when we are about to launch a new product.

Marko MatijaševićAmaranthine Books

See more reviews

Plugin Features and Information


Create a membership site with WooCommerce

Create a WooCommerce membership site with the WooCommerce Members Only plugin. Perfect for membership sites, clubs and societies, wholesale stores, age-restricted sites, and many more.

Choose how much of your content to keep private

Members Only lets you choose how much of your content to protect - from a single product to the entire site.

You can choose to restrict:

  • Your entire site
  • All WooCommerce pages
  • All WooCommerce products
  • Selected WooCommerce products
  • Selected WooCommerce categories
  • Selected posts
  • Selected post categories

The complete WooCommerce membership plugin

WooCommerce Members Only is the best membership plugin for protecting your content.

  • Automatically create a password page and form
  • Define where to send users after they log in
  • Choose where to redirect users when they try to access unauthorised content
  • Hide widgets and menu items from users who aren't permitted to view your content
  • Hide private posts, products and categories or keep them visible but inaccessible

View Prices


Choose how to protect your content

Members Only lets you control which users can access your content. You can restrict access by password, user role, or logged-in status. You can even restrict access to individual products and posts according to specific users.

Only the users that you have chosen can access your content.

Password options

  • Set one or more global passwords
  • Create different passwords for each product or post
  • Create different passwords for each product or post category

User role options

  • Specify one or more user roles at a global level
  • Allow different user roles to access different products or posts
  • Allow different user roles to access different product and post categories
  • Restrict or enable payment gateways by user role
  • Restrict or enable shipping methods by user role
  • Set expirations for memberships

Custom registration options

  • Allow users to select their role at registration
  • Manually approve users after registration, if required
  • Prevent pending or rejected users from logging in
  • Set different default roles for new users
  • Add custom fields to registration form

Other options

  • Restrict access to users who are logged in
  • Create user-specific products by restricting access to specified products to specific user IDs

User role editor

If you're protecting your content according to user roles, you need a simple way to create and manage user roles. The built-in user role editor lets you:

  • Create new user roles
  • Duplicate existing roles
  • Edit role capabilities

View Prices

Product Data

Released11 December 2018
Last Updated28 February 2023
Current Version1.10.10
RequiresWooCommerce 3.0+

View Prices


= 1.10.10, 28 February 2023 =
* Fixed: User IDs field in the Edit Product page is not hidden if Restriction method is not By User
* Fixed: pending user role causes fatal error in PHP 8
* Updated: compatibility with Product Table Ultimate
* Updated: prevent creating a new registration field with blank label

= 1.10.9, 4 January 2023 =
* Added: wcmo_override_is_restricted_category_by_id filter
* Fixed: PHP warnings when authenticating users
* Fixed: Fatal error when saving a page with products shortcode

= 1.10.8, 6 December 2022 =
* Added: wcmo_filter_category_local_rules filter
* Added: wcmo_override_is_permitted_category_by_id filter
* Added: wcmo_disable_new_registration_email filter

= 1.10.7, 5 October 2022 =
* Added: wcmo_product_restricted_user_ids filter
* Added: wcmo_force_hide_restricted_categories filter
* Fixed: removed wcmo_is_menu_item_restricted filter
* Fixed: Fatal error when an order cannot be retrieved in wcmo_assign_roles_after_purchase function
* Fixed: PHP warnings
* Updated: choose User IDs via multiple select dropdown instead of text field

= 1.10.6, 17 May 2022 =
* Fixed: parse error in functions-products.php

= 1.10.5, 10 April 2022 =
* Updated: add redirect button to archive page if specified

= 1.10.4, 5 April 2022 =
* Updated: error suppression in wcmo_hide_restricted_categories

= 1.10.3, 5 April 2022 =
* Added: wcmo_product_restriction_method_posts_per_page and wcmo_hide_from_user_roles_posts_per_page filters
* Added: delete user-specific transients when user profile is updated
* Fixed: some transients do not regenerate after they expire
* Fixed: permit across multiple categories setting not displaying correct products
* Fixed: redirect issue with password-protected subcategories
* Fixed: redirect issue on some paths with query strings
* Fixed: when adding a new user, sometimes roles do not get saved

= 1.10.2, 2 December 2021 =
* Added: option to ensure that products in multiple categories with different rules are accessed correctly
* Fixed: user can now access products with different locally set passwords
* Fixed: added options param to custom form fields
* Fixed: redirect from log-in incorrectly directing to referring page
* Updated: switched wcmo_product_passwords from transient to option

= 1.10.1, 26 July 2021 =
* Added: wcmo_locally_restricted_categories transient
* Fixed: ensure transient expiry doesn't affect user ID restrictions

= 1.10.0, 23 June 2021 =
* Added: support for role assignment fields in variable products
* Added: GUI to add registration fields
* Added: upload fields to registrations
* Added: description in registration fields
* Added: option to add registration fields to admin notification emails
* Added: save custom registration fields in user profiles
* Added: option to set reminder date
* Added: reminder email for expiring memberships
* Fixed: ensure correct products returned in [products] shortcode

= 1.9.18, 5 April 2021 =
= Fixed: parse errors in functions-products.php

= 1.9.17, 25 March 2021 =
* Added: wcmo_ignore_hidden_roles_non_logged_in filter
* Added: wcmo_ignore_shipping_for_non_logged_in filter
* Added: wcmo_ignore_payments_for_non_logged_in filter
* Added: wcmo_ignore_restricted_payments_for_non_logged_in filter
* Fixed: posts with multiple categories not restricted correctly
* Fixed: hidden user roles not restricting individual products correctly
* Updated: Billing and Shipping State fields in registration form
* Updated: removed wcmo_admin_notices

= 1.9.16, 16 November 2020 =
* Fixed: certain products still purchasable when method set to all
* Updated: allow users to access categories pages when wcmo_allow_view_products is set

= 1.9.15, 6 November 2020 =
* Fixed: prevent unrestricted products from redirecting to log-in page

= 1.9.14, 3 November 2020 =
* Added: wcmo_get_transient_expiration
* Added: wcmo_products_restricted_to_current_user_archive transients
* Added: wcmo_get_users_expiration_dates shortcode
* Fixed: parse error in functions-registration.php
* Fixed: correctly display custom user fields on profile page
* Fixed: widgets not hidden for restricted users
* Fixed: correctly update capabilities
* Fixed: user-role restriction on entire site not setting correctly
* Updated: licence key notifications

= 1.9.13, 6 October 2020 =
* Added: display custom registration fields in user profile
* Added: select field option for new registration fields

= 1.9.12, 22 September 2020 =
* Added: wcmo_user_needs_approval filter
* Added: further registration fields and priority option

= 1.9.11, 19 September 2020 =
* Added: extra registration fields

= 1.9.10, 18 September 2020 =
* Added: hide product price in widgets
* Fixed: remove add to cart button from restricted variable products
* Fixed: parse error in functions-registration.php
* Updated: performance improvement when entire site is restricted

= 1.9.9, 29 July 2020 =
* Added: referring page parameter to wcmo_replacement_add_to_cart_button

= 1.9.8, 23 July 2020 =
* Fixed: respect Access Product Pages setting

= 1.9.7, 14 July 2020 =
* Fixed: products restricted to user IDs displaying in archive pages

= 1.9.6, 17 June 2020 =
* Added: Access Product Pages and Redirect from Add to Cart Button settings
* Added: wcmo_after_assign_roles_after_purchase action
* Added: wcmo_after_update_users_role action
* Fixed: capabilities not displaying on Roles screen
* Updated: check for 'Pending' role in wcmo_email_additional_content_customer_new_account

= 1.9.5, 14 May 2020 =
* Added: wcmo_registration_form_role_label to change label for 'Role' field on registration form
* Added: automatically create 'pending' role if pending users barred from logging in
* Added: notice to pending users when they register

= 1.9.4, 23 April 2020 =
* Added: hide prices option
* Fixed: error message when user logs in without a role
* Fixed: empty registration fields not saving correctly
* Updated: prevent non-admins from editing role capabilities
* Updated: prevent the administrator role from being an option in the registration form
* Updated: translation files

= 1.9.3, 14 April 2020 =
* Added: wcmo_assign_roles_order_status option
* Fixed: payment and shipping methods not saving empty values
* Updated: prevent administrator role being set as new user role

= 1.9.2, 1 April 2020 =
* Update: check product is_object in wcmo_update_excluded_products_transient

= 1.9.1, 18 March 2020 =
* Fixed: changed is_numeric to is_object in wcmo_update_excluded_products_transient
* Fixed: shipping and payment settings not saving empty values
* Updated: retain wcmo_referrer param in URL when user enters incorrect password
* Updated: check WooCommerce is active

= 1.9.0, 3 March 2020 =
* Added: registration fields
* Added: allow user approval for specific user roles
* Added: wcmo_after_expired_user_remove_role
* Added: wcmo_new_registration_email_recipient filter
* Fixed: correctly set multiple roles for approved users
* Fixed: correctly remove 'Pending' role from approved users

= 1.8.5, 20 February 2020 =
* Fixed: redirecting to last product in query instead of product category

= 1.8.4, 14 February 2020 =
* Fixed: redirecting to last product in query instead of shop page

= 1.8.3, 12 February 2020 =
* Fixed: products restricted by user ID not displaying correctly in archives for logged out users

= 1.8.2, 10 February 2020 =
* Fixed: products restricted by user ID not displaying in archives

= 1.8.1, 27 January 2020 =
* Added: wcmo_role_expiration_date filter
* Added: Role based shipping methods

= 1.8.0, 25 January 2020 =
* Added: Expiration dates for membership roles
* Added: Role based payment methods
* Fixed: wcmo_update_excluded_products_transient queries incorrectly looking for product object

= 1.7.3, 24 January 2020 =
* Fixed: parse error in functions-admin-products.php when saving products
* Updated: removed fields parameter from wc_get_products in wcmo_update_product_passwords_transient

= 1.7.2, 20 January 2020 =
* Added: Italian translation
* Fixed: incorrect parameter in WP_Query

= 1.7.1, 9 January 2020 =
* Added: email user on approval or rejection
* Fixed: local passwords not working for non-logged-in users
* Fixed: issue with WooCommerce shortcodes displaying incorrect products

= 1.7.0, 12 December 2019 =
* Added: initial support for WooCommerce subscriptions
* Added: wcmo_remove_existing_roles filter to replace previous user roles
* Added: multiple roles support
* Added: option to prevent pending and rejected users from logging in
* Added: option to prevent automatic log in
* Added: set different default roles

= 1.6.3, 26 November 2019 =
* Added: approve / reject new user registrations

= 1.6.2, 20 November 2019 =
* Added: conditionally check menu items for user roles
* Added: redirect to referring page after logging in
* Fixed: excluded menu items respecting user role

= 1.6.1, 19 November 2019 =
* Fixed: parse error in products shortcode

= 1.6.0, 16 November 2019 =
* Added: restrict posts
* Added: hide products by user role
* Updated: set default method to no restriction
* Updated: assign user role on woocommerce_order_status_processing

= 1.5.0, 31 October 2019 =
* Added: restrict products by user roles
* Fixed: correctly remove restricted products from shortcode
* Fixed: correctly remove restricted products from WP_Query

= 1.4.2, 8 October 2019 =
* Updated: product tab ID for compatibility with Add-Ons Ultimate
* Updated: renamed wcmo_excluded_products transient to wcmo_products_restricted_by_user

= 1.4.1, 8 September 2019 =
* Fixed: prevent redirection from admin
* Fixed: correctly validate password

= 1.4.0, 16 August 2019 =
* Added: automatically assign roles on purchasing products

= 1.3.5, 13 August 2019 =
* Added: $password parameter to wcmo_redirect_url filter
* Fixed: set wcmo_excluded_products transient using WP_Query
* Updated: set autocomplete to off on password field

= 1.3.4, 28 June 2019 =
* Fixed: correctly redirect after logging in

= 1.3.3, 28 June 2019 =
* Fixed: user roles not correctly blocked from content

= 1.3.2, 21 June 2019 =
* Fixed: timeout error

= 1.3.1, 6 June 2019 =
* Fixed: correctly exclude authorised products from restrictions

= 1.3.0, 6 June 2019 =
* Added: checkbox to opt into hiding widgets
* Added: alternative label for add to cart button on restricted products
* Added: product restriction method column in products list
* Fixed: correctly check for restricted products on All Product Pages
* Fixed: correctly restrict locally protected products from archive pages
* Fixed: too many redirects when trying to access log-in page
* Updated: restructured settings page into sections

= 1.2.0, 1 April 2019 =
* Added: Members Only product panel
* Added: restrict product by user ID
* Fixed: incorrectly named password session variable

= 1.1.4, 28 March 2019 =
* Fixed: Updater error

= 1.1.3, 27 March 2019 =
* Fixed: JS error in admin

= 1.1.2, 26 March 2019 =
* Fixed: too many redirects issue

= 1.1.1, 26 March 2019 =
* Fixed: redirect not working correctly for some blocked content

= 1.1.0, 6 March 2019 =
* Added: individual category settings
* Updated: use term_id instead of slug for protected categories

= 1.0.2, 21 February 2019 =
* Added: hide restricted products in archives

= 1.0.1, 15 February 2019 =
* Added: pot file
* Added: licensing
* Updated: changed default restriction method to log-in-status

= 1.0.0, 11 December 2018 =
* Initial commit

View Prices


See how the plugin looks on the back and front ends. Click the images to enlarge them.


All purchases are covered by a 14 day money back guarantee. Prices are in US Dollars.

Yearly   Lifetime

Yearly licences renew annually

Lifetime licences are a one-time payment


$59.00 + VAT *

Use on a single site?Use this plugin on one production site

Renews annually?This plugin will automatically renew every year. If you cancel it, you can continue to use the plugin but will not receive support or updates

14 day money back guarantee?If the plugin isn't what you want, just drop us a line within 14 days for a full refund


$99.00 + VAT *

Use on unlimited sites?Use this plugin on as many sites as you like

Renews annually?This plugin will automatically renew every year. If you cancel it, you can continue to use the plugin but will not receive support or updates

14 day money back guarantee?If the plugin isn't what you want, just drop us a line within 14 days for a full refund


$149.00 + VAT *

Use on a single site?Use this plugin on one production site

One-time payment?This is a single one-time charge. You'll recieve support and updates for the lifetime of the product

14 day money back guarantee?If the plugin isn't what you want, just drop us a line within 14 days for a full refund


$249.00 + VAT *

Use on unlimited sites?Use this plugin on as many sites as you like

One-time payment?This is a single one-time charge. You'll recieve support and updates for the lifetime of the product

14 day money back guarantee?If the plugin isn't what you want, just drop us a line within 14 days for a full refund

* Prices exclude VAT, if applicable. EU businesses with a valid VAT number can zero off the tax.

A full refund if you're not happy

All products are covered by a 14 day money back guarantee so if you find the plugin doesn't meet your expectations, just let me know and I'll refund your purchase.


Plugins to extend your WooCommerce store with powerful new features


Rapid support and great service - my business depends upon your happiness


14 day money back guarantee so you can buy with peace of mind


What are the differences between the Basic and Pro licences?

The Basic licence entitles you to updates and support for 1 site. The Pro licence entitles you to updates and support for unlimited sites.

How long is the licence valid for?

Unless otherwise stated, licences are valid for a year. During that time you are entitled to receive free updates and support. Licences will automatically renew unless cancelled.

Will the licence still work if I cancel my subscription?

If you cancel your subscription, you'll still be entitled to free updates and support until the end of the subscription period. After that, the plugin will continue to work but you'll no longer be entitled to updates or support.

Is there a free trial?

I don't offer free trials but all products are backed by a 14 day money back guarantee so if the plugin isn't what you wanted, I will issue you with a refund.

Do you offer refunds?

Yes, there's a 14 day money back guarantee so if you purchase the plugin and decide you no longer want it, just drop me a line.

Will this plugin work with my theme?

All my plugins are independent of the theme being used so there shouldn't be any problems. If you do run into any issues, just let me know and I will take a look.

View Prices

View Pricing