Recently I needed a WordPress plugin to manage customers for a new service I’m offering alongside my usual web design/development services. The plugin needed to have a few specific features:
- Customers need to be able to simultaneously have multiple plans in place
- Customers need to be able to upgrade/downgrade at any time
- Stripe must be a payment option
- The ability to restrict custom post types by plan
- The ability to restrict partial page content (posts, pages or custom post types) by plan
- I need to be able to offer discounts on subscriptions, permanent or temporary
- Customers need to be able to purchase both single items and subscriptions
A membership plugin would fit the bill much more effectively
than a cart, which was my first thought. I’ve used s2Member Pro on several
sites and liked it quite a bit; it was the first one I turned to when starting
research on this plugin.
It turns out that the stickiest item in my list was this: users need to be able to simultaneously have multiple subscriptions in place.
The only one I found that actually does this is the amazing MemberPress. All of the others I contacted used WordPress roles (one role = one subscription) making them unusable for my service.
The second-stickiest item was: Stripe must be a payment option.
There were only a few membership plugins that use Stripe, so based on the multiple subscription issue, I was lucky that MemberPress is one of them! Stripe is a very secure, PCI-compliant gateway that handles automatic recurring payments.
During the course of my research I read a number of impressive reviews about MemberPress, and I sent their tech support folks a lot of emails. They were very patient with my detailed and sometimes stupidly redundant questions and their helpful answers guided me to finally purchase this plugin.
It’s $99 for the plugin including one year of updates and
support for a single website. No limits on members, products or rules, and you
get Stripe and Paypal Express Checkout as payment options. Or, for $199, you
get one year of updates and support on unlimited sites, and it also adds
Authorize.Net as a payment option.
I bought the $99 version and promptly received my download link. I installed it in my WordPress site-in-development, very simple and straightforward.
That evening I went looking through their blog – and was even more impressed
by what I found there. The posts are well-written and extremely informative; I
had not yet started setting up MemberPress but learned a few things that would
later save me considerable time.
Setting Up MemberPress, Part 1: Options
There’s a handy User Manual for MemberPress that is a very good reference when setting up the membership features of your site. During my setup process, I had no questions that weren’t answered in the manual. And I found the entire process quite easy and quick.
To get started, login to WordPress and go to MemberPress > Activate. You’ll enter the Activation License Key you received in an email, and then can move right along to MemberPress > Options.
On the Options page you’ll have tabs for Pages, Account, Fields, Payments, Emails, Marketing and General. There are helpful tooltips for items that may not be 100% clear, but if you need more explanation, the User Manual has a section on Configuring Options that explains everything in detail.
On Pages, MemberPress will create some
default reserved pages, but you can replace those if you like with your own pages.
One very important thing I learned from the blog: even if you don’t want to display a Group (which is like a pricing comparison table of different products), you need to put products in a Group if you want customers to be able to upgrade or downgrade between those products.
You can choose how you want to deal with unauthorized accesses and set the default message for these types of views here as well.
On Accounts, you can set permissions and set up registration info, link to your Terms of Service page if you require customers to agree before buying a product, choose whether to use the WordPress or MemberPress login page, and set the account page welcome message.
On Fields you can set up any custom user fields for information you want to collect during registration. For example, if you want to get the customer’s website address or ask how they learned about your website, this is where you ask those questions.
On Payments you choose the payment methods you want to use; MemberPress suggests using multiple methods to accommodate the most users, so I took that advice and set up both Stripe and Offline Payments for customers who want to pay by check (I’m hoping there are not too many of those, but anyway, I was glad to see that this was an option). I’ll go into detail about setting up Stripe payments in the next section.
On the Emails page you’ll see all the system emails that MemberPress uses and can edit them to your heart’s delight. I was really happy to see a ‘Send Test’ button beside each email, making it so easy to see what’s included in each template. I sent myself a test copy of every email, and was pleasantly surprised that they all looked really good. The only one I changed was the Send Welcome Email because I needed to add more info to it.
For Marketing, you can select any auto responders you’re using: AWeber, MailChimp or GetResponse. Once you’ve enabled any of these you can connect MemberPress by adding an opt-in checkbox to your registration page for a newsletter associated with a specific mailing list.
And finally on General you can change language and
currency, and if needed, disable mod_rewrite if you’re having issues with
plugin compatibility (there’s a tooltip with more information here).
Setting Up MemberPress, Part 2: Stripe Payments
So ridiculously easy to set up! This made me very happy…
The User Manual will walk you through this step by step with a video. Basically, you’ll go to the Stripe site and set up a free account, then get the API keys. In MemberPress you’ll select Stripe as your payment method and then will see boxes for pasting in the four Stripe API keys. Then, you’ll copy the Stripe Webhook URL from this page, go back to Stripe, and in Account Settings choose Webhooks and paste the URL there.
Then, I chose ‘test mode’ until I was ready to go live – remember that your Webhook URL will also need to change in Stripe’s Webhooks page when you do that.
And I chose ‘force SSL’ as I have an SSL certificate on the hosting account, for extra security.
As an aside, the reason I’d not used Stripe in the past was
their 7 day payment policy. It didn’t matter so much for this site because I
would have monthly recurring payments, but right after I set up my Stripe
account I was pleasantly surprised to get an email from them telling me that
the terms had changed from 7 days to only 2 days – which is much better! That
makes it now worth trying out for my other online payments too, which I plan to
Setting Up MemberPress, Part 3: Products
The User Manual has a video on creating products here. It’s really a good idea to watch this, even though it’s over 17 minutes long, before you start in on products as there are a lot of options and the video is very helpful.
This is the meat of MemberPress. In my case, I had twelve different subscription products to create, and then a few single products. And I’d already built a custom products table page, so I’d use the shortcodes provided to link my product purchase buttons to a signup form for each product.
Here’s the process for setting up a subscription product, this is long, but covers everything.
1. Add New Product
2. Add the name of the product in the title box
3. Add a description in the editor window
4. In the Product Terms, set the following:
a. The price
b. The billing period (months, weeks, etc.)
c. What text appears on the form button
d. Set a trial period (check out the video for details on this feature; for example, you can have a free 30-day trial and then the regular price and billing period kicks in).
e. Set the number of payment cycles – for example, for a 6-month plan enter 6.
5. Choose a Custom Page Template if you like.
6. Under Product Options set the following:
1) Set a custom thank you message
2) Choose to send a product-specific welcome email (very nice!)
3) Customize payment methods – show only what you want available. For instance, if you only want to accept credit cards for subscriptions, hide offline payments for this product.
4) Check out the Product Shortcodes at the bottom… I added the
shortcode to this page (in the editor window) so the registration form will
appear underneath my description text.
1) Need to have customers able to buy multiple subscriptions? Tick the box for ‘Allow users to create multiple, active subscriptions to this product.’
2) Under ‘Who can purchase this Product’ you can set up multiple rules about who can buy. For example, ‘only an existing customer who has already purchased something else can purchase this product.’
c. Price Box. This is related to Groups – check out the User Manual video for Groups for more information. I didn’t use this because I’m not planning to use Groups for a product comparison page.
1) Think of the Product Access URL as a table of contents for content that’s available to a buyer of this product. For example, if a buyer has access to pages X, Y, and Z after purchasing this product, make the URL link to a page that has links to X, Y, and Z.
2) For Registration Pricing Terms, you can choose Custom to change the wording generated automatically by your Product Terms settings, or Hide to hide it completely.
3) Watch the video for information on the powerful feature Custom Login Redirect URLs – you can do things like upsells based on the number of times a user has logged in.
Setting Up MemberPress, Part 4: Groups
Remember how I mentioned near the beginning how products must be in a Group in order for customers to be able to upgrade/downgrade? Even though I didn’t plan to use a comparison table (which is what Group does for you, on its automatically created page), I added all my plans to a single Group so people could change plans whenever they wanted to. You can tick the ‘disable pricing page’ to hide that front-end comparison table page if you like.
MemberPress, Part 5: Coupons
The ability to easily create any needed coupons is another
plus for this plugin. For my purposes, I needed a $5 coupon to apply to one
product and a $10 coupon for another. You can change the automatically
generated coupon name to something simpler (MYCOUP5USD), change the discount
from a currency amount to a percentage, and make the discount permanent or give
it an expiration date so that it’s only applied for, say, the first 3 months of
Setting Up MemberPress, Part 6: Rules
This is where you control access to content in your site. It’s nice that this can be done from a single central location instead of having to change some settings within every page or post you want to protect, but you can override the defaults you set in Rules on any page or post.
You can use tags and categories to restrict content, including custom post types, and MemberPress can even restrict non-WordPress files. And you can drip content by making the Rule expire based on any time period.
I restricted all the content under my parent page ‘Client Area’ with one rule, then on the Client Area page, added the MemberPress login box widget. If anyone attempts to go to a page under Client Area before logging in, they’ll see the default ‘unauthorized access’ notice I set in Options and a login box.
Note that you need to test Rules with a non-administrator account because administrators see all content.
I was so pleased with the appearance of MemberPress right out of the box, I did only a few minor customizations: to the buttons to make them match the rest of the site, and to the login, account and signup forms for spacing and responsive behavior. That’s a big time-saver; I usually spend at least a few hours cleaning up messy styling in premium plugins, sometimes a lot more. I’m very picky about look and feel.
Now it was time to move on to testing and tweaking, but for the most part I was finished with setup. It took about two hours to go through the steps in this tutorial.
And there are other things you can do with your
- Require admin approval for new members
- Set up even more advanced content restriction rules with Regex
- Use shortcodes to MemberPress content throughout a site
- Import or export data
- Host private files through Amazon S3
The MemberPress plugin is truly a bargain starting at $99.00. All the way through getting it set up and working on my site, I was impressed with the great attention to detail and the obvious care that had gone into this plugin. The fact that every one of the default email templates was grammar- and spelling error-free was amazing based on some of the awful emails I’ve seen. I’ll certainly be recommending this plugin to my own clients as well as using it myself.
Kudos, MemberPress team – you rock!