GET NOTIFIED WHEN ITEM IS UPDATED
€ 2.76
Paid Memberships Pro: Proration Simple proration for membership upgrades and downgrades to maintain a member’s pamynet date and adjust initial payment at membership checkout.
- 1 Year Free Update.
- Unlimited Domain Usage
- Update Notifications On Email
- Quick help through Whatsapp & Email
- Original GPL Product From the Developer
- Get this Product for Free in Membership
- LIVE DEMO
Last Updated - 31 May 2026 @ 8:13 AM » Changelog
Description
How it Works Paid Memberships Pro: Proration
When a member chooses to downgrade, the initial payment is set to $0 and the downgrade is delayed until the next payment date. The member’s current recurring payment date remains the same. On the day of their next recurring payment, the add on will change their membership level to the lower level.
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 billing amount.
When a member chooses to upgrade to a level with the same billing period settings, they are charged a pro-rated amount at checkout based on the number of days left in the current payment period and prices of the old and new level. 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 be 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 It Calculates the Prorated Amount (for those technical folks)
The 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).
Same Payment Period
The system considers two factors:
- (a) What they should pay to have the new level for the remaining days in the current period = $level->billing_amount * $per_left.
- (b) What they should have paid for days they’ve had the current level this payment period = $clevel->billing_amount * $per_passed.
The user is charged what they need to pay = (a) (b) – (what they already paid on the last order).
In this case, we also hook into pmpro_profile_start_date to make sure the user’s recurring payments happen on the same dates they were meant to. In practice, the day may adjust by one or two days to account for months with different numbers of days.
Different Payment Period
A 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.
Changing the Default Behavior with Custom Code
The plugin contains some WordPress filters to adjust the behavior of the code.
pmpro_is_downgrade( $is_downgrade, $old_level, $new_level), return true if the new level is a downgrade from the old level
Additional information
| . - Product type | WP PLUGIN ADDON |
|---|---|
| . - License | GPL LICENSE |
| . - Brands | Paid Memberships Pro |
| . - Update | 1 YEAR UPDATES |
Only logged in customers who have purchased this product may leave a review.
Use Coupon Code FLAT20 to get a 20% discount on all Items | Expiring APR 30th

Reviews
There are no reviews yet.