The WP-Members PayPal Subscription extension has received an update today. This is version 0.9.6. This post highlights the changes in this version.
Sets existing installs to cURL IPN listener by default
In the previous version of the plugin, the IPN listener was updated to use WP’s Remote Post API. This is a cleaner processing of the IPN and it does not require your host to have cURL installed. However, so users had reported issues with the new listener. The previous cURL listener was still included as an option, but was set to the Remote Post version by default. This update reverts existing installs (upgrades) to use the cURL listener by default, with the option to switch to the Remote Post version. All new installs will be set to Remote Post by default with the option to enable the cURL version. (Note: the listeners are very similar, and both have been fully tested and are working on the dev system, so in most cases it’s just a matter of preference.)
Improved handling of renewal reminder scheduled event through deactivation/reactivation
The plugin process previously would maintain the renewal reminder setting through deactivation/reactivation. However, this let to a potential error since the plugin’s object would be undefined. To improve this, the plugin was updated to remove the scheduled event if the plugin was deactivated, requiring it to be manually enabled if the plugin was reactivated. Since plugin updating as well as testing often requires both deactivation and reactivation, an improved process was put in place to maintain the scheduled event setting for renewal reminders (if enabled) and restore the existing setting if the plugin is reactivated.
Action and filter updates
wpmem_ipn_failed action. This fires if the IPN does not result in a successful transaction. It is essentially the same as
wpmem_ipn_success but fires if the success action does not.
The existing (pre-filtered) HTML for the PayPal button is now passed as an additional argument to the
wpmem_exp_success_msg filter. This is particularly helpful if you need to change/filter the button HTML (such as removing it from the existing message), so you don’t have to parse through the string.
Added [wpmem_exp_invoice_table] shortcode
This shortcode will display a table of the currently logged in user’s invoices. This is the same as the component in the user profile view, but as a completely separate shortcode for installations that need a custom implementation.
Recurring billing changes
Some of the plugin’s messaging, such as links to renew, did not make sense in the recurring billing configuration. The messaging for these screens has been changed and updated for a better user experience. Now instead of the “renew” link (which was not necessary, and therefore confusing to the user), it directs the user to PayPal to “manage subscription”. There are some other messaging changes depending on how the plugin is configured between basic and recurring billing, and whether there is a trial, and if the trial is paid or free.
Related to the changes with the recurring billing, and the IPN listener testing, I have gone through every possible combination of configuration between basic and recurring billing, with no trial, with a free trial, and with a paid trial to confirm that each works as it should. Each process was improved from both a messaging standpoint as well as error verification in the IPN listener.
Additionally, I have added a new IPN logging process that stores each IPN message in the database. This will eventually replace the flat text log file and will store the full IPN message. There will be further enhancement of the process, eventually removing the old log file process.