How to customize membership pricing in WordPress
WordPress does not include membership pricing controls, so your membership plugin must handle the charge. Set the initial payment, recurring amount, billing period and discounts in the plugin, then customise the displayed cost text with its settings, a supported filter or an add-on.
- 01Separate price from price text
- 02Edit the membership level price
- 03Configure discount pricing separately
- 04Use the manual display route
- 05Check every customer-facing location
- 06Add no-code control if needed
What you need
- An active WordPress membership plugin
- Administrator access to WordPress
- A payment gateway connected if the membership is paid
- A staging site or recent backup for code changes
Separate price from price text
Decide whether you need to change the amount members are charged, the way that amount is described, or both. A price such as an initial payment followed by a recurring subscription is controlled by the membership level. Wording such as “Join for $20 per month” is presentation text.
Do not use custom wording to hide a recurring charge, trial condition or expiry rule. The amount shown before payment should match what the gateway will charge.
Edit the membership level price
Open your membership plugin’s level editor and update the fields for the initial payment, recurring subscription, billing amount, billing cycle and expiry. Save the level, then check whether the plugin applies changes only to new checkouts. Paid Memberships Pro, for example, states that changing an existing level does not alter recurring subscriptions already held by members.
Use separate levels when the access or billing model is genuinely different. Do not create a new level just to change a headline if the underlying membership is the same.
Configure discount pricing separately
If you offer a coupon, edit the discount code’s pricing rules rather than changing the public level price. In Paid Memberships Pro, a discount code can override the level’s initial payment, recurring subscription, trial and expiry settings, so review every affected level before publishing the code.
Test the code in a private browser window. A common Friday problem is updating the public price but forgetting that an old discount code still overrides it at checkout.
Use the manual display route
If your site already uses Paid Memberships Pro and you only need different cost wording, add a small customisation through a custom plugin or a maintained snippets tool. The pmpro_level_cost_text filter changes the cost text generated for checkout and receives the level data, including pricing adjusted for a discount code.
Keep the code outside the parent theme so a theme update does not remove it. This route is fine for one short, stable wording change, but it needs developer care when you add trials, discounts, multiple billing periods or new checkout contexts. Never return a statement that contradicts the real charge.
Check every customer-facing location
Review the membership levels page, checkout page, confirmation page, account page and the emails sent after signup. A filter or template change may affect only some of these locations, while a plugin’s pricing-text feature may cover more of them. Use a test level or a test account and check both the normal price and a discounted price.
Also inspect mobile layout, currency formatting and recurring terminology. If you change the actual level price, confirm the checkout total and the payment gateway receipt, not just the marketing page.
Add no-code control if needed
For Paid Memberships Pro, the Custom Level and Discount Code Cost Text Add On provides global display adjustments under Memberships > Settings > Advanced, plus per-level and per-discount-code cost text fields. It supports placeholders for values such as the initial payment, billing amount and billing period, and is intended for display across levels, checkout and system emails.
Choose this route when non-developers need to maintain pricing messages or when the same wording must stay consistent across several member-facing screens. It changes the statement shown to users; the actual charge still comes from the level or discount pricing settings.
Let Paid Memberships Pro do it
No-code control over membership cost statements across levels, discounts, checkout, and emails; ideal when pricing messaging needs customization.
Sources
- paidmembershipspro.com /documentation/membership-levels/initial-membership-level-se…
- paidmembershipspro.com /documentation/settings/discount-codes/?utm_source=openai
- paidmembershipspro.com /hook/pmpro_level_cost_text/?utm_source=openai
- paidmembershipspro.com /add-ons/pmpro-custom-level-cost-text/?utm_source=openai
Questions
- Can I change membership pricing without a plugin?
- No, WordPress core has no membership-level or recurring-payment pricing system. You need a membership or e-commerce plugin to calculate access, charges and renewals. If that plugin exposes a filter, a developer can change the displayed cost text manually, but code alone does not safely create subscriptions, process payments or manage renewals.
- What is the difference between changing the price and changing the cost text?
- Changing the price changes what the member is charged. Changing the cost text changes the explanation shown on a level page, checkout screen or email. Treat the text as a confirmation of the real billing rules, including the initial payment, recurring amount, trial and billing period, rather than as a replacement for those settings.
- Why does the old price still appear after I edit a membership level?
- The old price can remain because existing recurring subscriptions usually keep their original billing terms, even after the level is edited. Caching, a discount code, a custom pricing table or an email template can also show older text. Test as a new visitor, clear relevant caches and check the active discount rules before changing existing member subscriptions.
- Can custom pricing text hide a recurring payment?
- You should not use custom pricing text to hide a recurring payment. The displayed statement needs to make the initial charge, recurring amount and billing period clear enough for a member to understand what will be charged. Incorrect wording can create disputes even when the payment gateway processes the amount configured in the membership level.