Web Analytics

Building a Membership Site With WordPress: Best Practices

by Jason Unger, Founder

Photo by Josh Eckstein via Unsplash

One of the reasons we love WordPress is its extensibility: you can build almost any type of website using it.

We’ve built e-commerce stores, multilingual sites, comparison shoppers, lead generation engines, landing pages, and so much more using WordPress.

The only limit is your imagination.

So if you’re looking to use WordPress to build a membership site, it’s totally doable. In fact, it’s a great choice.

Here’s how you can make the most out of your membership site using WordPress.

Manage Users with BuddyPress

BuddyPress is often considered the red-headed stepchild of WordPress; not because it’s bad or doesn’t do what it’s supposed to do, but because it’s never gotten the love that the greater WordPress ecosystem has.

Originally envisioned as a way to transform your WordPress site into a social network, BuddyPress has advanced user management, profile editing, and login and logout capabilities that simplify making a membership site.

There are certainly features in BuddyPress not every membership site needs (like activity and status updates), but those are easy to disable and don’t prevent you from using the core membership functionality.

BuddyPress’s Extended Profiles allow you to capture the right data on your users, while giving them the ability to easily update their own information and privacy settings.

One of the most important things about BuddyPress is that it makes your registration, login, and logout process a front-end feature. Rather than making site users login to the “back-end” of WordPress, BuddyPress makes the registration and login functions part of the front-end of your site.

Theme My Login Seamlessly Integrates Login

With BuddyPress moving the registration and login process to the front-end of the site, Theme My Login – a plugin we’ve discussed before – allows you to completely brand it to fit the rest of your site.

You don’t want your membership site users to feel like they are logging into a third-party system or into a traditional site back-end; their experience should be the same whether they’re logging in, viewing a piece of content, editing their profile, or signing up for the first time.

Theme My Login takes the design and layout of your site’s default page template and uses that as a frame around all of the important membership actions. It also has extensions for redirecting users after login, custom notifications, and more.

Creating an Approval Process

Depending on your community, you may need to create an approval process so that potential users aren’t activated until a site administrator reviews them.

If you use BuddyPress, there’s a default function that allows users to activate their own accounts; let’s assume you don’t want that. Instead, you’ll want to create a function that sends an activation key to the new user, confirms that the key is correct when the user clicks an activation link, and then notifies the site administrator that there’s a new user pending.

I won’t show all the code (it’s quite a few lines long), but the general gist is this:

  • Disable the default BuddyPress activation email by filtering bp_core_signup_send_activation_key
  • Hook into bp_core_signup_user and use wp_mail to email the new user an embedded activation key
  • When the user clicks the activation link, confirm it’s the activation key stored in their signup fields
  • Show the user confirmation or verification text
  • Send an email to the site administrator that there’s a new user waiting to be approved

Every approval process is different, so feel free to reach out to us if you need help with the code snippets.

Add Publishing with ACF or Gravity Forms

If your membership site should include the ability for users to create content like articles, events, or job postings, there are two approaches we recommend you take: Advanced Custom Fields and its acf_form function, or the Gravity Forms extension Advanced Post Creation.

Both methods work great and give you pretty granular control over content submissions, so it’s simply a matter of how much coding you want to do.

If your site already uses Gravity Forms and you’re relatively familiar with it, then the Advanced Post Creation extension is a great choice. Simply create a form with all of the fields needed to generate your user-submitted content – title, content, etc. – and embed it into your post submission page. Then, edit the form to sync up the submitted fields with the correct WordPress fields, set your notifications and confirmations, and you’re good to go!

You can even use Advanced Post Creation to allow for the submission of third-party post types, such as WooCommerce products and events from The Events Calendar.

If your site isn’t using Gravity Forms and you’re comfortable getting your hands on actual code, then using acf_form from Advanced Custom Fields will let your users both submit and edit their own content. It’s incredibly flexible, so you can pass along different post types, redirect URLs, custom field groups, and much more.

Not sure how to get started building out a membership site with these recommendations? Reach out to us — we’re here to help.

Avatar photo
About Jason Unger

Jason Unger is the Founder of Digital Ink. He built his first website on Geocities, and hasn't looked back since. Digital Ink tells stories for forward-thinking businesses, mission-driven organizations, and marketing and technology agencies in need of a creative and digital partner.

Other Stories You May Like

What’s your story?

Let’s share it with the world.

Let’s Do This

Close Window
All the Cool Kids are Doing it

Sign Up for the Digital Ink Newsletter

All the cool kids are doing it.