Skip to content

fix(woocommerce-memberships): prevent membership expiry if there's another active subscription#4009

Merged
adekbadek merged 2 commits intotrunkfrom
fix/membership-expiry-and-sub
Jun 27, 2025
Merged

fix(woocommerce-memberships): prevent membership expiry if there's another active subscription#4009
adekbadek merged 2 commits intotrunkfrom
fix/membership-expiry-and-sub

Conversation

@adekbadek
Copy link
Copy Markdown
Member

@adekbadek adekbadek commented Jun 2, 2025

All Submissions:

Changes proposed in this Pull Request:

WooCommerce Memberships has the ability to tie a membership to a subscription. If there are multiple subscriptions, the most recent one will be tied to a membership. The status of the membership will be tied to this subscription's status – even if there are other active subscriptions.

This PR adds special handling for this case – if there is another active subscription (with the same product), upon the tied subscription's cancellation, the membership will be tied to the active subscription.

NPPM-2023

How to test the changes in this Pull Request:

  1. On trunk,
  2. Set up a subscriptions product granting a membership
  3. Buy two subscriptions, confirm one membership has been created
  4. Cancel the more recent subscription
  5. Observe the membership is expired 🙁
  6. Switch to this branch, repeat, observe that the membership remains active and is tied* to the previous order and subscription

* See "Member since" column in Memberships list UI

Other information:

  • Have you added an explanation of what your changes do and why you'd like us to include them?
  • Have you written new tests for your changes, as applicable?
  • Have you successfully ran tests with your changes locally?

@adekbadek adekbadek added the [Status] Needs Review The issue or pull request needs to be reviewed label Jun 2, 2025
@adekbadek adekbadek requested a review from a team as a code owner June 2, 2025 08:31
@adekbadek adekbadek force-pushed the fix/membership-expiry-and-sub branch from 51566ef to 1a849ff Compare June 13, 2025 07:43
@github-actions github-actions bot added [Status] Approved The pull request has been reviewed and is ready to merge and removed [Status] Needs Review The issue or pull request needs to be reviewed labels Jun 26, 2025
@adekbadek adekbadek merged commit 6b42cbd into trunk Jun 27, 2025
8 checks passed
@adekbadek adekbadek deleted the fix/membership-expiry-and-sub branch June 27, 2025 11:01
@github-actions
Copy link
Copy Markdown

Hey @adekbadek, good job getting this PR merged! 🎉

Now, the needs-changelog label has been added to it.

Please check if this PR needs to be included in the "Upcoming Changes" and "Release Notes" doc. If it doesn't, simply remove the label.

If it does, please add an entry to our shared document, with screenshots and testing instructions if applicable, then remove the label.

Thank you! ❤️

matticbot pushed a commit that referenced this pull request Jul 3, 2025
# [6.12.0-alpha.1](v6.11.2...v6.12.0-alpha.1) (2025-07-03)

### Bug Fixes

* **menu:** don't hide sponsors menu if the user can't see the newspack dashboard ([#4041](#4041)) ([f988bd2](f988bd2))
* saving name when registering user ([#4050](#4050)) ([498028e](498028e))
* **woocommerce-memberships:** prevent membership expiry if there's another active subscription ([#4009](#4009)) ([6b42cbd](6b42cbd))

### Features

* **capabilities:** add caps for RSS Feeds ([#3908](#3908)) ([2620c54](2620c54))
* **collections:** add hierarchical fields ([#4051](#4051)) ([3f5a704](3f5a704))
* **collections:** allow overriding "collection" names and slugs ([#4033](#4033)) ([f5523b0](f5523b0))
* **collections:** support multiple CTAs in collections meta ([#4049](#4049)) ([d445444](d445444))
* modal checkout for My Account's reorders ([#3988](#3988)) ([fd347bc](fd347bc))
* **my-account:** subscription payment notice ([#4029](#4029)) ([4b78d7f](4b78d7f))
* **rss:** Custom Tracking snippet ([#4047](#4047)) ([2e682c5](2e682c5))
* **rss:** Hooks extending RSS ([#4055](#4055)) ([da97ff4](da97ff4))
* **rss:** Skip non-distributable images ([#4052](#4052)) ([9fdfe78](9fdfe78))
* show "deleted" label on segments if list, subscription, or plan was deleted [NPPM-2031] ([#4021](#4021)) ([4dec8bb](4dec8bb))
* **woocommerce:** rename WooCommerce Payments to WooPay ([#4048](#4048)) ([1528cad](1528cad))
@matticbot
Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 6.12.0-alpha.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

matticbot pushed a commit that referenced this pull request Jul 14, 2025
# [6.12.0](v6.11.3...v6.12.0) (2025-07-14)

### Bug Fixes

* **menu:** don't hide sponsors menu if the user can't see the newspack dashboard ([#4041](#4041)) ([f988bd2](f988bd2))
* saving name when registering user ([#4050](#4050)) ([498028e](498028e))
* **woocommerce-memberships:** prevent membership expiry if there's another active subscription ([#4009](#4009)) ([6b42cbd](6b42cbd))

### Features

* **capabilities:** add caps for RSS Feeds ([#3908](#3908)) ([2620c54](2620c54))
* **collections:** add hierarchical fields ([#4051](#4051)) ([3f5a704](3f5a704))
* **collections:** allow overriding "collection" names and slugs ([#4033](#4033)) ([f5523b0](f5523b0))
* **collections:** support multiple CTAs in collections meta ([#4049](#4049)) ([d445444](d445444))
* modal checkout for My Account's reorders ([#3988](#3988)) ([fd347bc](fd347bc))
* **my-account:** subscription payment notice ([#4029](#4029)) ([4b78d7f](4b78d7f))
* **rss:** Custom Tracking snippet ([#4047](#4047)) ([2e682c5](2e682c5))
* **rss:** Hooks extending RSS ([#4055](#4055)) ([da97ff4](da97ff4))
* **rss:** Skip non-distributable images ([#4052](#4052)) ([9fdfe78](9fdfe78))
* show "deleted" label on segments if list, subscription, or plan was deleted [NPPM-2031] ([#4021](#4021)) ([4dec8bb](4dec8bb))
* **woocommerce:** rename WooCommerce Payments to WooPay ([#4048](#4048)) ([1528cad](1528cad))
@matticbot
Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 6.12.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

released on @alpha released [Status] Approved The pull request has been reviewed and is ready to merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants