This recipe adds a checkbox field at Membership Checkout which allows members to subscribe to multiple membership levels in a single checkout process.
Users can select to opt-in to additional levels by checking a box on the membership checkout form. After completing checkout, the chosen levels are added to their base membership.
Table of contents
About the Code Recipe
This code recipe is designed to add a checkbox to let any user add a specified membership level as an option at checkout, in addition to the base membership level they have chosen to purchase.
The code recipe includes two separate functions:
- The first function adds the checkbox field with a customizable label. The user’s selection is stored in user meta just like any custom user profile field.
- The second function extends how the user field is stored via a custom
save_function
for user fields. In this function, the membership level is added to the user (at no additional charge) if they have selected the box at checkout.
The best way to understand the usefulness of this code is through an example. Let’s say you offer a paid premium membership level with several protected categories of content. You could certainly give everyone all of the content, but that won’t give you much in terms of member analytic data.
With this code, you can offer additional protected categories of content as bonus selections on the user’s default membership. These categories are free to join for anyone with another active paid level.
At checkout, this code gives users the option to add on additional categories (linked to free membership levels) to include with their premium membership. With this approach, you as the admin get better visibility into which members are choosing to add which content. You can filter your members list by users that chose to add on each additional content type (level).
This method also means that you can leverage all the features of our email marketing integrations for subscriber tagging as well as advanced automations where the user’s membership level is used to check access.
Members can adjust their preferences and “added levels” on the frontend Member Profile Edit screen.
The Code Recipe
Adding the Recipe to Your Website
You can add this recipe to your site by creating a custom plugin or using the Code Snippets plugin available for free in the WordPress repository. Read this companion article for step-by-step directions on either method.
Adjust the level IDs throughout the recipe for your needs. In this code, the example level that gets added is ID 2. This ID is set in several places within the recipe and user field unique name. You can find your level IDs by navigating to Memberships > Settings > Levels.
Free Course: Membership Site Development—The Basics
Develop a deeper understanding of membership site development in this beginner-level course. Learn how to make your site work better, save yourself time and money, and improve your site's performance.