1. WordPress Membership Plugins for Any Site
  2. Setting up a Membership Site with Cart66 Cloud
  3. Setting up a Membership Site with Exchange
  4. Creating a WP eCommerce Membership Site
  5. Wrap-up: Membership Sites with eCommerce Plugins
  6. Using the Paid Memberships Pro WooCommerce Add-on
  7. Restrict Content Pro Review
  8. Building a membership site with WooCommerce Memberships

While creating a membership site with WooCommerce has been possible for some time, this setup has always been a bit complex and requires several plugins to get up and running. WooCommerce is a great base for a membership site because you can integrate with almost any payment processor or use one of several WooCommerce extensions, but it lacked features that other membership solutions had, such as easy setup, content dripping, or expiring memberships.

The release of the WooCommerce Memberships extension ($199 currently on sale for $149) is geared towards simplifying this setup and creating a flexible, powerful membership solution to integrate with WooCommerce. We’ll cover setup, how to restrict content and create plans, how it integrates with the WooCommerce store, and with other plugins in this WooCommerce Memberships review.

Full disclosure: I work for the company that built this plugin and was involved in its design and development. After having used several membership solutions, we built WooCommerce Memberships because we thought that creating a membership site could be easier without sacrificing the flexibility that WooCommerce gives you. With that said, there are definitely pros and cons to using it that we’ll discuss here, and while I’ll tell you what I like about it, I’ll cover what the plugin does and doesn’t do to give an idea of its capabilities.

WooCommerce Memberships Review: Overview

WooCommerce Memberships integrates with WooCommerce (version 2.2 or newer) to let you sell or gift access to memberships, restrict any content on your site (such as posts, pages, custom post types, and taxonomies like categories and tags), and restrict product viewing or purchasing to members. You can drip content or product access over time so that members don’t gain access to all content immediately, and can also give members discounts on certain products as a membership perk.

Member management is simple, and customers can have multiple memberships to support either tiered or topic-based membership setups. User memberships can be unlimited, or you can set an expiration length in terms of days, weeks, months, or years. Memberships can also integrate with WooCommerce Subscriptions to sell memberships with recurring billing.

WooCommerce Memberships Review: Setup

There aren’t many settings for Memberships, as most settings are related to messages for members and non-members (such as “this content is restricted” messages). The restriction mode can be set to one of three settings:

  • Hide completely will make restricted content completely private, and will 404 membership pages for visitors if they try to access them. This also blocks search engines from indexing content. Hidden posts will not display in archives such as the blog page or shop.
  • Hide content only will show featured images and titles, but will block access to the content of posts and pages. Hidden posts will show in archives. You can optionally choose to show excerpts to visitors and search engines with this setting.
  • Redirect to page works in a similar fashion to “hide content only” — hidden posts are shown in archives, and only the title and featured image are shown. You can also allow excerpts for visitors and search engines. However, when a visitor tries to access restricted content, the visitor is redirected to a page that will show the right restriction message (this way you can customize the page if desired).
WooCommerce Memberships Review: General Settings

General Settings

Restriction messages can include the products that will grant access to the membership to let your non-members know how they can become a member and gain access, and will be shown on all protected content. Once you’ve set up general restriction messages, you can customize the messages related to products.

WooCommerce Memberships Review: Product Settings

Product Settings

You can also opt to remove hidden products from the catalog, which is helpful when your mode is set to “Hide content only” or “Redirect to page”. This will remove viewing-restricted products from the shop completely rather than show the title in the shop page.

To complete setup, you may need to create products to sell your memberships. While you don’t need to sell memberships (you can manually grant access to plans if you choose to), you will most likely want to sell these memberships you’re creating.

You’ll create a regular WooCommerce product — it can be simple, variable, or a subscription with WooCommerce Subscriptions — to give access to the membership. There are no specific “membership-type” products, as you may want a membership to be an add-on to another product, or you may not want to sell access at all and instead require applications.

Membership plan access can be granted from zero or more products, which can let you sell a monthly membership or a one-year pass with two different products, add a membership as a perk for purchasing another product, or choose not to grant access with a purchase and instead only give access manually.

WooCommerce Memberships Review: create product

Create a Membership Product

Create any products that will grant access to memberships, and you’re ready to set up plans.

WooCommerce Memberships Review: Create Plans

Membership plans are the core of a content-restriction plugin, and WooCommerce Memberships is no different. You can create as many membership plans as needed by clicking “Add Membership Plan”.

WooCommerce Memberships Review: create a plan

Create a plan

Once you have at least one plan, you can also duplicate it to make set up faster, which is especially helpful for tiered memberships (i.e., silver / gold / platinum) where access is increased for higher tiers.

WooCommerce Memberships Review: Duplicate plan

Copy a plan

When creating a plan, you’ll need to configure general settings. This is where you’ll select products that can grant access to the plan (if any) when purchased. These can be simple products, variable products, or even a specific variation of a product (i.e., only the small tee shirts). You can add as many products as you want that should grant access to this membership.

You can also determine the membership length, as members can be unlimited (never expire) or expire after a certain length, which can be set in terms of days, weeks, months, or years.

WooCommerce Memberships Review: general plan settings

Plans: General Settings

Next you’ll move onto content restriction. You can restrict entire content types (such as all posts or pages) with a single rule, which is unique to WooCommerce Memberships. You can also select individual posts or pages to restrict, or use taxonomies like categories and tags to restrict content.

WooCommerce Memberships Review: restrict content

Plans: Restrict Content

You can also set up content dripping from this screen. Determine if members should get access to this content immediately, or if they should wait a certain time period before getting access.

If you have another plugin that adds custom content types, these will be shown for restriction rules as well. For example, if Projects by WooThemes is activated, the “Project” custom post type and “Project Category” taxonomy can be used in restriction rules:

WooCommerce Membership Review: restrict custom post types

Restrict Custom Post Types

Next, you can restrict products. You’ll be able to restrict viewing, which prevents non-members from seeing the product page, or restrict purchasing, which lets non-members see products but not purchase them. This lets you determine if some products should help you tease out membership content, or if they should be completely private.

WooCommerce Memberships Review: restrict products

Plans: Restrict Products

To complete plan setup, you can determine if members of this plan should have access to purchasing discounts for all or some products in your store, and activate those discounts (which can be a set amount or a percentage).

WooCommerce Memberships Review: Product Discounts

