Paid-Memberships-Pro_v1-8Paid Memberships Pro v1.8 is ready to download.

We’re releasing the early beta version download to users on our site before making the update publicly available on the WordPress Plugins Repository.

Why Beta? Because it’s a big update.

We’ve deployed v1.8 on a few closely monitored client sites and are resolving any small bugs. If you would like to be part of this beta, you can download v1.8 now.

To begin using v1.8, use an FTP client or similar tool to change the folder name of ‘paid-memberships-pro’ in your ‘/wp-content/plugins’ folder to ‘paid-memberships-pro-old’. Then you can upload the newly downloaded ‘paid-memberships-pro’ v1.8 plugin folder to that directory. Renaming the previous version simply gives you the ability to revert back if necessary.

The full list of updates and fixes is detailed below. Most important to note are that v1.8 has overhauled the integration of payment gateways. This means that gateways are now “modularized” and should make it easier for us or other developers to contribute new gateways. We’ll be drafting a new doc on how to add gateways to Paid Memberships Pro shortly.

This release also offers better handling of member cancellations. There are some fixes for currency handling as well as translation/localization updates and a new German translation.

Finding (and squashing) bugs.

If you encounter any bugs while using v1.8, please post as comments here or on GitHub.

What’s New and What’s Updated?

  • ENHANCEMENT: Payment gateway classes updated so all settings and checkout fields are processed via the gateway class file. This will make it easier to maintain, update, and add new gateways.
  • ENHANCEMENT: Added a pmpro_after_membership_level_profile_fields hook after the “Membership Level” field dropdown on the edit profile page.
  • ENHANCEMENT: Added new statuses for orders when cancelled. cancelled = cancelled by user on cancel page or via gateway, cancelled_admin = cancelled by an admin, expired = cancelled via expiration script, level_change = user upgraded/downgraded to a different level.
  • ENHANCEMENT: All gateways use the $pmpro_currency global instead of getting the value via pmpro_getOption.
  • ENHANCEMENT: Changing South African Rand (ZAR) to use the symbol R to the left of prices. (Thanks, Rasada)
  • BUG: Fixed some translation issues on the checkout page and in level cost text. (Thanks, Jenkisan)
  • ENHANCEMENT: Added plural forms of Day, Week, Month, Year to es_ES translation. Other translation files will need to as well.
  • BUG: Fixed bug where the $short parameter of pmpro_getLevelCost wasn’t shortening the output in some cases. (Thanks, Kimberly Coleman)
  • BUG: Fixed warning in membership dropdown on edit user/profile page. (Thanks, Thomas Sjolshagen)
  • ENHANCEMENT: Added German (de_DE) translation files. (Thanks, Cedros)
  • ENHANCEMENT: Added settings links to plugins page.
  • BUG: Fixed bug in Safari for iOS where checkout submission would fail after choosing “Not Now” when prompted to save the card.
  • ENHANCEMENT: Added user row actions to the members list and orders list in the dashboard. Add actions using the pmpro_memberslist_user_row_actions and pmpro_orders_user_row_actions filters which work the same as the core WP user_row_actions filter.

Download v1.8 BETA now

Comments (11)

Upon loading the homepage of our test site with v1.8 BETA – I’m seeing two PHP notices now.

Strict Standards: Declaration of PMProGateway_payflowpro::void() should be compatible with PMProGateway::void(&$order) in /Users/nick/Sites/wordpress/wp-content/plugins/paid-memberships-pro/classes/gateways/class.pmprogateway_payflowpro.php on line 587

Strict Standards: Declaration of PMProGateway_paypal::void() should be compatible with PMProGateway::void(&$order) in /Users/nick/Sites/wordpress/wp-content/plugins/paid-memberships-pro/classes/gateways/class.pmprogateway_paypal.php on line 676

So far so good. I added a new filter called “pmpro_stripe_create_subscription_array” inside class.pmprogateway_stripe.php, LINE 1408.

This is to allow other plugins to modify the subscription object before sending to Stripe. This is most useful for setting a custom ‘trial_end’ timestamp inside Stripe (which cannot be done inside the Stripe plan object).

The Stripe plan object only lets you set a number of ‘trial_period_days’ — which is not granular enough if you want subscriptions to renew at a specific time of day — like noon or 3pm or whatever.

Here is my very minor addition to the code:

$subscription = array(“plan” => $order->code);
$result = $this->customer->subscriptions->create(apply_filters(‘pmpro_stripe_create_subscription_array’, $subscription));


Dear Jason,
I would like ask. When arriveing v2.0 or multi level site addons??
Beacause I would like use your program, multi level site.

Thanks Marci

Hi Ja son. As you know I have a lot of customizations that make use of your handy hooks and filters. I’ve tested this thoroughly and have not run into any problems at all. Good job! A question, however: for those of use who have made custom versions of such pages as Checkout and Levels, what do you recommend? Mine all work and do what I need them to do, but I suspect that at some point I should revisit them and figure out if I’m missing something.

Still no support for clickbank payment gateway? I wonder why…i want to setup a new membership site and I’m going back and forth between s2Member and PMPro…don’t know which to choose

Thanks for testing, gab. “No Data Received” is not a WordPress error – nor is it an error we’re seeing in our own testing. Perhaps its related to your server or browser. Some info came up for known Chrome errors and fixes for that message when I did a Google search. Let us know if anything solves your issue so we can help others who may experience it.

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 *