How To Create An Affiliate Program For Your Membership Site With WordPress

An inside look at exactly how to set up a powerful affiliate program for your Wordpress-powered membership site that is simple to manage and easy for your affiliates.

When you have a membership site, getting new members is a constant, ongoing effort. Building an affiliate program onto it can help make the job a little easier. After all, it is a marketing channel that doesn't cost you any money at all unless you make some.

That's pretty awesome. 🙂

Actually building on an affiliate program is actually a lot easier than you might think.

In this post, we're going to take a look at the technical aspect of setting up an affiliate program. We will specifically talk about doing this on a site powered by WordPress.

Pros & Cons To An Affiliate Program

The primary purpose of enabling affiliates for your membership site is pretty clear:

Make more sales.

But, there are other benefits that go along with the obvious. Such as:

  1. It promotes brand awareness. Naturally, you're going to have other people talking about your site and that exposes you to new people who might not have otherwise known about you.
  2. It can increase traffic. Obviously.
  3. It can increase sales. We already mentioned that one, but hey, it's a biggie. 😉
  4. It creates third-party advocates. It is one thing for you to say how good your stuff is. It is quite another when others do it.
  5. It is cost-effective. Yes, you will pay out commissions to your affiliates on sales earned. But, you don't pay unless they refer a sale. Unlike paid traffic where it will cost money no matter what.

This all sounds great. However, there are a few things to keep in mind about all this. I wouldn't call these "cons", really. Just things to be aware of...

  1. It requires time. Having affiliates is going to take some time to manage. This isn't a "set it and forget it" kind of thing.
  2. It may not work with some audiences. Some audiences just don't really know how affiliate marketing works. Also, in some markets, maybe sales are made over the phone or in person, making tracking difficult.
  3. There's more tech involved. But, we'll cover that here in this post.

All things said and done, if you have a business online and are already selling things on your membership site, I think it makes sense to have an affiliate program.

Now, let's start getting into the specifics...

The Technical Setup Of Your Affiliate Program

There are many options out there for running your own affiliate program. For many, the search is going to start with one, simple question...

What will integrate with my membership site system or shopping cart?

That's obviously a pretty important starting point. Whatever you run your sales through needs to be able to track referrals. The good news is that some options can work with almost any outside cart.

Let's first talk about my old affiliate setup...

I Use MemberMouse. So, What About iDevAffiliate?

Many of my readers know that I am a fan and user of MemberMouse. While it has some things I wish were more polished about it in the admin interface, it remains the most robust membership site option for WordPress. You can read my Membermouse review here.

When you research this, you find that there's only one affiliate solution that officially integrates with MemberMouse: iDevAffiliate.

Now, iDevAffiliate has been around for quite a long time. It is robust software. And indeed MemberMouse has a very deep integration with it which is pretty much guaranteed to work.

That said, after using iDevAffiliate for awhile, I abandoned it. I just don't like it. And here's why...

  • It has cumbersome hosting requirements. Not to get overly geeky, but much of the underlying code is encoded so that it requires ionCube to run it. This means there are additional hosting requirements to use it. It also means that if you're on a managed WordPress environment, you won't be able to easily use iDevAffiliate.
  • It is bulky. IDevAffiliate is robust, but a large chunk of what it is capable of doing you just aren't likely to use. Plus, some of the features you might want are only available as expensive add-ons.
  • Development is slow. Considering what they charge for the software, I feel as if their development schedule is rather frozen. 
  • It is separate from WordPress. Let's face it, but if you're managing your whole site in WordPress, it is a drag to have to log into an entirely different system just to manage affiliates. Having it all under one roof is easier.

So, in my case, I ended up having to host iDevAffiliate on an entirely different web host - on an entirely different domain - than the Blog Marketing Academy.

This meant that referral links didn't point to BMA (which is bad for SEO) but instead went through a tracker on the other domain.

It was just an annoying setup.

So, I switched.

Goodbye iDevAffiliate. Hello AffiliateWP.

Yes, I decided to switch to a WordPress-powered solution called AffiliateWP.

AffiliateWP comes from the same team behind Easy Digital Downloads, Restrict Content Pro and several other solutions. It is quite a robust system.

