Restrict the display of Advanced Custom Fields (ACF) fields by Membership Level

Advanced Custom Fields PluginAdvanced Custom Fields is a popular plugin available in the WordPress.org Plugin Repository. The plugin allows you to add structured information to your posts, pages, and more.

This guide explains three primary methods to hide or show fields based on the membership requirements for the post.


Option 1: The pmpro_hasMembershipLevel() function.

Since the ACF plugin requires you to add custom PHP functions to your theme’s template files, one of the easiest ways to restrict the display of fields is to wrap your entire display in the pmpro_hasMembershipLevel() function. Here’s an example of using the function in your template files:

You can read full documentation on the pmpro_hasMembershipLevel() function here.


Option 2: The pmpro_has_membership_access() function.

Similar to the option above, this method will look to the post’s required membership levels. You won’t need to specify the level IDs when using this function, it will inherit the membership protection from the “Require Membership” metabox for that post. Here’s an example of using the function in your template files:


Option 3: The acf/format_value Filter

If you’re using version 5+ of the Advanced Custom Fields plugin, you can write a single function that will filter all fields on a member-protected page. This code will uses the acf/format_value filter to check first if the user has access to the post and will then optionally restrict the display of the field.

Note that this will not restrict the display of any custom HTML you have in your page templates, but it is a simple solution that won’t require editing all of your theme files.


If you need help altering these recipes to suit your needs, feel free to get in touch with one of our Support Engineers on our Member Support Forum.

Allow members to optionally exclude their profile from the Member Directory

This code will add an “Exclude my profile from the member directory” field at membership checkout when using the Member Directory and Profile Pages Add On for Paid Memberships Pro.

"Exclude my profile from the member directory" field at checkout.


About the Recipe

The Member Directory and Profile Page Add On includes functionality to allow members to remove their profile from display. This field is added by default as a field on the user’s WordPress Profile. The recipe below adds that field at membership checkout (note that this recipe requires the Register Helper Add On).


The Code Recipe

This code recipe requires a Plus Account or higher.

View Membership Options

Integrate your membership site with 1,000+ third party apps via Zapier.

We’ve just launched our Zapier Integration in the WordPress Plugin Repository. You can now unlock integration with loads of third party apps offered via Zapier to send or receive data in your Paid Memberships Pro-powered membership site.


What is Zapier and what are Zaps?

Zapier is a service that moves info from one application to another. Think of it as a bridge that can connect your website to an external application or service.

Zapier uses the term ‘zap’ to refer to the basic connections that automate a process for you (a trigger with an event). Our Zapier Integration includes support for sending data from your membership site to an external application as well as receiving data from an external application into your Membership site.

View the Add On


What are some popular integrations I can set up using this Add On?

The more you familiarize yourself with Zapier and its supported apps, the more you will be able to imagine potential ways to extend your membership site. The Add On documentation page offers more details on what data is available via the integration, as well as the possible “actions” and “triggers” you can use in Zapier.

A few of the more popular ways we see Paid Memberships Pro working with Zapier to SEND data include:

  • Populating and Updating Google Sheets with new lead information from your Paid Memberships Pro site.
  • Integrate with a third-party email marketing program, like ActiveCampaign or Campaign Monitor, where there isn’t an existing Add On for PMPro.
  • Send member information to a CRM system like HubSpot or Salesforce.
  • Adding new lead information to an email sent to your Gmail address so you can personally follow up with your members.
  • Create invoices from membership orders in your QuickBooks Online account.

If you’re looking to RECEIVE data into your Membership site, some possibilities include:

  • Leverage a third-party gateway system such as ClickFunnels to sell membership and create accounts on your site.
  • Update a user’s membership level when they participate in social activities or register via third party apps.
  • Check a member’s level before providing access to a third party service.

Explore the Add On Documentation

Show a Member’s Level Name in Post Comments

When a member posts a comment on your site, the recipe below will display their Membership Level name following the comment author’s name.

This can be useful for many membership sites, specifically sites that have multiple tiers of membership which equate to a member’s status, skill-level or denote a relationship to your company.

The author name is also updated in the Comments section of the admin dashboard so you can tell what membership levels users have when approving pending comments. This has been particularly useful for us on our own site to tell which of our blog post commenters are paying members.

Show member level name next to author name in comment

This page requires a PMPro Core Account or higher.

Already have an account? Login Now »

New to this site? Register Now »

New BuddyPress Integration for Membership Communities using Paid Memberships Pro

We’ve just launched our BuddyPress Integration in the WordPress Plugin Repository. You can now restrict access to specific features of your BuddyPress community by membership level, allowing you to build a custom, private, and flexible members-only community.

View the Add On


BuddyPress Integration for Paid Memberships Pro WordPress PluginBuilding a Membership Community with your WordPress Site

BuddyPress adds community features to WordPress, including Member Profiles, Activity Streams, Direct Messaging, Notifications, and more. What many of you have already implemented via custom coding is now possible with one easy-to-use plugin.

With the help of this integration plugin, membership sites running Paid Memberships Pro can now take advantage of the following features:

  • Redirect users without access to a specific page which can be used to explain the community features and sell community membership.
  • Level-specific settings to restrict access to BuddyPress features including Group Creation, Single Group Viewing, Groups Page Viewing, Joining Groups, Public Messaging, Private Messaging, Send Friend Requests, Listing in the Directory.
  • Assign members to groups in BuddyPress.
  • Restricted access settings for users without a membership level.
  • Option to use the BuddyPress Registration process.
  • Assign “member types” by Membership Level.
  • Display a Member’s Level Name on their BuddyPress Profile.

Migrations Steps for Sites Using a Custom-Coded Solution

Prior to this Add On’s release, we did offer a custom-code solution to restrict BuddyPress access to Members. If you are using a custom solution loaded via a Plugin for PMPro Customizations, below are the steps to migrate to the new Add On-based solution.

  1. Locate the custom code in your Customizations Plugin.
  2. Uncomment or Remove the custom code. We recommend saving a copy of the code as a backup.
  3. Install and activate the BuddyPress Add On for Paid Memberships Pro.
  4. Configure the Add On settings per your unique restriction goals. Read the documentation page for help on setting up the Add On.

Screenshots

This slideshow requires JavaScript.


Explore the Add On Documentation
 

Preparing for Gutenberg: the New WordPress v5.0 Editor

GutenbergA new post editing and customization experience named “Gutenberg” is coming to WordPress. This post shares how the team at Paid Membership Pro is preparing, planning, and designing for the editor’s release to offer better tools and options for membership sites running our plugin.


What is Gutenberg and how can I learn more about it?

Unless you’ve been hiding under a rock, you’ve probably heard the name and maybe know a bit about the new Gutenberg editor. Gutenberg is an open source project currently offered as a WordPress Plugin. It’s being developed on GitHub and will soon be included as a core feature of WordPress.

The Gutenberg editing experience revolves around “blocks”.

These blocks are a unified way to style content that currently requires shortcodes, embeds, widgets, post formats, custom post types, theme options, meta-boxes, and other formatting elements. By allowing rich customization without deep knowledge of code, blocks make good on the promise of WordPress: broad functionality with a clear, consistent user experience.
via WordPress.org

You can read and learn more about Gutenberg in the official handbook. If you want to learn even more, check out WP Tavern’s post on A Collection of Gutenberg Conversations, Resources, and Videos.


How does Gutenberg work with Paid Memberships Pro?

We know that some Page Builders for WordPress have specific integration considerations when using Paid Memberships Pro. We want your to know that we have tested the latest release of Gutenberg and everything in Paid Memberships Pro works as expected. Everything that works in the current editor is going to work in the new editor.

Gutenberg is largely coded in JavaScript. Some parts of that code don’t interact with the server-side PHP at all. For example, Blocks are defined in JavaScript. And so if you wanted to limit Blocks by membership level, you would need to run that filter in the JavaScript. Going forward, the PHP-based hooks and filters we use to protect WordPress content and features won’t be enough to protect all of the things being done in JavaScript.

The future of WordPress is JavaScript, so Paid Memberships Pro needs to build tools for protecting content in JavaScript. This is an important consideration for our developers and other contributors to the Paid Memberships Pro open source project.


How can Paid Memberships Pro offer Gutenberg support?

We see lots of possibilities for custom PMPro blocks in Gutenberg, and there’s huge potential to extend our core membership plugin as well as our Add Ons.

