The terms membership and subscription are often used interchangeably. However, they represent two different business models.
Depending on your target audience location, your location, and your business type, the word subscription could be more appropriate for you.
This code recipe uses the WordPress gettext
filter to replace the word membership to subscription throughout the Paid Memberships Pro Plugin.

Understanding gettext
This code recipe uses the gettext
and ngettext
filters in WordPress. These are two powerful filters that let you override translatable text across your site.
What is gettext
?
In WordPress, any text that’s marked for translation can be filtered before it appears on the page. The gettext
filter allows developers to catch that text and swap it out—without editing core files or rewriting templates.
In this recipe, we’re using gettext
to:
- Look for specific words or phrases like “Membership Level” and “membership”.
- Replace them with “Subscription” when the source of that text is Paid Memberships Pro (
paid-memberships-pro
or an Add On with apmpro-
text domain).
About the Code Recipe
This customization updates the wording across your site wherever PMPro outputs the word membership, making your terminology more aligned with a subscription-based model. It’s a lightweight, non-invasive method to adapt plugin language to suit your branding or audience expectations.
While PMPro includes “Membership” throughout its UI, this recipe helps you tailor the experience for industries where the term “subscription” feels more natural.

If neither membership nor subscription fits your site’s needs, you can edit the code by replacing subscription with your preferred label.
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.
Note: This is not a fool proof method. It is a quick way to modify most plugin-generated text to your needs. If you need to totally overhaul the wording, consider customizing plugin-generated pages or writing your own “translation” file.
To ensure the email variables !!membership_level_name!!
are not translated incorrectly when sent, save the email template as-is by navigating to your email templates options. Select the email template and click Save Template.