Notes from the changelog for the most recent update: 1.4.8.

Development Changelog for Paid Memberships Pro Release Updates
  • Fixed !!siteemail!! values for email templates.
  • Adjusted display of “processing” message next to checkout button when clicked.
  • Added billing_country to orders table in DB and the memberorder class. Handling countries better through the code.
  • Removing closing ?> at the bottom of various files while working through. This can avoid errors on some setups.
  • Using wp_enqueue_style to load plugin stylesheets now.
  • Added the pmpro_getCheckoutButton($level_id, $button_text, $classes) function and shortcode to add buttons with links to more easily level checkout pages into your pages and themes. Copied over btn and btn_primary styles from Member Lite theme.
  • Updated include/require statements to work if the wp-content folder has been renamed or moved.
  • Added code to load scripts in the services folder via admin-ajax.php. (Helps when the plugins folder is not where PMPro expects it to be.)
  • The discount code AJAX call is using the new service URL (/wp-admin/admin-ajax.php?action=applydiscountcode).
  • Added IPN/Silent Post/Webhook instructions to payment settings page.

And here are the past few updates.


  • Fixed some notices in the PayPal gateway code.
  • No longer calling Stripe JS at checkout if the level is free.
  • Fixed some HTTPS handling for ISS hosting. (IIS sets $_SERVER[‘HTTPS’] to “off” or “on” instead of TRUE or FALSE.)
  • Added #pmpro_processing_message to checkout page which is shown when the submit button is clicked. You can override the message with the pmpro_processing_message filter. You can tweak the CSS to show this differently as well.


  • No longer trying to setup a subscription with Stripe for levels with only an Initial Payment amount.
  • Updated recaptchalib.php, which fixes issues with using recaptcha.
  • Now setting the first_name and last_name meta fields at checkout to match the business first and last name. (Previous scripts to add additional first/last names to the checkout field should override these.)
  • Updated the save profile code to only null out the expiration date for a membership if a blank expiration is explicitly passed through the form. If you had other plugins allowing users to edit their profile, etc, it might not have been passing the expiration date and thus updating users expiration dates. Admins and users would have gotten emails.
  • Some updates to applydiscountcodes.php service to support plugging into how discount codes function. Added the pmpro_discount_code_level filter to applydiscountcodes.php.

  • Removed debug calls to krumo() which would cause fatal errors in certain situations. Please upgrade. (Note that PMPro versions that go three dots deep are usually the most important ones 🙂