Here are a few interesting ways we hope to leverage Gutenberg Blocks for PMPro:

  1. Gutenberg Blocks for all shortcodes.

    Any shortcode in Paid Memberships Pro will have a Block equivalent, including the plugin-page shortcodes. The new Blocks will be easier to move around in your page design and can have intuitive settings for customization.

  2. Break plugin-page shortcodes into several Blocks.

    Instead of one shortcode used per plugin page, we plan to break some of our shortcodes into multiple blocks? For example, our [pmpro_account] shortcode currently has a sections attribute, allowing you to customize the display of the membership, profile, invoices, and links areas of that page. Each of these sections could be its own block, making it easier to reposition and tweak them individually.

  3. Block-level Content Restriction

    The current [membership] shortcode allows you to wrap and restrict post content for specific membership levels. We plan to create a Membership Block with settings for the specific level IDs, status, session, and more. You would then be able to nest Blocks within this parent Block and design totally unique content based on the user viewing the page.

  4. Built-in Templates for best practice layouts for your membership sales pages.

  5. Gutenberg gives you the ability to define “Block Templates”, which are groups of Blocks in a preset layout. Block Templates will be a great way to share popular page layouts for landing pages, sales pages, pricing tables and more. We will find (and develop if necessary) the layouts best optimized for conversions to share with our users.

  6. Register Helper Fields as Blocks

    We know that our users would love a drag-and-drop interface for Register Helper. We are working to create a simplified (non-code) based custom user fields structure using Gutenberg Blocks. Custom user meta fields will be visually inserted into the Checkout Page for capture at Membership Checkout, or into the Member Directory and Profile Pages for a unique layout customized to your site’s member data?


What can you do with Gutenberg NOW?

Insert the Shortcode Block with GutenbergIf you’re using Paid Memberships Pro and would like start using Gutenberg for your WordPress editing experience, follow the steps below:

  1. Install and activate the Gutenberg plugin via Plugins > Add New > “Gutenberg”. “>[Download Link]
  2. Edit your Pages under Memberships > Page Settings.
  3. Insert a the “Shortcode” block located under Blocks > Widgets.
  4. Move the page’s appropriate shortcode into the Shortcode Block.
  5. Update the page.
Note that for the “Checkout” page to preview properly, you must add a Level ID to the URL (i.e. /membership-checkout/?level=1).


Video: Using Gutenberg to design the Membership Account Page

I made a brief and basic video of how you can use the [pmpro_account] shortcode sections to create a column-type layout for your membership account page. This is not how we plan to offer Gutenberg support in the future, but for now it does give you a glimpse of what is possible. There’s no background music or narration – so please play your own tunes 🙂


We will continue to post updates on the blog here as we make progress on these efforts.

Set a Specific Checkout Level When Using Addon Packages

Our Addon packages extension allows you to sell access to individual pages or posts, or sell a la carte items for a flat fee.

This recipe will allow you to set a specific checkout level to use when a non-member selects to purchase one of your Addons. Previously, the plugin simply included logic to select the “first least expensive membership” level assigned to the post.

This page requires a PMPro Core Account or higher.

Already have an account? Login Now »

New to this site? Register Now »

Improve the user experience (and increase signups) when using the Limit Post Views Add On

I recently helped two members in our support forums add some interesting and useful user-experience improvements to their sites. Both members are using the Limit Post Views Add On to give visitors or low-tier members the ability to view a limited number of restricted posts.

Continue reading to see how you can leverage this Add On to create a notification bar with a countdown of post views remaining or trigger the display of a popup using the popular Popup Maker plugin for WordPress.


About the Limit Post Views Add On

This Add On sets a cookie for each visitor to track their views. The plugin’s settings page allows you to set the number of visits per “term” for non-members as well as for each membership level. It will allow visitors or members limited access to view posts they do not already have access to view. Once the user’s view limit is reached, they are redirected to the assigned page (most people select the Membership Levels page).

View the Add On


Notification “Countdown” Bar

This nifty recipe will add a countdown, showing members just how many more post views they are allotted. Once the limit is reached, the user will be redirected as specific in the Add On’s settings.

The Code Recipe: Option 1

This code recipe requires a Plus Account or higher.

View Membership Options


Trigger a Popup when Limit is Reached

This next recipe integrates with the Popup Maker plugin available in the WordPress repository. Once the limit is reached, the user will be redirected to the specified page and the popup will trigger.

You can add any content you would like to this popup, perhaps even try using the [pmpro_signup] shortcode to give users a streamlined way become members. The only important piece for the Popup Maker settings is to set the “Conditions” to show only on the redirected page ID (usually the Membership Levels page).

Limit Post Views - Popup Maker Triggered

This code recipe requires a Plus Account or higher.

View Membership Options

10 Popular Pricing Models for Membership Sites

As you begin to build a membership or subscription business online, one of the first decisions you need to consider is pricing. More specifically, what type of pricing model do you want to use for your business?

This post aims to cover the most popular pricing models for membership-type businesses.

  1. Fixed Term Membership
  2. Recurring Subscriptions with Fixed Price per Period
  3. Front-loaded Membership Pricing
  4. Installment Plans
  5. Free or Reduced-rate Trial Periods
  6. Lifetime Membership
  7. Group Pricing / Sponsored Membership / Umbrella Plans
  8. Addon Pricing Models
  9. Utility Pricing
  10. Donations or “Pay What You Want” Membership


