Most membership plugins focus entirely on restricting content to members: who can access the content, when, how much does access cost, and what to do if a member doesn’t have access. However, they don’t make it easy to build a community of members: showing directories of members, publicly displaying member profiles or only displaying profiles to other members, and showing member information.
Building directory-type sites is difficult, and I didn’t really have a great recommendation for most types of membership sites looking to get this kind of functionality. However, the fairly new Ultimate Member plugin provides a great member directory and frontend member profile solution. Even better: you can get the core plugin for free.
Ultimate Member adds the ability to manage members on your site, but also enables members to manage themselves. You can create roles for members, directories, and profile forms so that members can display their personal information within their profiles in your directory. Members can then edit their own profiles easily and view any content accessible to their member roles.
The core Ultimate Member plugin will let you register members, add and update profiles, create member directories, and restrict content to members. Posts, pages, and custom post types (such as products from most eCommerce platforms) can be restricted to member roles.
If you need additional functionality, you can check out the Ultimate Member extensions. There are already several extensions available, such as a social login extension and a bbPress add-on to add your content restriction to bbPress forums.
I was a bit overwhelmed with the plugin setup, as there are a lot of configuration options, and the plugin uses a customized settings page rather than one that blends in with WordPress. However, you’ll only go through setup once, so it’s worth taking the time to go through each settings tab. You can determine what profile components are available to members, configure emails and profile image settings, and change appearance settings.
Once you’ve gone through all settings, you’ll also want to create your member “roles”. These are your membership types, and they dictate how content is restricted on your site. Each role has the ability to change what access the member has to his or her own profile, as well as the profiles of other members (i.e., can they view other profiles).
The “Admin” and “Member” roles are automatically created, but you can add as many other roles as needed. Site administrators will automatically have “Admin” community roles, while your subscribers or other users will be “Members” unless you change them to a newly created role.
These roles will be integrated into the WordPress “Users” screen, and you can use this to adjust community roles, as well as review and approve new member registrations (if you don’t auto-approve new members).
I didn’t like that community roles have to be changed in bulk here, as they can’t be changed from the “Edit User” screen, but this isn’t a major drawback.
If you allow members to create and edit their profiles, they can do so directly from the frontend of your site. You’ll need to create a profile form to include any information about the member, which you can do from Ultimate Member > Forms.
You can add predefined fields to this form, such as fields for some social profiles, or you can add your own custom fields. This is helpful, for example, to add a “biography” field for a longer user biography.
You can adjust settings for your custom fields before saving them, or use conditional logic to display or hide fields depending on the other fields used in the profile.
All forms you add here will be used within the main user profile. These profiles are the public-facing profiles for all members, and this is what a member directory will link to for each member.
Users can visit their profile pages and edit them directly from the frontend of your site. Profile editing is extremely easy, and this is one of my favorite features of Ultimate Member. Members can adjust profile and cover images, as well as any of the profile fields you’ve created.
If you’d like to display all of your members or members of a particular role, you can create a custom member directory. This directory can have rules as to which members are included, how they’re sorted, and what member information is displayed. The member directory will link to the member profile for more details.
Your directory will show a grid of member profiles with the information you’ve opted to include, and will also include search options if you’ve enabled search.
Basic content restriction is included in Ultimate Member, and it’s very easy to use. You can restrict posts, pages, or custom post types such as products in a shop or portfolio items. You can also restrict the user profiles generated by the plugin by restricting the “Users” page, or restrict the member directory by restricting its page.
You can restrict a page using the Ultimate Member meta box while editing a page or post to make it public, for logged out users (nonmembers), or for logged in members with specific member roles.
As you may include some items in your navigation that are only for members, you can also restrict menu items so they only appear for members / non-members. For example, you can restrict the “Register” page to non-members, but the “My Account” page to members.
Content restriction is fairly limited, as you can’t add restrictions in bulk to pages, posts, or taxonomies (such as a category of posts). There’s also no way to schedule the delayed release of your content (dripping) so members get more access over time. Restrictions are very easy to add and effective for member roles, and I liked that I could apply them to products in my store.
When a user tries to visit a page he doesn’t have access to, he’ll see a login form instead of the content on that page.
If a member tries to visit a page while logged in that’s for a different member role, she’ll simply see basic account information instead of the “login” form.
While I liked how easy content restriction was, it feels a bit incomplete, as there are no notices to inform non-members why the content is restricted (such as a “This content is only for members” notice), and no what to tell the user what kind of membership is required to view the content. There’s also no way to tell a logged-in member why content for other membership roles isn’t displayed, as the “Login” / basic account display doesn’t provide any insight to a member as to why the page is inaccessible.
Ultimate Member includes all membership capabilities, but doesn’t provide the ability to sell any of your memberships. It’s a great member and community management tool, but does help you to monetize your memberships.
Fortunately, you can do this by replacing your registration form with a purchase / checkout form. I’ll use Gravity Forms because of the User Registration add-on I have with my developer license ($199). This will let me create a purchase form that will automatically create a member and assign the correct role, which lets me sell access to memberships.
You’ll need to get a bit fancy with your form to automatically assign the right membership role when it’s purchased, as we’ll need to ensure that the form sets the “role” user meta correctly. To do so, you can’t use a Product field (this would include the price in the user meta, which we don’t want). Instead, you’ll need to use a field to select the membership type, then conditionally show the associated product.
I know it sounds a bit confusing, but basically I can’t create a product dropdown with "Silver membership – $25" and "Gold membership – $50" because this field won’t set the member data correctly. Instead, I’ll create a “Membership Types” field with “Silver membership” and “Gold membership”, then, depending on which is selected, I’ll show the correct “product” field.
This ensures that the correct meta will be set for the membership role. When you create this “Membership Types” field, you’ll set the values as the slugs for the correlated memberships. My “members” role is sold as a “silver membership”, while an upgraded role is sold as a “gold membership”. I’ve created the role “Gold Member” in Ultimate Member, so I’ll set this as the value for my field.
If I’d created a role for “Platinum Member”, I could add another field for “Platinum membership” and set its value to
platinum-member. This will ensure that the purchase form automatically creates your user, and that the user is assigned to the right member role immediately.
The only other field you’ll need to include is an admin-only field for the account status, and set the default value to
approved. This ensures that your members aren’t held for your review when they’ve paid to register.
If you want a head start, you can download a sample form by viewing that link and clicking “Download” in the top right. You can then import this form into Gravity Forms and use it as a starting point. This sample form includes the hidden “account status” field as well as the Membership Types field and conditional logic so you can see how its done.
Once you’ve got a registration form with your member details, payment info (I’m going to integrate Gravity Forms with Stripe), and credit card number, you’ll need to do two things: tie this to the Gravity Forms User Registration add on, and tie this form to your payment (Stripe in my case, but there are other payment add-ons).
When you set up your user registration, add the two special fields we’d mentioned earlier: the “role” should be set to the membership type selected by the customer (this is why we were picky about the value), and the “account_status” should just use your hidden fields so it’s automatically “approved”.
Don’t forget to tie the payment fields in your form to Stripe so they’re sent to pay for the registration!
This process is a bit difficult if you’ve never used the User Registration add-on (though I highly recommend it; I find it very useful). However, it’s a simple way to sell registrations for a membership, as you can simply replace the Ultimate Member Registration form with your Gravity Form and charge for registration. This will automatically register the user and provide the selected membership role.
Ultimate Member does an excellent job of creating a type of site that previously required a ton of custom code to create: directory sites.
Despite the lack of purchasing functionality (though you can make this work with Gravity Forms, the GF User Registration Add-on, and a payment gateway add-on), Ultimate Member is a great member-management plugin, and I think it’s best served for sites that want to focus on member directories and communities. UM easily lets members update their profile information, and can create customized profiles with the information you’d like to use in your community. The frontend profile-editing is one of my favorite features, and its very well done.
Member directories will be created automatically using your directory rules, providing a handy way to show the members in your site, or just members with a certain role. I like that you can create several different directories, restrict who can view them, and then just drop the shortcode for the directory on a page.
The content restriction is good enough to use if this isn’t the main focus of your site. It does exactly what it’s supposed to do, but definitely has room for improvement in terms of bulk applying rules (to make setup faster) and informing nonmembers (or members that don’t have access) why content is restricted. It also doesn’t let you drip out content or expire memberships after a certain period of time.
Ultimate Member is young and it’s great to see several extensions already available. For example, the integration with bbPress is helpful to build your community via forums and restrict them to members. While there are a few downsides to using it, it’s overall a very polished plugin that makes building a directory extremely simple.