How We Created a Complex Member Site for an Association in WordPress

complex membership in wordpress

We were recently asked to design and build a website for a new not for profit association, and below are the details of how we addressed the specific client needs and solved their membership sign up problem.

The client’s site was built in WordPress (and we love Wordrpress), so it made sense to keep it on the platform, and bolt on the right plug in to manage member sign ups, and access to member-only pages.

There are many out-of-the box options for building a member website in WordPress, but the problem (as we found out) is they are designed to build out a mass audience with one level of membership. One person pays, and that person gets access to protected content for however long they are a member – a month, or year.

Complex membership needs

Of course, if you are running a professional association, they just don’t work that way. A professional association has more complex needs such as:

Multiple levels of membership

There might be a ‘Standard’ member, a ‘Premium’ member, ‘Student’ member, ‘Associate’ member, and ‘Company’ member. Each would have its own member pricing, and possibly different access to content on the site.

A searchable directory of members

Most out-of-the-box plug ins don’t offer this – again they are assuming a completely different member model.

But for an association, a directory is a critical feature for the public to find and verify members. The plug-ins we found that do offer a directory, weren’t terribly flexible, with no ability to add in custom fields. (Maybe you need to show multiple office locations? Or show industry credentials?) 

Having a flexible directory will let you sort and search for members with fields that make sense – for example: by city, by company name, membership level, by first or last name, by languages spoken. A flexible directory will also let you adjust the sort order in searches, showing the Premium members first, then the Standard members.

Ability to approve members once they sign up

If its a professional association made up of credentialed members, then the association will likely want to verify the applicant is real, and not a random person who just paid for the membership. So when a person signs up, we need to process the payment, but then ‘hold’ the member for approval.

Ability to automatically renew memberships year after year 

If there isn’t an auto renew function, chasing after memberships every year becomes a huge pain, and almost certainly negatively impacting annual renewals. 

If an admin person is sending three reminder emails to lapsed members, and processing fees manually – its a huge drain on their time. Far better to send out renewal notifications, and charge the credit card on file.

OK, so how did we build it?

Well, as we said, the standard membership plug-ins were not going to work. So we went our trusty custom post type builder, Toolset. We’ve used this paid plug-in for years on various sites for building out databases, so it was a natural choice.

Toolset let us create all the user types we wanted, and would let us give different access for each type of user, if we ever needed it. It also let us add on any custom fields we wanted, such as languages spoken.

It also let us create a solution for ‘company’, where a company would include standard members within it. When users signed up as a company, (typically done by an admin person), the company would have a contact person, and get links for however many standard memberships would be attached to it.

Collecting payments for membership subscriptions

The most reliable way to collect payments in this case is Woocommerce (for the shopping cart and subscription features), plus Stripe to do the credit card transactions. (The site was designed and built for a Canadian association. Payment choices where you are may be different.)

Woocommerce subscription subscriber problem

The only hang up we had here was Woocommerce’s subscription plug in only understands one type of subscription level. Whether you signed up as a Premium user, or a Student – Woocommerce always ended up making the user a ‘Subscriber’. The subscription plug in was going to make reminder notifications and renewals easy, we we really wanted to find some way of making this work.

With some good support from Toolset, we were able to add some PHP to get it to understand and keep the right user role when they signed up.

We did have some other ways of doing this, but we’re happy we were able to make Woocommerce’s subscription plug in work.

Client side and member support 

As much as we all would like to run a complex membership site hands-free, some admin work is still required on the client side. In this case, members need to be approved manually (a requested feature) – so someone needs to be in charge of receiving those notification emails, and has site access to approve new members. 

Inevitably, there will be various member requests that will come up over time that will require some service: 

  • Requests to upgrade / downgrade memberships. This can be made self-serve, but the ‘company’ membership scenario complicates that. This particular association has about 500 members, so it shouldn’t be unmanageable.
  • Users who want to edit their public info. They can do this themselves in the system, but not everyone is web savvy, and someone will need some handholding to get it changed.
  • Writing notifications. There will be about a dozen emails that will need to be written, from the initial ‘welcome’ email, to ‘sorry your application to join has been rejected’ email. Know this will need to be taken care of before launch.

Website maintenance 

If you are contemplating an online membership system, the internal organization support, as well as support from your system provider, will be ongoing. Aside from annual web hosting fees and regular software updates, issues do crop up from time to time that will need attention. So just be aware of this as you put together your annual IT budget. 

Launching the online membership system

If your site has existing paying members, you’ll need to decide how to handle that. We can import in member details, but decisions will need to be made about renewal dates. The system can be configured so everyone keeps their own annual renewal date, or it can be set so everyone renews on the same date. 

Summing up

So can a membership website with complex needs be designed and built in WordPress? Yes, for sure! Just not out of the box. With the right tools (and team!) you can get the membership website you need, and streamline your membership operations. 



Need some help on your project? Get in touch!

Kyle Loranger is an Edmonton graphic designer who has been running his own firm since 1994. 

Kyle Loranger Design
#201 10132 124 Street NW,
Edmonton, Alberta T5N 1P6
Phone: (780) 413-9237

Office Hours:
Monday to Friday
8:30am – 4:30pm

Meetings by Appointment