Create Member Discounts

WooCommerce Memberships Review: Managing Content & Products

While you can restrict content and products while creating a plan, there are also other ways you can restrict your content and manage it as you add more content to your site so you’re not constantly updating plans.

When you add posts or products, you can use the new “Memberships” meta box added to the screen to restrict your new post or product. The general Memberships meta box is added to any new page, post, or custom post type on your site:

WooCommerce Memberships Review: content meta  box

Content meta box

This lets you add rules to restrict this product as you create or edit it, and will automatically add the rule to your membership plan when this content is saved.

A Memberships box is also added to the “Edit Product” screen, but this meta box has a bit more detail. You can restrict products, but they can also grant access to plans and have discounts associated with them, so you can also manage these while creating or editing a product. You can:

  • restrict the product to a certain plan
  • let the product grant access to a membership plan
  • set up a discount for a membership plan on this product
WooCommerce Memberships Review: product meta  box

Products meta box

The downside to this meta box is that you can’t control settings for specific variations, i.e., only allow the “gold” variation of the product to grant access to the membership, but this can be managed from the plan page. Granting access to a plan or discount from this meta box will apply to all variations for variable products.

The upside to using the Memberships meta box while editing content or products is that you can choose to make a post or product public. This will override any restriction rules for the content and make it excluded from all rules, for all plans.

WooCommerce Memberships: Make Public

Make Public

This will also be shown when you view content or product restriction rules for a membership plan to remind you:

WooCommerce Memberships Review: Excluded posts

Excluded Content

The “Make public” action is helpful when you want to restrict an entire content type, but leave one or two posts public as a teaser for your membership.

WooCommerce Memberships Review: Shortcodes

Content can also be managed via shortcodes. There are two Memberships shortcodes that can help you restrict your content.

The [wcm_restrict] shortcode lets you wrap sections of content and restrict them. When content is wrapped in this shortcode, it won’t be public, and can only be seen by members. This can help you hide parts of a post, such as a video or infographic, from non-members.


This video (for members only) shows you more:

Video is embedded here; can only be seen by members

Did you like the video?

This shortcode can also accept a list of plans to restrict content to only certain members using the plan slug or id. For example:

[wcm_restrict plans="silver, gold"]
This content can only be seen by silver or gold members.

The [wcm_nonmember] shortcode can let you display content only to non-members. This can be helpful to include an upsell or notice to log in which will not be shown to members, as it’s not necessary. This can let you build sections of content tailored to each kind of user on your site:

...which is shown in this video:

Can't view the video? Please purchase a membership to view it!

[wcm_restrict plans="silver"]
Hey silver member! Please upgrade to a gold or platinum membership to view this video :)

[wcm_restrict plans="gold, platinum"]
Video is embedded here

WooCommerce Memberships Review: Customer Experience

So now that content is restricted, what will all of this look like? It depends on your settings, but the Memberships frontend display will show your restriction notices on content and products, as well as discount notices.

Restriction notices will use your content, and if you use the {products} merge tag, a list of products that can grant access will be inserted in the notice to upsell your membership. These can also be customized on a per-product or per-post basis.

WooCommerce Memberships Review: Content Restricted notice

Content Restricted

WooCommerce Memberships Review: product restricted notice

Product Restricted

If you have discount messages set up, they’ll be displayed to non-members on the product page. Members will see any discounts applied with a “Member Discount” flash to let them know they’re getting a deal.

WooCommerce memberships review: discount notice

Non-members: Discount Notice

WooCommerce memberships review: member discount notice

Members: discount applied

If a member will have access, but not yet, the date that the content is accessible will be displayed:

WooCommerce Memberships Review: content access delayed

Content access delayed

WooCommerce memberships Review: product access delayed

Product Access Delayed

WooCommerce Memberships Review: Subscriptions

WooCommerce Memberships features a tight integration with WooCommerce Subscriptions. While Memberships works completely fine on its own to sell set-length memberships, using it with Subscriptions adds several capabilities.

First, you can tie membership access to a subscription product, which will let you use recurring billing for a membership. When you do so, Memberships will automatically pay attention to subscription status changes, so the membership will not expire and you don’t set a length. Instead, it will be cancelled with the subscription is cancelled, and will also pay attention to any subscription suspensions to pause the membership.

WooCommerce Memberships Review: Subscription plans

Subscription plans

Memberships can also use a free trial period when tied to a subscription product. If the subscription uses a free trial, you can determine whether content should be included in the trial period or not. If you choose to start access after the trial, then the content is not available during the trial, but access is granted after the first payment.

WooCommerce Memberships Review: Free trial restriction

Free Trial exclusions

Subscriptions supports subscription switching for upgrades and downgrades, which Memberships also supports to let members change their own memberships. Subscriptions can be switched or suspended from the “My Account” page. If a subscription is switched, the membership will also be switched.

WooCommerce memberships Review: Subscription Switching

WooCommerce Memberships Review: Integrations

Memberships also integrates with several other plugins to completely integrate memberships with your site. For example, if you use WooCommerce Product Vendors, you can restrict a vendor’s entire catalog to members only:

WooCommerce Memberships Review: Vendors integration

Vendors Integration

You can also use plugins like User Switching to test out memberships and view the site as a member, or use the Groups integration to import members from Groups for WordPress.

WooCommerce Memberships Review: Managing Members

Member management is a highlight with WooCommerce memberships. While setting up plans easily is a perk, you spend most of your time interacting and managing members. Memberships makes it easy to add memberships, change a membership status or start date (to give dripped content access earlier), or add notes to a membership.

WooCommerce memberships review: Member management

Manage Member

Member notes help your team keep track of interactions with your members so you can add notes when you communicate with a member, change a plan, or add a new one. You can also choose to notify a member with a member note, which emails the note to your member for easy communication.

WooCommerce Memberships Review: member notes

Member Notes

WooCommerce Memberships Review: Pros and Cons

