The WP-Members Plugin
When we looked at wpmu dev's Membership 2 Pro and WP eMember, we walked thru many of their features, did a tour, talked about their integrations and scored them. As we did that, I walked you thru several criteria I use to evaluate these plugins.
But I should be clear about something. Very up front about it. My criteria doesn't much matter when it comes to your own membership site.
I know it. But I want to make sure you know it too. And that you know I know it.
Because, and I know you know this, every single site is different. And each site has it's own needs. Nevertheless, I needed a measuring stick, so I created one. In the abstract. Away from your own site and what you might need.
Today, we'll be looking at WP-Members and it may not score fantastically against my criteria. But what's most important is how well it does the job you need it to do.
Let's start with a tweet and a specific example
The other day I saw this tweet from my friend Nikhil and a great reply from Devin Price.
@TechVoltz @post_status is charging money for theirs.
— Devin Price (@devinsays) June 29, 2015
If you don't know what they're referring to, they're talking about a website called Post Status that is run by my friend Brian Krogsgard. It's a website that provides daily curated news about the WordPress ecosystem.
You can read the posts online but you also get them emailed to you daily.
What if we wanted to create that, except about cigars?
That would be nice, right?
What we'd need is:
- A way to protect content
- A way to create email subscribers (to send daily emails from posts)
- A way to charge people for a yearly subscription
That's the minimum.
And if we had to select a plugin to do what we need, why not choose one that has been deployed more than 60,000 times on live sites.
The WP-Members Approach
The first thing to note is that WP-Members is designed with a particular approach in mind.
- It's designed to support a site that has a single, core offering.
- It's designed to work with or without charging.
- It's designed for the core offering to be content that you protect.
- It's designed to distinguish between members and non-members.
Notice what I didn't say. This isn't a plugin that assumes you'll have multiple payment plans, multiple concurrent memberships, different member levels, or anything like that.
It will likely not score great on some of my criteria. But I think you'll see, for many people, it does exactly what they need.
The other thing it does is assume that you'll assemble the features you need. It does this by creating tons of little extra plugins that will add features to your site – but won't require you to install them if you don't need them.
It's a pretty clean way to go about things.
Chad Butler also assumes that if you're a developer, you'll tweak things via filter and action hooks – of which he's created and documented many.
In fact, let me also say that this plugin has a lot of documentation – from a getting started guide, to a user guide, to that documentation for the hooks of the plugin.
Things WP-Members Gets Right, Right Away
I installed the plugin and activated it. Right away, I received three warnings that related to existing WordPress settings that likely needed to change.
Because this is a content protection plugin, it wants to make sure you're not exposing your content via other channels like your RSS feed.
You also notice, right away, that the settings are completely manageable and easy to understand. Setting up and configuring a site with WP-Members is fast and easy.
And there's even more good news – WP-Members doesn't create pages for you (upon installation). Instead, it uses short codes that it gives you, and lets you pick the pages you want to use them on.
Here's the Profile page I created. With a short code on it.
There's even more good news.
The dashboard isn't taken over by the plugin, and even when the plugin shows you some extra content (on the right), it's on its own plugin page, cleanly designed, and points you to even more useful information to help you.
You will never annoy customers with cleanly designed links to additional information, including a premium support offering.
And before we finish, let me highlight that the plugin also plays well with themes – because Chad created several different style sheets that help his plugin work with well-known themes, including Genesis Themes from StudioPress.
These are lessons others should take and borrow / steal from Chad.
Getting Started on our Site
As we've looked at other plugins, we've seen the need to create custom fields for registrants. WP-Members supports this natively.
So right away, I wanted to create some additional fields that would help me.
When I create a check box field, I am making it easy to use for my integration with MailChimp.
MailChimp Integration is one of those extra plugins I mentioned above. Install it like you would any plugin and you'll see a new tab in your WP-Members settings screen. It's what let's you configure your MailChimp details so that when a user checks the box during registration, they're added to your list.
You'll see that I get better options and details than I have with the other plugins we've looked at, but there are still some things I wished (like support for Groups inside of MailChimp lists).
I would love to know if my members want both “news” and “event” info, but for now, I can only use WP-Members to sign them up for the overall list, not a specific group.
Invitation Codes Rock!
Of course, not just anyone can sign up for my membership. Money isn't everything. This is a very select group of cigar smokers. So I want to be able to give them an Invite Code, which they provide during registration. If it matches, they get in.
To do this, I need to do several things.
I need to install the Invite Codes plugin that works with WP-Members from that list.
I need to go to the settings page and create an Invite Code.
Then I need to go to the Fields area and add a new registration field where they can put in the Invite Code.
Once that's all done, any time someone tries to register, they will need to enter their private code and my site will verify that it's the right one. If so, they can continue in their registration / payment process.
Dynamic Menus are also very Cool!
Many membership sites have a single master menu that has links in them that take you to protected content. When you try to go to that page, it redirects you, or presents you with a message that tells you the content is protected and that you should register.
On a site like this one, where there are only two audiences – members (logged in) and non-members (not logged in), being able to show two different menus strikes me as purely logical.
But it's not always easy because you'd have to wrap the theme code in conditionals and swap menus. Or something equivalent.
And that's what WP-Members does. Thru one of those extra little plugins that are add-ons for WP-Members. It's called Logged In Menus.
And when you've configured two different menus, it's a beautiful thing.
Putting together the last steps
So at this point, I've made a lot of fast progress.
- I've protected my content via the main settings.
- I've added some custom fields and integrated with MailChimp.
- I've created menus for logged in and logged out members.
- And while I was at it, I added a login widget in the sidebar.
But now I need to create the way to get paid. So I added the PayPal Subscription add-on.
Let me explain how this flow works.
- I give the person a special invite code.
- I send them to the site where they register.
- On the registration page, they have to put the code in the special field.
- That will let them create an account. But it won't let them in yet.
- After the successful creation of an account, they'll be presented with the PayPal button to go pay.
If they don't pay, they are able to log in, but can't get access to any protected content. Instead, their profile page shows them the link to finish the process and pay.
Once they've paid, they'll be able to log in. Without that, they only see the teaser content which is above the “more” tag in each post.
Were there any frustrations?
Like I said when I started, this plugin works with certain assumptions. But since I was trying to create a site that is perfectly well within their wheelhouse, there was nothing I wanted to do that I couldn't do.
This is the lesson every developer needs to learn from Chad: there's a difference between a complete plugin and a plugin that tries to do everything. You can be complete without doing everything by targeting certain problems and solving them well.
You'll notice I was able to build 100% of what I wanted without any trouble. That said, here is how this plugin scored against my criteria.
- Ease of Use – 5
- Payment Gateway Support – 1
- eCommerce Support – 1
- Drip Support – 1
- Concurrent Accounts – 1
- Pro-rating Charges – 1
- Upgrades / Downgrades – 3
- Speed of setting it up – 5
The WP-Members Score: 2.25