How to cache your membership site

You know what caching is and its benefits, create the page once and serve it many times. The problem with this is that it'll always be the same, and that is not desirable for every page.

Many pages may have dynamic content that'll change for some reason. One of those could be that you show one thing to someone that paid to view more content in a page, while the regular visitor only gets a preview.

And the username would change for each user, of course, so the "Howdy..." message would not be right if the guy gets the page that some other user got cached.

Some have tried partially caching a page, and there are different approaches, but it gets complicated and is generally not recommended.

A better approach would be to cache separate copies of the page, unique for each logged in user. A member would not benefit from the cache someone else caused, but he'd still benefit from it when visiting the same page again.

So the caching plugin would need to know how to cache pages for logged in users in a way that each gets what he's supposed to, and not make a mess.

For my membership sites I use ZenCache, which in the Pro version has the ability to do just that and works great.

You just enable the setting and it'll the do rest for you, very simple to use, and you'll finally be able to benefit from caching for your membership.

ZenCache Logged-in Users panel

You can see ZenCache's complete features list here:

And here's the free version, with a preview of the Pro features:

I hope that helps! 🙂

InfusionSoft integration

Here’s a video that Sterling Chase, from our s2Member Pro community, made to show how he integrated s2Member with InfusionSoft using Parsey’s service:

You may also be interested in this tutorial by Randy King about integrating with InfusionSoft using s2Member Pro’s Remote Operations API:

Both integrations are limited, but they may be enough for what you want, just as they were for them. I hope this helps you, and if you find how to improve it, I look forward to hearing from you with your tips! 🙂

Quick Start video

I’ve been asked a few times to explain what to do to get started quick, and I finally got around to making a short video to show you.

We’ve had a lot of new users every week, and more coming in all the time, so this is for all of you getting your head around this plugin.

And for all those who’ve already used it a bit, it may still be good to give this a watch, it only takes a few minutes and -who knows- you may get something out of it too. 🙂

Updating an old installation

Maybe you haven’t updated s2Member in many months, or years even, and many versions were released since the one you're using. That’d a big jump in versions and there could be trouble when you update to the latest.

Here are some recommended steps you may want to consider:

– Make sure you have s2Member’s Deactivation Safeguards enabled. This wasn’t always enabled by default, and your installation may be old enough that it’s disabled. Dashboard -› s2Member -› General Options -› Deactivation Safeguards

– Create a backup of everything in your site (e.g. files, database).

– Check that your server is ready for the latest s2Member. The latest release may require some things that the old one didn’t. Use our server scanner find any issues and follow the suggestions given to solve them. See: Knowledge Base » s2Member Server Scanner

– Clone the live site to have a development copy you can work on and break without affecting your customers during your tests. See:

– Try the update to the latest release in the development copy you just created. See:
s2Member Framework Update
s2Member Pro Update

– If you have trouble updating straight to the latest release, then try doing the updates little by little. Keep notes of the steps you take so you can reproduce them later in the live site after you succeed. Here you can find previous releases:

– As part of your tests, remember to review the site to make sure everything is working correctly. There may be conflicts with other plugins or your theme, that weren’t there before. See: Troubleshooting Tips

– Once you succeed updating the dev copy to the latest version and have everything working fine, make a new backup of the live site and take the same successful steps there to update s2Member to the latest release.

If you don’t know how to do one or more of these steps, you may want to google it, or get someone to do it for you. You can find freelancers in sites like,, or

Blank page, 414 error, request URI too long

If you’re getting a blank page when redirected to the Membership Options Page, when returning from the payment gateway, or some other long URL, you may be getting a 414 error: Request URI too long.

What you need to do is contact your web host so they raise the limit for your website/account.

s2Member has a few URLs that can be quite long, and you need these to work or you’ll have trouble with some checkouts or redirections.

Adding a payment gateway

s2Member integrates with PayPal Standard, and the s2Member Pro add-on adds a few other payment gateways/services. See:

If you see that the payment gateway you want is supported by s2Member Pro and you don’t have it yet, go get it here:

