Our newly extended Custom Level Cost Text Add On allows you to modify the default level cost text per level, per discount code, or globally via advanced settings.

Watch the Video Demo

Special shout-out to David!

The enhancements to this add on were completed by our summer intern, David. This was the first project that David worked on with our team here at PMPro, and we’re very impressed with the end result. David is a Computer Science student at Haverford College (our CEO Jason Coleman’s alma mater).

How it Works

This plugin adds a “level cost text” field to Membership Levels and Discount Codes, allowing you to override PMPro’s default level cost text. When crafting your custom level cost text message, you can use completely custom text or variables based on the level or discount code’s settings.

You can also modify the cost text globally via Advanced Settings. These settings include some of the “most requested” changes to your level price statement:

  • Remove the word “now” from level cost text.
  • Use the word “Free” (or its translation) instead of $0.00.
  • Use “/” instead of “per”.
  • Hide unnecessary decimals. (removes the “.00” portion of the monetary value)
  • Abbreviate billing periods “Month”, “Week”, and “Year” to “Mo”, “Wk”, and “Yr”

Better Level Cost Text with a Better Levels Page

You can use this add on in conjunction with the Advanced Levels Page Shortcode Add On to really tighten up the appearance of your pricing pages. The Custom Level Cost Text Add On filters not only the price on the membership checkout page, but also on your levels page and in emails to the member.

I achieved the price appearance in the screenshot above by setting the Memberships > Advanced Settings to use the word “free”, use “/” instead of “per”, and use abbreviations for billing periods.

View the Add On


Comments (1)

The function for the “hide unnecessary decimals” option in this add-on is leaving the element open causing all text after the pricing form to be bold.

As a quick fix, I went into the pmpro-level-cost-text.php file and added .”” to the $cost variable. This throws on some duct-tape and fixes the issue. I didn’t dive deep into it, I just needed to fix the issue at hand.

Here is the function in its entirety:

if(pmpro_getOption(‘pmpro_hide_decimals’) == ‘Yes’){
if ( ! empty( $pmpro_currency )
&& is_array( $pmpro_currencies[$pmpro_currency] )
&& isset( $pmpro_currencies[$pmpro_currency][‘decimal_separator’] ) ) {
$decimal_separator = $pmpro_currencies[$pmpro_currency][‘decimal_separator’];
} else {
$decimal_separator = ‘.’;

$parts = explode( $decimal_separator, $cost );
if ( ! empty( $parts[1] ) && $parts[1] == 0 ) {
$cost = $parts[0].”“; // Addition to close element.

Leave a Reply

For faster support related to issues on your specific site please open a ticket in our members support area.

Your email address will not be published. Required fields are marked *