While Memberships does a lot of things well, it’s a very new plugin, so there’s still room to grow and several features on the roadmap to be built (such as reporting on members). Some of the cons here are on the roadmap, but they’re not currently available with the plugin.


  • Easy to set up and configure
  • Customers can have > 1 membership
  • Membership access can be granted via 1 or more product purchases
  • Membership access can be granted manually instead of via purchase
  • Memberships can be for a set length, unlimited, or use recurring billing with Subscriptions
  • Restrict entire content types easily
  • Restrict pages, posts, custom post types, categories, or tags
  • Restrict product viewing or purchasing to members
  • Make individual posts or products public
  • Drip content access over time
  • Create automatic member discounts
  • Shortcodes can restrict bits of content
  • Easy member management
  • Email notes to members
  • Integrates with any payment processor available for WooCommerce stores
  • Integrates with several other WooCommerce extensions
  • Very developer-friendly


  • New plugin so it’s not very mature / has room to grow
  • Requires WooCommerce 2.2+ to function
  • Payments are not built in, so a WooCommerce payment gateway must be used
  • Requires WooCommerce Subscriptions to use free trials or recurring billing
  • Membership upgrades / downgrades require WooCommerce Subscriptions
  • No reporting available for members
  • No members export available
  • Navigation menu items cannot be restricted

WooCommerce Memberships Review: Summary

WooCommerce Memberships integrates with WooCommerce to give you a membership solution that integrates completely with your site and store. It’s a very new plugin so there are tons of features or additions that could be made to improve it, but the core setup, content restriction, plan creation, and member management function fully to make it easy to create a membership site with WooCommerce.

By itself, Memberships lets you sell unlimited or expiring memberships. The integration with WooCommerce Subscriptions adds advanced features such as recurring billing, trial periods, and upgrades / downgrades to support several kinds of memberships, while other integrations are available.

The plugin documentation provides full details on setup and further information on how the plugin works for advanced usage, but set up can be done easily and the time required depends entirely on how many memberships you have and how much content to restrict. Memberships provides a content restriction and scheduling solution that delivers on features without drastically complicating configuration.


Read more about WooCommerce Memberships

Note: This post may contain affiliate links, which means we get a commission from the plugin, theme, or service provider if you choose to purchase. Regardless of this, we are committed to providing high quality, unbiased resources. Have more questions? See our affiliate policy. You can use the plain links below if you prefer that we not receive a referral commission:

Posted by Beka Rice