Remember: Price should always match the value.

Before you even begin to drool over the idea of hordes of members paying you a recurring fee each week or month, ask yourself how your membership business delivers value to its members. Is value delivered evenly over the lifetime of membership? Is the majority of value delivered in the first months of membership?

The answer to this basic question is what determines how you price your membership options. Pricing your membership or subscription options in a way that is contrary to the value delivered is a set up for failure—you do not want members to stop and ask themselves, “Hey, why am I still paying for this?” That’s a sure way to create a bad feeling and lose members.

If you’d like to read more about this topic, Jason wrote a post earlier all about this that included some case studies.

Here’s another way to think about value pricing: how much do you want to make?

Now this may seem like a silly question, the answer to which is “As much as I can possibly make!” But if you are truly honest with yourself, you should be able to set a realistic revenue target or goal. Using this revenue target, you can back into membership pricing (and possibly even refine your business model).

For example, let’s say you set a revenue target at $30,000 per month. This could be achieved via several pricing models:

  • 750 members paying you $10/week.
  • 1,000 members paying you $30/month.
  • 835 or so new members per month committed to paying you $36/year.

Which of these is most achievable given the premise of your membership site? How can you deliver value along the timeline of your membership to retain these members? Is it possible for you to grow to a member base of this size?

If you’re still thinking about pricing from this high level, you might want to read Jason’s series on pricing that starts here before diving into the details below.

If you have an idea of the type of pricing you want or otherwise just want to browse through the options below, continue reading. Here are some common pricing models we have seen used for member-based businesses.


Fixed Term Membership

In this pricing model, the membership level has a set term with expiration. Members must renew to maintain membership. We often see this pricing model used for set term of the calendar year (January 1 to December 31). This is a comment pricing model for traditional Associations and Organizations as well as benefactor groups that report membership on an annual basis and require people to “renew” that term each year.

You can do some creative things with this pricing model, such as offer a discount for early renewal, a discount for purchase a multi-year membership in advance, or even prorate membership for people who sign up mid-term.

For more reading on this model, see:


Recurring Subscriptions with Fixed Price per Period

This is a very popular model of membership pricing, where a specific price is charged “per month” or “per year” for the life of membership. Most payment gateways also allow pricing per week or custom periods like every 3 months, every 60 days, etc.

Recurring subscriptions work well for newsletter-based businesses, sites with content written by “experts” or coaches, as well as online social communities and listings sites.

The important caveat to this type of membership pricing is that you continue to deliver value each term. If your members are paying you monthly, you better be certain that there is “new stuff” (good new stuff) delivered to the member each month.

This model is very easy to set up with the base Paid Memberships Pro plugin. You would achieve this by setting an initial payment and recurring subscription of the term of your membership.


Front-loaded Membership Pricing

Jason is a fan of front-loaded pricing models—where a higher amount is charged at signup, then a lower rate is charged each term. This can be a single up front higher cost, or an installment (i.e. $100 per month for the first 3 months then $15 per month).

This is a key model to consider if your answer to when value is delivered is “mostly in the first few months” (or weeks). I see this pricing model for health and fitness sites aimed at weight loss or a software businesses with a “get started” rate then maintenance rate.

For more reading on this model, see:


Installment Plans

Installment plans are a bit like the front-loaded membership, but they do not have the ongoing recurring payment. This model is useful if you need to charge a high price but know that your customers cannot afford that large expense in one payment. I have seen this model used for executive coaching, training programs, and the sale of physical goods.

This model is very easy to set up with the base Paid Memberships Pro plugin. You would achieve this by setting an initial payment and recurring payment of the term of your membership, with a “payment limit”. You can optionally set an expiration date on membership as well. Let me break this down for a membership level that you want to charge $400 for over the course of 4 months and maintain the user’s membership for 1 total year.

  • Initial Payment: $100
  • Recurring Subscription: $100 per 1 month
  • Billing Cycle Limit: 3
  • Expires in: 1 Year

One caveat of an installment plan is that you want to lock a member in to paying for the full installment. If you’ve giving a customer a $400 physical product, and they cancel membership in the second month, you’re out a big chunk of money. See this guide for help on locking a user from changing their level during the installment period: Methods to Block Users from Logging In, Selecting or Changing Membership


Free or Reduced-rate Trial Periods