If you want s2Member to work with a payment gateway not listed there, find out if the payment gateway you want has an integration with s2Member, maybe they already did.

If they haven’t, you could ask them for it, create it yourself, or get a developer to do it for you. You can find freelancers in sites like,, or

These may be useful to create the integration:
WP Admin -› s2Member -› PayPal Options -› PayPal IPN Integration -> Proxy Key
WP Admin -› s2Member -› API / Scripting -› Remote Operations API
WP Admin -› s2Member -› API / Notifications

The Remote Operations API currently makes possible from a script outside of WordPress, to create a new user, authenticate an existing user, retrieve data from his account, update his account or delete it.

Or look at how one of the s2Member Pro payment gateways works and use it as a starting point for yours.

Keep in mind that if you don’t do a full integration, following the way the other ones have been done, you may have some limitations that you need to overcome or at least be aware of.

The one I know will happen if you use the PayPal IPN with proxy key, is that it’ll only work for new signups, not upgrades of existing users, because the user ID is not being referenced.

So it’s best to study an existing integration and emulate it to take advantage of all the features.

Admin pages not looking or working right

The s2Member admin pages use CSS and JavaScript to look and work properly. If there’s something wrong with them, it’s very likely that something is preventing the styles or scripts from working or even loading.

There are three main things that we’ve seen cause this:


The theme you’re using may be causing trouble and you can test this simply changing to the default theme for a moment and reloading the admin page you’re having trouble with.


Some plugins have also been known to conflict in a way that may cause the s2Member admin pages to not work correctly.

To test these, just deactivate them all and reload the page, or deactivate them one by one and check after each if the problem is gone.

Index file

If the default WordPress index file has been changed to something else, like an index.html one for example, this would also cause the s2Member styles and JavaScript to not load.

Try changing back to the default index.php file and reload the admin page.

If the above don’t solve the problem, there are a couple more things you could try. Please see this article: Troubleshooting Tips

Unable to Verify $_POST Vars Error

There are two main things to try when fixing this error:

Server Scanner

This script will help spot some known server issues that would cause you this error. Knowledge Base » s2Member Server Scanner

Follow the instructions in that article to spot these issues, and follow the advice given to solve each until you get an all-green report.

s2Member Server Scanner all-green screenshot

PayPal PDT

That setting would cause this error if it’s missing or incorrect. Please verify that your PDT configuration is correct. Dashboard -› s2Member -› PayPal Options -› PayPal PDT Integration

After fixing each one, do a new test purchase to see if the error is gone.

If you continue having this issue, try these other tips to help solve the issue: Knowledge Base » Common Troubleshooting Tips

Levels without incremental access

We're sometimes asked how it'd be possible to use levels but not give incremental access to the content.

Normally, a user would get access to content restricted at his level or below. So if the user is at Level 2, he gets access to content for Level 2, 1 and 0.

You may want to sell Level 2 but not have that user accessing Level 1 content. Custom capabilities would be better than levels in these situations.

That said, there are two ways in which you can protect content with levels and not have the users access content for levels below theirs.


In the page or post, use conditionals that check the user's level to show or hide the content. WP Admin -> 2Member -> Scripting -> Conditionals

Here are some examples from that documentation:

[s2If current_user_is(s2member_level2)]
Some premium content for Level 2 Members.
[s2If current_user_is(s2member_level1)]
Some premium content for Level 1 Members.
[s2If current_user_is(s2member_level0)]
Some content for Free Subscribers.


You can edit the s2Member Level roles to remove the capabilities that give access to other levels.

You'd do that using another tool, like the User Role Editor.

If you do this, you'll need to lock the roles so they aren't reset when updating s2Member.

s2Member Framework Intro

Hi there, my name is Jason Caldwell and I'm the Lead Developer for the s2Member plugin for WordPress, and it is my pleasure to introduce s2Member to you.

In this video I'm gonna --this is just an introductory video-- I'm gonna talk a little bit about what s2Member is, what it does, what it's capable of. And I'm also gonna show you how to install it and how to get started with it as quickly as possible; which is actually pretty easy, especially if you already have content that you want to protect and sell access to.