Beka Rice manages the direction of Sell with WP content and writes or edits most of our articles to share her interests in eCommerce. Or she just writes as an excuse to spend more time jamming out to anything from The Clash to Lady Gaga. Who knows.


  1. Hi,

    I am probably going to purchase but given it really requires you to buy WC subscriptions for full features it would be nice to have a discount if you buy both.

    Otherwise apart from member reporting it doesn’t have many downsides.


  2. Are membership levels/plans added as a WP user role? For example, are the levels/plans added to the WP default user roles like Administrator, Editor, Author, and Subscriber?

    1. Hey Mike, roles are independent from the membership level so that customers can have more than one membership (they can’t have more than one role). The role remains as “customer” or “subscriber” (or whatever you’re using), and the memberships are assigned to the user. There are some details on data structure in the dev docs.

  3. Thanks for some great articles πŸ™‚

    I could use some advice. I’m a little unsure about what is right for me.
    A member site with a free and a pay per. month membership. WooCommerce as payment gateway. It is a buddypress/bbpress website.

    I have thought of pmpro and WooCommerce subscriptions but gets a little unsure when I read this. Is this a better solution?

    1. Hey Henrik, it depends on what you need. You’ll need your WooCommerce payment gateway + Subscriptions to do monthly memberships with either. If you’re starting with a fresh setup, I’d probably choose WooCommerce Memberships because it gives you additional features such as the ability to restrict product purchasing (not just viewing), supports variable products and not just simple products, lets you do more with the Subscriptions integration (such as supporting dripping and member statuses with trial periods), and features a tighter WooCommerce integration overall.

      Paid Memberships Pro is a solid membership plugin and it would make sense to use the WooCommerce add-on if you already used it, but if you know you’ll be starting a new site using WooCommerce, using a native WooCommerce solution will probably yield a better overall experience.

      1. Hey Beka, Thanks for your prompt reply πŸ™‚
        I am starting a new site, and the challenge is that only part of the forum should be for everyone and the same way with buddypress. I know that I can do that with pmpro but as you mentions, the overall experience is important.

  4. Thanks for this helpful review. Can I use this plugin to create a membership that includes all or some of my products, while still allowing people to purchase products separately?

    1. Hey Mariah, sounds like this would work — you can determine which products only members have access to, while any other products would remain public & purchasable by anyone.

      1. Thanks Beka! Your response made me realize that I might be able to duplicate products so that I could group together some for a membership site, but still make their duplicates available for sell individually.

  5. Great review, kudos on taking the time to put all of this together. One other item I’ve encountered to perhaps include in the “Cons” column is there is no function to import users. Consequently, if you have a larger group of users you’ll have no other option than to manually assign a membership to each and every user one-by-one.

    I have clients with users in the thousands that could benefit from this plugin but the lack of an import function makes it a non-starter. This seems like a lot of money for Woo to leave on the table with a feature that should have made it into the initial release and absolutely something anyone considering the plugin should be aware of from a emptor caveat perspective.

    I’ve asked Woo about this item and they say it’s planned but in traditional fashion (the right way, the wrong way, then there’s the Woo way) there’s no time line and they have banished the it to their “Ideas” board for voting etc (otherwise known as “feature limbo”).

    Long time Woo users know this means it may never arrive and if it does, it will be completely out of the blue with now advance notice.

    1. Hey Drew, thanks for the kind words and for the feedback here — definitely great to hear from people looking into this as a potential solution.

      As I’ve got some inside take here, happy to share it and put on my SkyVerge hat for a minute. Member imports didn’t make it into the initial release because it’s already a massive plugin, and at some point you have to ship it rather than put it every single feature that any user will ever want (otherwise, it never leaves the door). There are definitely lots of important features that didn’t make a v1, and the importance of each was hard to judge, so shipping the plugin and getting feedback to iterate (and to build these features in the way people want) was far more important than guessing at what would be most important to build. No plugin is ever going to be all things to all people at launch — that’s where the concept of software maturity comes in.

      With that being said, I definitely agree that imports are important. That’s why you can (1) import from Groups, (2) grant access from past purchase, or (3) use a generic import plugin to import memberships, as user memberships are a custom post type (you just set the post data and the parent as the membership plan’s post). This means that you can import orders for your members for a membership product, as there are existing methods to do this, then grant access to all members from these imported purchases, or do a custom import with something like WP all import. While we’ve recommended this via support, this absolutely needs to be documented for it to matter — we’ve been in the process of doing so and trying to determine what’s best to recommend and easiest to use. Would love to hear if you have a preferred importer for users / custom post types!

      Non-native imports definitely aren’t ideal, as you don’t get the ability to set an expiry date in the import with the past purchases, but it’s a stop gap until full import functionality can be assessed and built in the way people need. As you couldn’t set expiry dates with Groups anyway, we figured this was shippable for v1. I don’t disagree with you that it can be a breaking requirement for some users and it’s definitely a con to using the plugin currently, but I don’t think the perspective that it’s not important or will never be built is reasonable, especially given the history for improvements from the SkyVerge team.

      While you may see WooIdeas as a no man’s land, we discussed the best way to handle voting and user feedback, and there’s not really a better way to do so publicly for the plugin. I check the idea board for the Memberships category weekly while we plan development. “Long time Woo users know this means it may never arrive and if it does, it will be completely out of the blue with now [sic] advance notice,” simply isn’t accurate here πŸ™‚ It’s important, and there’s lots of features to continue building. The team is excited to do so in the way that helps the most users.

      1. Many thanks for such a prompt reply and for pointing out those import options, I looked into those as well but they all fall victim to incomplete solution syndrome. For my clients, their members aren’t always customers so that option isn’t useful and I don’t use Groups (and even if I did, that would subsequently require an additional extension purchase).

        I’m sure most of us in the developer side of things understand the need to have a clear threshold for wrapping up a project but one of the real frustrations with Woo is what you described vis-a-vis the release then gather feedback. It’s akin to ready-fire-aim and is enormously frustrating for those of us outside of the casual or hobbyist user circles. so in this since, it isn’t so much an issue of version maturity in that it was really a premature delivery (although I’ll be the first to say it is better than most V1 launches among big WC extensions).

        We’ll likely have to settle on having different perspectives based on individual experience. I’m glad to hear someone is looking at the content but I have yet to experience a positive encounter there.

        I have take issue with the voting structure and the notion that the Ideas board provides insight into features that help most users. For example, as of now a user purchasing one single-install license has the same voting weight as a user who purchases multiple licenses. So if five single license users vote for Feature A and one user with a 25 use license votes for Feature B, the former group would end up ahead.

        I don’t begin to see how that system serves the needs of most users.

        In the end, the plugin has a great deal of potential but is falls victim to the bear trap that so many WC extensions get caught up in that they don’t really consider the larger migration process and instead focus on users starting from square one. As time marches on, that leaves more and more money on the table.

        1. Drew, I just finished the import process and found that, after attempting to use multiple plugins, the best method I could find was import using CSV files and phpMyAdmin. Assigning ‘membership’ levels to existing users took all of about 2 hours for over 5000 users and 95% of that time was spent in Excel just cleaning and double checking the CSV. I was on the verge of a nervous breakdown when I was thinking about what was going to be involved and almost had a full breakdown when I tried to use other’s plugins… …but it ended up being relatively painless. I’d love to post what an outline of what I did, but it really depends on what your existing membership plugin is and how it stores data in it’s tables. My migration was from the WP WishList plugin to Memberships and all it really took was the downloading and merging of two CSV files which I then edited to be an import CSV for posts.

        2. Thanks Tony, I appreciate the followup but that seems like an enormous amount of work plus there’s no other membership plugin involved, here; instead, it is a straightforward import process but even after several rounds of plugin updates this seems to be an issue that doesn’t rise to a threshold of actual concern for SkyVerge from an implementation perspective. As such, I’ve simply assumed that they really don’t care much about this type of user and therefore, found a different solution.

        3. Hey Drew, putting my SkyVerge hat back on now πŸ˜‰ I think it’s fair to say you want a release date, but I can assure you that not publishing one is not really not a matter of whether we’re concerned or not about this being included πŸ™‚ We prioritized what ideas users voted for, and at the time we started version 1.4, the “My Membership” area was a priority for our users (at which point marking it as “started” dropped the voting frequency for it).

          We’re wrapping that update up now, as we’d wanted to make sure we tested it very fully before releasing a large update during the holiday season. Once that’s released, version 1.5 will focus on other top ideas, one of which is imports and exports πŸ™‚ We’ve tried to be very clear that the plugin does not do native imports yet (though regular WordPress custom post type importers work fine) as we’d prioritized other features for the initial launch, but that doesn’t mean it’s not an important feature to us. We’re trying to best meet the needs of the majority of users, and users with both new and migrated sites needed a better way for members to find what content they have access to.

          Thanks again for the feedback, and glad to hear that you found a solution that worked out for your site!

  6. Hi Beka,

    Great and detailed explanation. It made me understand (as a beginner to WordPress) the differences between membership and subscription and their settings.
    But I have a question to double check my understanding:
    I want to have a website where I sell only intangible products to my customers in which that can only be viewed while the customer using my website, and I want to use both membership and subscription, let’s say it is a 3D product that people can have access to for a period of time.
    As far as I understood, I need to make a product and grant people access to different membership plans by making them buy these products, right?
    If this is the case then I am a little off track, because I don’t want to sell products in order to grant people access to my contents, I’d like them to directly buy different membership plans and have access to the specified content to that specific membership plan and restrict non members to not have access to the contents.
    Is this possible?


    1. I’d like them to directly buy different membership plans and have access to the specified content to that specific membership plan and restrict non members to not have access to the contents.

      Yep that’s exactly how it works. You sell the membership by tying it to a product, and then you can restrict access to the other products to that membership. The quick start guide should help.

      1. So what I need to do is to make a product which is not actually a product but a membership plan disguised as a product and sell it?
        Wouldn’t it be messy to have normal products as well as membership-plans products?
        Or I should just hid these membership-plan products to avoid appearing next to normal products?

        1. depends on your set up — membership access can be tied to any product so that they can be sold as stand-alone items, as part of a package (i.e., think forum access with a subscription meal box purchase), etc. If you want to remove them from the catalog since they’re sold as stand-alone products, you can certainly do this by changing the visibility, and then outputting them on another, dedicated membership page via shortcode.

  7. Okay, I made that and I made an order as a user locally
    But when I go in my order page, it says I don’t have an active subscription
    What does that mean?
    How do the subscription and the membership work together?
    Do I need to tie the subscription to the membership plan or the product too?

    1. Hey Soltan, this a bit specific, I’d recommend submitting a ticket so the support team can look into your set up in more detail πŸ™‚

  8. I’m building a business directory site with free and paid listings. Would this be the best option? Currently I’ve been looking closely at Ultimate Member and Gravity Forms.

  9. Hey Beka,

    I’ve read through dozens of your posts on SkyVerge and in regards to Memberships in particular but I’m still stuck on a single issue… …I’d like to display lists of members on the front end of the site on the basis of what their membership level is. The problem is, as the documentation for Memberships outlines, that the data regarding users membership levels is “not easily query-able”…

    Not a criticism as I completely understand why it’s built the way it’s built… …I just can’t for the life of me figure out how one is supposed to A) query a list of users on the basis of their membership level and B) display user data from their profile. By my count, I’ll need to be pulling data from 4 or 5 different tables in one query… …I’ve searched for some sort of documentation on this but keep coming up empty. Any thoughts?

    1. Docs outline that we don’t use user-meta, as serialized data is not easily query-able, not that user memberships are not easily query-able — that’s why CPTs are used to make data easier to query. The easiest way to query on level would probably be to use get_children() for the plan, which gives you IDs of all user memberships. Use the IDs to then instantiate user memberships and use user membership functions to output member data (and for non-membership profile info, standard WP user functions will do just fine). More on data structure here.

      1. Just wanted to update you on my situation; I got Memberships, Subscriptions & BuddyPress working seamlessly, including the migration of several thousand members that were initially registered with a plugin called Wishlist. It worked beautifully and grabbing the ‘member’ data ended up being a lot easier than I had thought. The Membership plugin you guys built is fantastic, thank you. πŸ™‚

        1. Hey Tony, thanks for both the update and the kind words πŸ™‚ We know importing can be a pain, it’s definitely something we’re actively building for! The hope was that the custom post type structure would (aside from making querying membership data easier) also make imports easier, glad to hear the switch worked out for you!

        2. Calling it a pain is putting is about as nice of a way you can say that. And never letting users know when a target release date is expected is increasingly bad form and just a way to string along users without having to actually hold the company to any accountability with deliverables. In short, loads of promises but no accountability.

          My apologies for being very blunt but I find this type of business practice among developers (and that’s speaking as a developer) is one of the most damaging trends in the field.

          Set target delivery dates and if you’re running late, just tell your users that and learn how to better manage your internal dev process so it doesn’t become a habit.

  10. We are using the membership extension for a free membership. Can you recommend an extension that will work well with the membership for a more simple check out process. Seems overkill to have to add to the cart and fill out all the required info for a free membership. We just need them to join and later they can add the additional info if the purchase items.

    Thank you in advance!

    1. Hey Mike, I’d check this tutorial out, which lets you cut fields from checkout if it’s free.

      1. Thanks. I’ll give it a try

  11. I’m trying to figure out which plugins I need – I am working on a website that has some free content, but most of the content is available to paid subscribers. I need to have recurring billing, so people can purchase say 1 month, 2 month, 4 month, 6 month or 12 month subscriptions that they can change or leave alone to renew automatically. We currently use Netbilling as a payment processor, which is why I’m looking at Woocommerce, as it seems to support Netbilling.

    I want to also have some interactive capabilities for paid members, so I was looking at http://xd3v.com/create-a-premium-social-network-with-woocommerce/ for buddypress+woocommerce integration.

    As part of membership, there will be virtual products to be downloaded.

    At this time I am unclear whether I need Woocommerce Memberships, Subscriptions, Groups, all three, or which two of the above. Would you be able to clarify the differences there?

    1. You’d need WooCommerce Memberships + Subscriptions. You could replace Memberships with Groups if desired, but Memberships has a tighter integration with Subscriptions. This is a good comparison for which features Memberships has vs which Groups has for WooCommerce.

  12. Hi there! I’m planning to develop a site of clothing rental, we’re gonna
    use “Booking” extension as well. Although, a new necessity that came up and We don’t know if Membership +Subscription extension is enough.
    Besides individualy renting products, we thought about a monthly subscription for example, where people could get a certain amount of products paying this monthly price. And probably respecting certain conditions, for example, a plan where people could get for free 4 pieces of clothing (category 1) and 2 acessories (category 2) (but not 6 pieces of clothing). We were reading about Subscription extension and Membership Extension but We are not sure whether this extensions would do all this. If not, what other extensions do you think we would need in order to create these “monthly subscription plans” and
    estabilish the conditions for these plans?
    I tried to ask Woocommerce but the answer was inconclusive to us. I would apreciate if you can help me. Thank you verey much!

    1. Hey Andressa, there’s not really a good way to limit x amount of purchases / free gifts per time period outside of using a coupon. I think you’d probably want to do something like this tutorial to generate a new limited-use 100% coupon each month to give these items away: Generate Monthly Subscriber Coupons

  13. Wow! You are great! Help me so much! Thank you so much!

  14. I am looking for a solution to hide navigation items based on membership. Is this something that is in the plan, or do you know of a 3rd party plugin that can make this happen? I know there’s a plugin called NavMenu Role, however that is based on role, and in a membership, you are not actually changing their role, so I don’t think this would work.

    Thanks so much in advance!

    1. Hey David, this is definitely on the roadmap — I’d vote for this idea so you get updates. Unfortunately you’re right that it doesn’t use roles, so the existing plugins for nav menu roles won’t work.

      If you wanted to implement role changes based on membership status in the meantime (which would let you leverage these plugins), I have some sample code on changing roles based on membership activation that could get you or your developer started.

  15. Hi Beka,

    I recently purchased Memberships. I think I may need Subscriptions too?

    My site, http://theclosingprint.com/CV_Blog will be a subscription based recurring payment model utilizing a login and member level to access content. Blog posts, weekly newsletter, videos, chatroom etc, will be for members only. The site is for day traders.

    Do I need subscriptions? Is there a discount for having purchased memberships?



    1. Hey TL, Memberships will only do set-length (ie one year) memberships by itself. If you need recurring billing, then Subscriptions will handle that part and Memberships will tie into it. Not sure about the discount, I’d ask the Woo pre-sales team though, never hurts to check πŸ™‚

  16. Carolyn Porter March 10, 2016 at 1:02 pm

    Hi Beka,

    I have been using WildApricot for the past 4 years to manage a fairly large Professional Association (calpcc.org). It’s done a very nice job but I am exploring Sensei to deliver paid course content (Continuing Education Credits) to both our members and non members and began to think that I should take another look at WordPress as a platform to manage our membership so that everything is “under one roof.”

    Is it possible to collect additional information at registration with Memberships like an educational degree, college attending, advising professor, etc. Also, am I able to approve memberships? To approve some memberships I need to see the registration fields I mentioned above.

    Thanks so much,


  17. Why is WooCommerce so vague with their pricing. I’m looking into purchasing WCM for a client project, but what’s the real cost.

    It says Subscription Options, but is that relevant to the licence type or annual charge for use regardless?

    It says $149 for 1 site, but is that a one off payment or an annual recurring charge?

    It says you get one year access to the product with support and updates. But does that mean after the 1st year you’re on your own with the product (but no recurring charge), or that their is a recurring charge but updates and support aren’t included (and if so how much is the recurring charge)?

    It seems very expensive if it’s $149 recurring (or $199 normally). I could understand a flat, one off payment like this. But recurring? You must be kidding!

    Can anyone offer some clarity here?


    1. Hey Sam, they recently updated this to allow automatic renewal for plugins. $149 for 1 site gives you support and updates for a year. After that your plugin subscription renews at 50% off per year to continue receiving support and updates. If you do not renew, the plugin will not be crippled / deactivated, you won’t get support or updates any longer though.

  18. Hi Beka, great article – thank you!

    Do you know, if this is possible?

    Assuming you publish fresh content like a newsletter/content monthly. Can you also set memberships up in a way that a new member which becomes a member in April can only accewss all newsletters/content produced in April or later, while a user, who already became a member in January the same year, can access all newsletters/material starting with January and all subsequent months?

    Thank you!


    1. Hey Anna, I’m afraid I don’t know of a way to grant access based on the content’s publish date. You could do it with custom code to compare the membership start date to the post / content publish date, but I’m not aware of a plugin that would do this automatically. Sorry I don’t have better news for you!

  19. Hi Beka,

    thank You for the great Membership series! I’ve got one question though that I didn’t find covered here.

    I am running a selling blog with WooCommerce eshop. So far, my blog has hidden login section and I even restricted WooCommerce from creating automatic logins on the checkout. For obvious reasons – my products are several ebooks and I need to make the checkout process to these customers as smooth as possible. Automatic logins doesn’t make much sense here.

    However now, I need to add a new product – online course. I imagined to set it up as WooCommerce product with Woocommerce Membership plugin. After the purchase, membership would be assigned to the email address AND login would be send to customer to access the front page of the course. Simply I need the WP login to be generated AFTER the purchase and ONLY for the membership product. But I can’t see the way to achieve this.

    Either WooCommerce doesn’t send any login, or it forces it to all customers. Even if I let WooCommerce create silent logins and cancel the “Account created” responder for those who only bought ebooks, these customers might get error messages when shopping later, as their email adress will be silently associated to login they won’t know about. :/

    Have You got any suggestions about how to get out of this? I spent the whole day trying, only to end up with a headache. πŸ˜‰

    Thank You, have a nice day!


    1. Hey Magdalena, I’m afraid that I’d recommend going back to allowing login at checkout. Memberships and Subscriptions rely on the account being created here, which includes having a username / password set, so without this you’d need a fair bit of custom code to later replicate the account creation and properly tie memberships and / or subscriptions to the user account.

  20. Hey Beka, great article. I’m trying to figure out which extensions I need for this project. I’ve got a site that has multiple different subscription boxes that a customer could select from. The boxes ship out every other month (every 2 months). To be able to shop on the site, it requires a monthly or annually billed membership (think Costco or Sam’s club). If it makes it simpler to understand think Dollar Shave Club with membership dues. Do I need the Membership and Subscription extensions? Is the monthly billed membership going to be an issue anywhere if the boxes ship every 2 months? Thanks for you advice!

    1. Hey Chris, Subscriptions would handle the recurring billing / generating the order every 2 months. It could also let you collect monthly / annual dues. Memberships would handle restricting the boxes to members who are paying dues only, so both would need to work together for this. The billing / dues would be one product, and the boxes would be another, so there shouldn’t be issues doing them together πŸ™‚

  21. Hi

    Thanks for this article.

    I am running groups and subscription. I have 3 levels: One-time for 1year. And renewal yearly. And Onetime fee unlimited.

    I want to switch to WCM.

    What do I have to do?

    I saw the Groups Import function. But with that Importer every customer get acces for a hole year from importing date. That’s not so good, or? And it would be asynchronous to the subscriptions they have?!

    next problem: I have different subscriptions for my memberships depending on the license. I have a standard license and a dev license. Both are the same Groups member and get full access. But the subscription pricing is different.

    Hope you can understand my bad English.

    Best from Berlin

    1. Hey Marco, rather that using the “Groups” import -> Memberships, I would recommend a different approach. Since customers purchased a subscription, you probably want the membership access tied to the subscription, right? In this case, you want to use the “Grant access” action on the membership plan instead. This will check past purchases, and if the subscription tied to the plan was purchased, it creates a new membership tied to that subscription instead.

      As for your second question, Memberships doesn’t touch pricing — it lets WooCommerce or Subscription products handle pricing, it just looks to grant access when a product is purchased πŸ™‚

      1. Hey, thanks for your help. Yes, that sounds good. Last question. I read: “For example, if a membership is valid for one year, and the member is imported from a previous purchase, then the membership will expire one year after the import date.”

        What happend if a customer has a 1-year-plan and bought 10 month ago. Does he get 2 month access to the member-area or a complete new year (from import date)?

        1. Hey Marco, gotcha, that’s referring to a regular purchase. Here’s the workflow when the “Grant Access” button is used:

          1. If the customer purchased a regular-type product to get access to the membership, and you run this import / action, the membership is created based on your plan rules like it starts today. So a one year membership will expire one year from the purchase date.
          2. If the customer purchased a subscription-type product to gain access, then the membership is tied to that subscription’s status. So for example, if the subscription was purchased 10 months ago, and it expires in 2 months, the membership will expire with it.

          So it depends on what type of purchase the customer had that you run this action on.

  22. Perfect! Sounds great! Many thanks for your help!

  23. Hi,

    We own Woomemberships and wooSubscriptions and have a problem we don’t know how to solve.

    We want to offer both a one off lifetime membership payment and also a monthly subscription option. So far so easy with these products.

    But now we want to trial a trial period for both options. Trial period with subscriptions is really easy.

    However setting a trial period for a one off membership payment has us stumped. When creating a product with just a one off payment, there is no trial period that can be set – presumably because a one off payment is controlled by the standard Woocommerce plugin rather than your more advanced addon.

    So I thought about creating a subscription product with only 1 payment and then could be a trial. However the wording is very confusing for the customer when the checkout page displays the product they are purchasing.

    Is there any way this can be done?

    One further complication is that we would like to have a one off joining fee for the monthly subscription but don’t want it to be charged until the trial period ends – currently it seems the joining fee is charged immediately at signup.


    1. Hey Dale, you’re spot on that adding a trial period would require the use of a subscription product instead of a regular product. Memberships leverages the WooCommerce checkout system pretty heavily, and thus it doesn’t get involved in delayed billing or any sort of payment changes on its own. Implementing a “bill later” trial system would require a lot of handling around saving a card and charging later, or leveraging an authorization and automatic capture later, which would require specific payment gateway support, so it’s not likely something that would be built into Memberships anytime soon.

      To create a trial, you could use content dripping rules to artificially gate when members have access, but this will not change when the member is billed.

      As for delaying the payment of a Subscription signup fee until after the trial ends, I’m afraid I don’t know of a way to do this with Subscriptions without custom code. This would basically be a “3-tier” price as outlined in the Subscriptions FAQ (1 – $0 for trial, 2 – $price for first month with signup fee, 3 – $price for each recurring month). The only thing I’ve seen come close is this tutorial on allowing a trial without a credit card, but I’m not sure if it would fit your use case. Cheers!

  24. Great overview Beka – has anything changed in the past year? I’m considering WCM (due to the potential need to sell a specific print on demand product) but it seems like a much greater investment than other options.

    Two features I do need though are an affiliate system & the ability to move members between newsletter subscriptions depending on what membership level they are. Does WCM do those?

    1. Heya Arp!

      has anything changed in the past year?

      Indeed, here’s a list of the major feature additions since version 1, with version 1.7 in development currently.

      Two features I do need though are an affiliate system…

      Since this leverages WooCommerce core for the purchasing flow, any affiliate system for WooCommerce will work. I highly recommend AffiliateWP.

      …the ability to move members between newsletter subscriptions depending on what membership level they are.

      Depends on how you’d like to set this up. If you’re okay sending emails directly via your WooCommerce site, the Follow Ups extension can send emails based on the current membership level.

      If you’re using an external email system, such as MailChimp, there isn’t an automated sync available yet. You can export membership & import them to your email platform instead, which would need to be done manually before each send.

      If an automated member sync is a must-have, we’ve been writing a series on segmenting member emails with a few plugins that have this capability.

  25. A licensing question – I am currently developing the next version of my web site with a local version of WordPress and would be deploying it to my hosting service when the new pages are ready.
    Can I use just one Woocommerce Memberships license – initially on my local development environment and then transfer it to my production environment – or do I need to acquire a multi-site license ?

    1. Hey Janne, sure thing, just install memberships but don’t add the license key to your local site (you’ll see a notice to add your key, but the plugin will function). When you deploy to live, you can add your license key to the live site to get updates / support.

  26. Great!
    I suppose one license key would be enough also in a situation where I have both a development version (only accessible to my developers) and a production version running simultaneously on the hosting service..

    And also – where would I find info on the languages Memberships is translated to ?

    1. Yep one license key should do it for that scenario! As for languages, Memberships is translation-ready, but it doesn’t yet have any bundled translations submitted. You can submit them here if you’d like it to be bundled.

  27. hi Beka — thank you for this article. I’ve enjoyed it, and based on it I purchased Woocommerce Memberships. We have the system up and running well for our 1,000+ members. The system has two behaviors which we find very odd:

    1) we have one membership plan, which is for one year. We want to allow members to purchase a two year membership. I expected that if a customer purchases the membership, but makes his quantity two, the expiration date would be two years later. However, despite what quantity they purchase, the expiration date is always one year away.

    2) if a member already has time left on his membership (lets say three months), I would assume that if the member purchases a year membership, his membership expiration date should be 1 year and three months after the purchase date. However, it does not work this way – membership is one year from the purchase date regardless of time remaining on the membership.

    1. Hey Chris,

      #1 sounds like an oversight. As there’s an “allow cumulative purchases” setting, it should probably respect quantity. #2 works for me, purchasing again just extends the membership rather than using the new purchase date, so I’d recommend opening a help request to check out why #2 is behaving differently on your site + to report #1.

  28. Thank you for the review!
    I would like to ask a workflow question please. I’m looking to incorporate members with subscriptions in the following way. Could you please explain how can this be done on a practical level with the apps?

    What I would like to achieve is:

    a. User purchases a product with a price of 25$ per month named X.

    b. User logs on and in the membership plan he sees the plan named: “X Pre Configured” which has a page called “X Configuration Options” in the accessible pages tab (accessible only to the “X Pre Configured” plan).

    c. User fills in the form on the “X Configuration Options” page.

    d. Administrator reviews the form, creates the final product for the client and transfers the client to the other membership plan called “X Ready” without altering the payment options the client did before with subscriptions.

    e. When a client logs in he can see that he is in the new plan which has discounts for some products, new pages are accessible to him and that he can cancel the membership which will stop the subscription payments as well.

    Can you help me understand how can this be achieved?

    Side questions to the process:

    Can the user purchase the same X product subscription and have two of the same memberships?
    Can the admin manually change the users membership without altering the subscription payments or plans? When plan monthly cost is the same or different.
    Is there a way to manually share files with a specific member (via one of the my account pages) who purchased a specific product or membership (custom logo for example)?
    Is there a way to incorporate a file upload feature for a client to upload files after purchasing a membership (send files for editing for example)?
    How can the client update his membership plan from “X Ready” to “X Managed” which is a product costing 30$ per month and pay only the 5$ difference without canceling the current plan and buying a new one?

    Any input would be much appreciated! Thanks!

    1. Heya Tony, you could probably get pretty close to what you’ve outlined:

      “a. User purchases a product with a price of 25$ per month named X.” — all good here, Memberships + Subscriptions can do this.
      “b. User logs on……and has a page accessible only to members of this plan” — that can be done with Memberships as well, and the member area will show a list of the available content.
      “c. User fills in a form…” — You’d need a plugin like Gravity Forms to create this on the page.
      “d. Admin reviews the form…transfers to a new membership.” This can be done, you’d just adjust the member’s plan, but it would be tied to the original subscription still.
      “e. The member can see new pages / discounts” — The member will always see whatever content is assigned to his / her plan, so if transferred to a new plan, the accessible content / discounts for the plan are what the member sees.
      “e. (cont) …he can cancel the membership which will stop the subscription payments as well.” — This would be done from the “Subscriptions” list instead, the “cancel” action is on the subscription, not the membership itself when it’s tied to a subscription. Cancelling the subscription will cancel both the billing and access.

      “Can the user purchase the same X product subscription and have two of the same memberships?”
      This is up to you, you can configure this with the subscription settings (and limit it to one active subscription if desired).

      “Is there a way to manually share files with a specific member…”
      You can add a member note with a download link, this will email the download link to the member. You could also give the member a “free” product with download access to get their files.

      “Is there a way to incorporate a file upload feature for a client to upload files after purchasing…”
      I would use Gravity Forms on a restricted member page for this, too.

      “How can the client update his membership plan from ‘X Ready’ to ‘X Managed’ which is a product costing 30$ per month and pay only the 5$ difference without canceling the current plan and buying a new one?”
      Subscriptions upgrades / downgrades would handle this, as Subscriptions prorates payments (Memberships isn’t involved in billing). You can read about it here.

      1. Thank you so much for explaining!
        Do know if there is a way to attach a file to an order (once that file is ready to go to the client) so the client will be able to see a download button near the specific order in the my account page?

        1. There’s not really a good core way to do so, I have a tutorial here that may work as a work around.

  29. Thank you for this article. Quick question: Do you know if there is a way to force the expiration of the membership to test if its working? I don’t want to wait 1 day (minimum) to see if its working.


    1. Hey Armando, there’s not a core way to do so, but this dev helper plugin adds “minutes” and “hours” as plan length times for testing purposes.

      1. Thank you so much fro replying!

  30. Hi Beka,

    How can I display all the “my content” section of all the currently active memberships for a user in a simple list with a shortcode?

    For example:
    Membership Silver:
    – Page 1
    – Page 2
    Membership Gold:
    – Page 7
    – Page 8

    1. Hey Tony, I’m afraid there’s no way to do this at present without customization. You could add a “my content” list in the account area instead of the “My Memberships” table via custom code, but to output this list requires access to the current customer’s information (since each customer may have access to different content at different times), so there’s no generic way to do this on a set page for all members.

      1. Thank you for explaining Beka!
        What about something like this: after content submission in gravity forms to cancel a specific membership based on this (or something else): https://www.gravityhelp.com/documentation/article/gform_after_submission/
        Can you help with this?

  31. Is there a way to restrict who can purchase a membership based on criteria such as email@domain.com? Or are all offers always open to the public?

    1. Hey David, I’m afraid that restricting purchase can’t be done by email address / domain. Memberships doesn’t influence the checkout really though, so if you find a general WooCommerce plugin to limit purchase by email domain, they’d likely play well together.

  32. I currently have a basic WordPress blog site to which I want to add the following;

    Restricted content pages only available to customers who sign up and pay an monthly or annual subscription
    An online store to sell products
    PayPal as the payment gateway
    If a customer wishes to subscribe to restricted content and make a purchase on the store they only need to sign up once. Basically one account to login and then add subscriptions or make purchases.

    Do I need both woocommerce memberships and subscriptions?

    1. Hey Kevin, based on this: “pay an monthly or annual subscription” you’d need both plugins. Memberships lets you restrict the content and products on your site, while Subscriptions will handle the recurring billing. You can get both plugins in a bundle here.

  33. Hey Beka!

    Can you please tell me how can i show a specific piece of content if a user “is not” a member of a specific membership?
    For example:

    [wcm_restrict plans=”silver”]
    Hey silver member!

    [wcm_restrict plans=!”silver”]
    You need to buy the silver plan to get the greeting.

    When the user is not a member nothing is displayed.


    1. Hey Berg, you could consider the nonmember shortcode or doing a shortcode to target the other, non-silver plans — check out the upgrade prompt example here.

  34. We’re currently using Wishlist Member. We’d like to be able to import our current membership into the new site. Does this product offer the ability to use custom member profile fields and to import information.

    1. use custom member profile fields

      Afraid this would require customization

      to import information.

      Yep, member import is available. However, importing billing would also require Subscriptions + importing those as well (which you should do first)

  35. Hi Beka!

    I have a question as to whether Membership or Subscription can achieve what we’re wanting to do.

    We offer online training material. Our buyers are typically training managers for medium and large companies. The training manager would want to buy say 100 subscriptions for 100 employees. Is that possible for a single user to buy 100 subs and if so, what is the process for assigning each subscription to an individual user/employee?

    Many thanks!

    1. hey Andrew, I’d recommend checking this article out to sell subscriptions that are assigned to other users.

  36. Hi Beka/Team, presale qns. Example if I’d like to setup a store to sell digital photo/music/ebook, the item might selling $20.00 – $40.00 from each of the individual digital item. I am looking for something that to create a recurrent membership as $10/month and access for all levels digital items… So, if the customer did not login, the site remain as usual selling range of $20.00 – $40.00, however the customer purchased the membership, and now success login, so this usual “Add to cart button” will change name to “Download Now”… Looking forward to hearing for your advise soon.

    1. I am looking for something that to create a recurrent membership as $10/month and access for all levels digital items

      That can be done with Memberships + Subscriptions — Subscriptions handles $10 / mo billing, Memberships can handle discounting the digital items to $0 for all members (100% discount).

      so, if the customer did not login, the site remain as usual selling range of $20.00 – $40.00, however the customer purchased the membership, and now success login, so this usual β€œAdd to cart button” will change name to β€œDownload Now”… Looking forward to hearing for your advise soon.

      This can be done with a 100% member discount on those products. However, the “add to cart” text will not change automatically, so you’d need a small customization to change this for free / member discount products.

      1. IC… Do you have any people or company can do for this small customization? Thks!

        1. I typically recommend Codeable to help with these sort of changes πŸ™‚

Comments are closed.