Price-wise, it is better than iDevAffiliate. iDev runs $39/month if you want them to host it for you, or $199 to self-host it (then running $89/year to keep getting upgrades which, frankly, hardly ever happens so you're sorta wasting your money). AffiliateWP can run as low as $99/year. Personally, I went with the Pro option at $249/year. You get every single add-on. And unlike iDev, AffiliateWP actually issues updates pretty frequently so you're actually getting something for your money.

As a MemberMouse user, it may at first seem risky to go with a solution that isn't officially supported by MemberMouse. But, just ignore it. AffiliateWP integrates with MemberMouse just fine. In fact, AffiliateWP integrates with a long list of plugins including S2 Member, MemberPress, Easy Digital Downloads, Paid Member Subscriptions, OptimizeMember, etc. 

Switching to AffiliateWP fixed several annoyances for me:

  • Referral links now point directly to my own domain. MUCH better for SEO.
  • My affiliate management is now a direct part of WordPress. MemberMouse and my affiliate system are now side-by-side, making management much easier.
  • I can now have the affiliate dashboard right inside the membership itself, meaning one login gets them access to everything. No more need to head off to an entirely different domain and log in with a separate profile. The simpler you can make your affiliate program, the more likely it is to work for you.
  • Being directly integrated with WordPress means that I can theme it the way I want, take advantage of hooks, etc. That's all developer stuff, but if you wanna tweak this to your every whim, you can. All the code is easy to view, not encoded like iDevAffiliate.

One thing to be aware of about AffiliateWP is the way they do add-ons. AffiliateWP is not just one plug-in that does it all. The core functionality is baked in, but then you use add-ons to tack on features you might want.

When you're trying to keep the number of active plug-ins down on your WordPress, it can be annoying when you need to activate several, separate add-ons just for your affiliate program. The ones I am using are:

Combined with the core AffiliateWP plug-in, that means I'm running 7 plug-ins just for my affiliate program. Yikes!

From a developer perspective, it makes sense. It means the core plug-in can be more streamlined and you only bolt on the stuff you need. Coming from iDevAffiliate where I thought the thing was bulky and over-engineered, I see the logic behind the AffiliateWP approach. So, I just roll with it.

Besides, the plugin quantity was one of the reasons I separated my public site from the membership anyway.

My Exact AffiliateWP Setup And How It Works

First, I installed AffiliateWP just like any other plug-in. The first thing I did was activate it's built-in integration with MemberMouse.

When you install it, it will automatically create a page in WordPress to serve as your affiliate dashboard. All it does is puts a shortcode on the page. Anywhere you put that shortcode, your affiliate dashboard will appear. Easy peasy.

You then want to set up the core settings the way that you want.

  • Referral Variable. This is the variable used in all the referral links. I just left it at "ref".
  • Referral Rate. You can choose a flat-rate commission or percentage. I chose a 25% referral rate on all sales.
  • Cookie Expiration. I set mine to 365 days, meaning referrals will be tracked for 1 year after they are originally referred.
  • Allow Affiliate Registration. Obviously turn this on if you want people to be able to register on their own.
  • Require Approval. Do you want to approve affiliates before they can promote? Or just let them go immediately? I may change my mind, but for now I approve affiliates.
  • Auto Register New Users. You can automatically make all members into affiliates if you want to. In my case, I decided to give them the choice so I leave this option unchecked.

There are numerous other options that you can go through. Most of them I simply left at default because it was either fine as is or didn't apply to my setup.

How I Handle Working With Separate WordPress Installations

AffiliateWP is set up to assume your entire site works on the same install of WordPress. However, that isn't the case with the Blog Marketing Academy any longer.

As I wrote about, I made the strategic decision to use two separate WordPress installations for my site. One for the membership... and the other for the public-facing stuff (including many of the sales pages).

This introduces an issue where the links affiliates will point people to does not exist on the same WordPress site as AffiliateWP. So, how will we track everything?

One of the add-ons is called External Referral Links. The whole point is to be able to point your affiliates to URLs that are on a separate domain yet still track the referral. Even if you're using a sub-domain like me, it is still considered a separate domain and a separate site.

Once their referral is cookied, the plug-in will automatically append the referral ID to any outgoing link to your membership site. In my case, once a person is referred, any link to app.blogmarketingacademy.com will get their referral ID added to it. Allowing me to therefore track the sale when it is made.

But, there's another issue...

That plug-in won't track visits. This means that is an affiliate sent a person to my main LAB sales page, for instance, it would not appear on their traffic report. That would cause confusion, to be sure.

I came across the Cross Domain Tracker for AffiliateWP plug-in that solves this issue. It will send visitor data back to AffiliateWP using the API. You install the plugin as the "parent" on membership site (with AffiliateWP) and install it as a "child" on the other domain. The two plug-ins will "talk" to each other and pass visitor data using the API.

Set up on the public site to send data back to the affiliate system on the other site

So, between those 2 add-ons, I bridge the gap between the public site and the membership site.

The only drawback to this is that AffiliateWP has a nice add-on called Direct Link Tracking. It would allow affiliates to set up their own site as a referral domain and then link naturally to any page on my site without the need to add a referral ID to it. Just regular backlinks in their blog posts would track to their affiliate profile. That'd be pretty awesome, but as of now, there's no way to do that across different WordPress installs. Perhaps they'll make it doable in the future.

How The Affiliate Center Is Integrated Into The Membership

The Affiliate Center is simply a page on WordPress. This means that I can display it in the site menu just like any other page.

The only way people would be able to be inside this site is with a valid membership. Access control to the page is controlled by MemberMouse just like any other page.

As mentioned previously, I don't automatically make every member into an affiliate. So, it is possible that a person who is NOT an affiliate may click on the Affiliate Center option in the menu. There are, then, two scenarios:

  • If they ARE an affiliate, show them the regular dashboard.
  • If they are NOT an affiliate, show them a form to enroll and activate their affiliate account.

I created a second page inside my membership so that they can enroll in the program. This page spells out why they might want to join and shows the registration form. I built that page using Thrive Architect, of course. 🙂 (Click here to read my Thrive Themes review).

I wanted to take more control over the registration form, so I decided to use Gravity Forms. I also use the Affiliate Forms For Gravity Forms add-on so that I can enable my custom form to work with AffiliateWP properly.

Using Gravity Forms, I can also pre-fill certain data about them that I already know since they are a member. That includes name, email address, etc. I want this to be ONE profile for everything - including the affiliate program. And I am now able to pull that off (which is awesome).

By using the Drip Email Campaigns + Gravity Forms plugin, I am able to send all registrations for this form straight into Drip, therefore tagging all affiliates as affiliates and allowing me to email them easily.

This brings me to the final piece...

How do I determine if a member is an affiliate or not? Well, I made a little function inside my page template for WordPress...

function checkisaffiliate() {
if(!function_exists('affwp_is_affiliate')) return;
if( !affwp_is_affiliate( get_current_user_id() ) ) {
wp_redirect("/affiliate-enroll/");
exit;
}
}
if (is_page( 'affiliatecp' )) {
checkisaffiliate();
}

It passes the current user ID into the function, which then checks to see if they are active as an affiliate or not. If not, it sends them to the enrollment page. If it is, it passes through and will show them the affiliate dashboard.

That same code could be used in other places. For instance, I could easily put a notice on the member dashboard to invite them into the affiliate program if they're not already active. This is the beauty of having everything in one place now and inside WordPress. Much more flexible and seamless with the membership site it is designed to sell.

Is This A Bit Too Complicated For You?

We can do it for you. Need some help setting up AffiliateWP on your site? Or integrating it with your membership site? We can get it working for you.

Other Options For Your Affiliate Program

I have shared my exact setup. Obviously, I chose to go with AffiliateWP. And while I integrated it with MemberMouse, it works with a number of other solutions so I have little doubt it would work for you, too.

But, AffiliateWP isn't the only option. 

WP Affiliate is another option. It has many similarities with AffiliateWP but is much cheaper at only $49.95. It doesn't feel as professional or as well-supported, however. Realize, though, that I have no direct personal experience with it and am judging it only from the outside.

Affiliate Royale is another option. This option is baked into MemberPress, so if you're using MemberPress you already have this.

There are third-party options such as ShareASale or Clickbank. Quite frankly, I don't think I would recommend either one. If you were already selling via Clickbank, then you would go that direction, but it wouldn't work otherwise.

And, if you're using a third-party shopping cart, it may have an affiliate option built in. For instance, ThriveCart has a very nice affiliate tracking system built right in.

In The End, The Keys Are...

If you have a membership site and you run all your sales through that membership, then it just makes sense for your affiliate program to be right there, built into your site.

Sending affiliates to some off-site setup on another domain makes it more complicated for them and for you.

Creating a membership site with WordPress has become quite popular. It is definitely my recommended way to go. And, having your members (whether free or paid) be able to access your affiliate program right inside their member portal is about as easy as it gets.

It also means that you can manage everything right from one place.

I used AffiliateWP to set this up and I very eagerly began to phase out iDevAffiliate. And that makes me happy. 🙂

Now that you've seen the innards of how the Blog Marketing Academy affiliate program now works, do you want to become an affiliate?

If you're already a member, just log in. Head on over to the Affiliate Center and get activated.

If you're not a member, you can sign up for a limited membership for free. You'll get access to some free stuff inside the LAB, but you'll also be able to then access our affiliate center. Click here to create your free membership.

About David Risley
David Risley is the founder of the Blog Marketing Academy, a 20-year veteran blogger and online entrepreneur. His focus? Building a reliable, recurring business around his "lifestyle" and the lives of his students. He has this weird obsession with traveling in his motorhome around the country with his wife and 2 kids. David also likes to talk about himself in the third person. In bios like this one. Read his full story.