Paid Memberships Pro Proration Addon GPL Overview:
Simple proration for membership upgrades and downgrades to adjust initial payment at membership checkout and maintain a member’s payment date if applicable.
How it Works
When a member chooses to downgrade, the initial payment is set to $0 and they are downgraded to the newly selected level immediately. The member’s existing recurring payment date remains the same. When the next recurring payment is due, the member will be charged for the level they downgraded to.
Downgrades are defined as having an initial payment less than the current level but can be altered via the pmpro_is_downgrade filter. It assumes that the level’s initial payment is equal to the billing amount.
When a member chooses to upgrade to a level with the same billing period settings, they are charged a prorated amount at checkout based on the number of days left in the current payment period and prices of the old and new levels. The member’s recurring payment date remains the same, and the subscription is changed to charge the new amount.
When a member chooses to upgrade to a level with different billing period settings, they are charged the initial payment of the new level minus a credit based on how many days are left in their current payment period and the subtotal from their last order. The member’s recurring payment date is reset to one (new level) payment period from the date of checkout.
Some Background on Proration
By default, Paid Memberships Pro does not calculate prorated payments. We made this decision because we found that different sites typically require different proration rules. With this Add On, we’ve tried to implement the most common rules, while allowing for further customization through custom code.
How We Calculate the Prorated Amount (Technical Info)
The Proration Add-On uses different rules depending on if the new level has the same payment period (e.g. monthly to monthly) or a different payment period (e.g. monthly to annual).
Different Payment Period
Credit is calculated based on the subtotal from their last order * the % of time left in their current payment period.
The user is charged the (initial payment of the new level) – (the credit amount)
In this case, we DO NOT tweak the pmpro_profile_start_date. The new subscription is setup by default to renew one (new level) payment period from the date of checkout.
Reviews
There are no reviews yet.