Project

General

Profile

Actions

Bug #9720

open

Renew buttons showing for auto recurring subscriptions with a grace period

Added by krileon 2 days ago. Updated 1 day ago.

Status:
Resolved
Priority:
Immediate
Assignee:
Target version:
Start date:
24 September 2025
Due date:
% Done:

100%

Estimated time:

Description

When an auto recurring subscription expires the grace period is intended to allow time for webhooks to pay the subscription. However during that period the renew button still shows! This can cause users to end up paying twice! Once manually then finally when the auto recurring payment completes. This button, and renewals entirely, for auto recurring payments MUST be suppressed during grace period.

Actions #1

Updated by krileon 2 days ago

This should also not mislead the user into thinking their subscription is expired. It should show as a pending state and note it's pending payment.

Actions #2

Updated by krileon 2 days ago

Looks like this should already be the case, but the $this->autorecurring_type !== 2 check is failing as $this->autorecurring_type is returning 0 in checkIfRenewable() for some reason. Needs more investigation.

Actions #3

Updated by krileon 2 days ago

The checkRenewalUpgrade() is being called multiple times with different objects of the same subscription, but different $this->autorecurring_type values. Looks like cache pollution.

Actions #4

Updated by krileon 2 days ago

Ok, tracked down to $realStatus reporting expired while still technically active due to grace period. Going to completely need new code to deal with this for autorecurring subscriptions specifically as we don't want people manually renewing them during grace period.

Actions #6

Updated by krileon 2 days ago ยท Edited

  • File Screenshot 2025-09-24 125345.png added
  • File Screenshot 2025-09-24 112917.png added
Actions #7

Updated by krileon 2 days ago

  • File deleted (Screenshot 2025-09-24 112917.png)
Actions #8

Updated by krileon 2 days ago

  • File deleted (Screenshot 2025-09-24 125345.png)
Actions #9

Updated by krileon 1 day ago

  • Status changed from Assigned to Resolved
  • % Done changed from 0 to 100

Fixed in MR !371

Actions

Also available in: Atom PDF