Alright, so let's get started. I'm here at and I pulled s2Member up from the plugins tab here at the top. You can just search for s2Member using the search box here, and that'll bring you to this page, and of course you can learn all about s2Member from this page.

However, you can also go --I'm gonna switch tabs here for a moment-- you can also go to, or just go to and here at the choose the Framework. This is the free version of our plugin that we were just looking at at

And I'm actually on that page right now. You can use these tabs across to learn all about s2Member and even follow along with our changelog to see how we're progressing as we move forward with s2Member.

Farther down the page here you'll find a list of features; these are expandable, so you can open them up and take a look, and a feature comparison between s2Member and s2Member Pro.

If you have questions along the way, we would encourage you to use our search box here at the top, or you can navigate through our support panel here in the support menu.

You'll find that we have a Codex for s2Member were all of the source code has been documented, along with over a thousand hooks and filters that are available for developers to integrate s2Member in more creative ways.

Here's a Knowledge Base for s2Member, where we have our support reps who have written many, many articles about s2Member, to address common questions and problems and ways to work around those. You can also take a look at other video tutorials. Our FAQs.

And our support forums are available. If you'd like to join our Community forum, you can use this link here at the top-left, where it'll bring you to our free registration form. And you can get into our forums and get help from other site owners, share ideas. So we would encourage you to do that.

We also have s2Member Pro available. You can learn more about s2Member Pro in this area of our website, where we have support for on-site credit card processing through additional payment gateways like PayPal Pro, Authorize.Net. ClickBank and Google Checkout are supported by s2Member Pro as well. And with your purchase of s2Member Pro you also gain access to priority support through our Customer support forums. So this provides other features and additional functionalities.

Alright, let's take a look at how to install the free version of s2Member, the s2Member Framework.

I'm just gonna switch tabs here for a moment where I've already got a test--a quick test site where I've put this together for the video. And this is the back end of that site, and it's powered by WordPress obviously, and I'm here in the Plugins menu and I've chosen "add new".

Now I just type "s2member" into the search box and let's search for s2Member, so that we can install it. And here it's the first item in the list, we're looking for the s2Member Framework.

And we're --right now at the time of this vdeo--we're at version 120213, which actually indicates that this version of the plugin was released on February 13th of the year 2012. So that's how our version numbers work, they indicate the release date as well.

So we just choose "install now" and let's choose "OK" just to confirm that's what we want to do. Okay, so the download begins. WordPress will download the latest release of s2Member from the plugins repository, it will unzip it and install it into the proper location.

Okay, so that's pretty simple. Now, if you were to do this manually, perhaps through an application like FileZilla, where you were FTPing the application to your website...

Let's take a look, I'm gonna open up another window here. Let's pretend for a moment that this were your installation of WordPress. You will always have a wp-content folder, and then you will have a plugins subfolder; these are things common to all WordPress installs. Okay, and this is where you will place the s2Member folders. So you'd download the zip file, unzip it and place the s2member directory here.

And upon activating s2Member, you will also get the s2member-files and s2member-logs directories. s2Member creates these directories for you, automatically. Okay, just to be aware of that, these directories should remain writable on your web server. This one will hold log files, should you choose to enable logging in the future. And this is designed to hold protected file downloads, if you decide to use that aspect of s2Member.

One thing to be aware of, if you do a manual installation, is to be sure you don't accidentally nest two s2member folders together. If we open the s2Member folder, we should have immediately inside the s2member.php file. That's the core plugin file. What we want to avoid is if you have wp-content/plugins/s2member... then another /s2member directory, and then these files, then you've done something wrong.

You should have wp-conten/plugins/s2member/ and then these files and subdirectories, where you have s2member.php. This is correct.

But let's go back to the Dashboard, because 99% of the time this is how s2Member is installed, because this is really the simplest way. And here, everything happens automatically. Now, after the plugin has been installed, we just choose "activate".

So that's it, s2Member is now installed, it says --actually it's been reactivated because at one point I had it installed in this site, so it just says reactivated, but you'll have a similar message. It says "have fun, make some money". So that's it, s2Member is now installed.

