Simple proration for membership upgrades and downgrades to adjust initial payment at membership checkout and maintain a member’s payment date if applicable.
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.