We aren’t a big fan of this pricing model, but it is one you see a lot in the wild. [Jason: I’m a fan of free trials if your goal is to get more people using your service or product. When you’re actually ready to make a profit, switching to a model that charges based on true value of your product up front is best in my opinion.]

In general, the free trial model charges a lower rate for the first few terms of membership, hoping to hook the customer into maintaining their membership after the trial ends. I have see this model used in a lot of online software and tools, but also for “subscription boxes” (get your first box – just pay shipping!), and other digital communication or financial tools.

In all of these cases, its important to remember that you must prove the worth of your full price membership during the trial period. You don’t want to price yourself so high that people aren’t able to maintain membership at the full rate, and you don’t want to deliver all the value of membership during the trial so there’s no reason for them to stay on.

If you’re a fan of the membership trial model, we strongly suggest offering a reduced rate trial instead of a completely free trial. This forces your members to be a bit committed to your product and can help insulate you from the workload created by loads of free trial members that never really intended to stick around.

For more reading on this model, see:


Lifetime Membership

You can add a “lifetime” option to almost any pricing model you select. Sometimes a reduced-price lifetime plan is offered for a limited time as an incentive for early adopters. Sometimes the lifetime plan is always available for customers who just want to pay once without worrying about recurring subscriptions.

To figure out what to charge for your lifetime plan, you would take some multiple of your monthly membership, perhaps 30x a monthly membership or 2.5x an annual membership rate. Ideally, your lifetime plans should result in the same “customer lifetime value” as someone paying per period. So having a good estimate of your renewal rates and customer lifetime value will help you to find the sweet spot.

Sometimes a higher-priced lifetime plan can be used as a decoy and will not be selected by a significant number of people, but will make your regular price look like a better deal. We’ve heard from some sites with lower-volume, higher-priced lifetime plans report that “every once in a while you get a little bonus when someone chooses the lifetime option”.

This model is very easy to set up with the base Paid Memberships Pro plugin. You would achieve this by simply setting an one-time initial payment on the membership level with no recurring subscription or expiration.


Group Pricing / Sponsored Membership / Umbrella Plans

This model is useful when you have a breakdown of individual members as well as corporate or company-type members. For this model, you would take your individual member pricing and offer a value to the parent account that is purchasing more than one membership at a time for a team of people. For example, you could offer a single membership for $125 per month and then a group license of $500 for a 5-member organization.

For more reading on this model, see:


Addon Pricing Models

In this “build your own” membership model, users may be charged a base price, then have the option to select additional membership features. These features may be added interest groups for a newsletter or blog category subscription, or a la carte features of membership, such as an annual resume review service, a consultation phone call or other “one-off” products. We have seen this model used for traditional newspapers that offer an online and optional physical printed edition.

For more reading on this model, see:


Utility Pricing

In this pricing model, users are charged based on some kind of consumption metric. You may recognize this model as used by most email marketing services that charge based on number of members in your list. Cloud hosting companies might charge based on the disk space and/or bandwidth used.

We wanted to include this pricing model even though Paid Memberships Pro doesn’t offer utility pricing in the core plugin or any of our add ons. It can be a smart model if the cost to you as a business is truly based on a member’s usage. Some gateways like Stripe and Braintree allow you to adjust a user’s subscription amount whenever you like. Others like PayPal offer changes within a certain range. With some custom coding, you could track the metric you need to calculate the monthly/annual total, generate an order for that, and then attempt to resolve that order against the customers credit card stored at the gateway.


Donations or “Pay What You Want” Membership

If you go the route of a donation-based membership, its best to enter into things with low expectations. These types of membership sites are often run by producers who would be doing their thing regardless of payment. If you’re a passionate product reviewer or write your own digital music and just want to get your stuff out there, then asking for optional donations can be a positive way to make a modest income without the pressure of a traditional membership model.

We like the “Pay What You Want” model, especially if you put some social pressure on your potential members: “Most people pay $5 per month.” Another option is to include bonuses above a certain amount to encourage higher revenue per sale.

For more reading on this model, see:


Now put on your thinking cap.

I hope this post has exposed some of the traditional and not-so-traditioanl ways you can price your new membership or subscription-based business. And don’t feel shy about changing a pricing model for an existing business—we did that here at Paid Memberships Pro when we really did some thinking about value pricing. The majority of our value is delivered in the first few months of membership, when the support customer is just getting their membership business off the ground. We offer a discounted annual renewal rate because there is ongoing value delivered via our blog posts, code recipes, and continued development to the Plus Add Ons.

Let’s keep the conversation going in the comments below.


Other Posts on Pricing