So now the question becomes "okay, what is s2Member going to do for me? What is it capable of? What am I be able to accomplish with s2Member?" So I'm gonna get into a little bit of that and the initial configuration of s2Member in the very next segment of this video.

Okay, s2Member's now installed, so now let's take a look at how to cofigure it. Before I do, though, I'm wanna talk to you a little bit about what s2Member is and what it does.

s2Member is a membership management plugin, it's going to empower your WordPress installation with the features necessary to convert your WordPress site into a membership offering.

If you take a look here, at the s2Member menu panel that's installed with s2Member, you're going to see things like PayPal Buttons, PayPal Options, Download Restrictions, overall Restriction Options, the General Options which establishes the core configuration values for your installation, and then down here you will find some additional methods to integrate s2Member in more advanced ways.

With s2Member, the free version, we're getting integration with s2Member's roles and capabilities, and s2Member's integration with PayPal Website Payments Standard, and that is to say that the free version integrates with PayPal buttons; that's the PayPal Website Payments Standard integration.

s2Member Pro can add additional payment gateway options, along with several other new features and functionalities. But the free version is fully functional and PayPal buttons are a great way to get started selling membership and other types of access on your site.

When you first install s2Member, you'll want to take a look here at the s2Member menu and go to the Quick-Start Guide. From the page that covers the Quick-Start Guide you can take a look at all our video tutorials.

And I would advise you to take a look at these panels before you start configuring s2Member, because they're actually very short. This just covers some of the basic aspects and talk to you a little bit about what s2Member, how it works and how it functions internally. And this will really help you if you just kinda read through this before you get started.

And one of the things you'll discover as you read down through here, is that you need to create two pages. Before you even start configuring s2Member, it's a good idea to create your Login Welcome page and your Membership Options page.

Your Login Welcome page is the first page that a member or another user on your website that does not have administrative access, they will come to this page upon logging in. This is--you can think of this as the My Account page, where the customer or the pre-subscriber, anyone who logs in who does not have administrative access to your site, they will be redirected by s2Member to this page on the front-end of your website, which should be encompassed by your theme.

And this is just a page, like any other page in WordPress. So if I go here to my list of Pages, you'll see that I've already created these two pages.

Initially, when you create these pages, just give them the titles, the generic titles "Login Welcome Page" and "Membership Options Page", and don't even worry about putting any content in those pages. We just need those to be created.

In the beginning --and you can learn more about how these function as you get through s2Member's configuration, this will become very obvious as you work through s2Member.

In the beginning we just wanna give these two pages to the system. Then as you're going through, the first thing you should do is configure s2Member General Options.

And as you work down through the General Options you will see that s2Member asks you to designate one of the pages on your website that you've created, in this drop-down list, to designate as the Login Welcome page. And if you've already created the page, it'll already be in the drop-down for you and you can choose that.

And the same is true for your Membership Options page, which is the page where people who are not members of your site, who might be denied access to certain areas of your site that you've restricted with s2Member, they will be redirected to a Membership Options page.

And ultimately your Membership Options page will contain payment buttons, and if you're using the free version of s2Member you'll be using PayPal buttons. That's where any PayPal buttons that you generate would go, that is into your Membership Options page.

And s2Member makes it possible to generate PayPal payment buttons, with all sorts of different options, including recurring billing, one-time billing, fixed-term access, lifetime access, pretty much whatever you need including trial periods, or what we would consider to be an initial period at a certain price, which might later recur at a different price.

There's lots of options here to generate buttons. And s2Member's buttons are integrated through shortcodes that you just copy and paste into a post or a page in your website.

And normally those buttons would go into your Membership Options page. And I have some here from previous examples, but we will just paste the shortcode in that we got. And this produces the PayPal button.

PayPal buttons are what faciliates the checkout process, and access is granted to any content in your website that you've protected with s2Member.

You can learn more about s2Member through our additional video tutorials, where we cover all of s2Member's configuration options in much more detail.

Thank you very much for watching!