-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cancel Purchase: show marketplace subscriptions dialog. #65596
Cancel Purchase: show marketplace subscriptions dialog. #65596
Conversation
This is still WIP, I am having a problem getting the |
Here is how your PR affects size of JS and CSS bundles shipped to the user's browser: Sections (~1063 bytes added 📈 [gzipped])
Sections contain code specific for a given set of routes. Is downloaded and parsed only when a particular route is navigated to. Async-loaded Components (~380 bytes removed 📉 [gzipped])
React components that are loaded lazily, when a certain part of UI is displayed for the first time. Legend What is parsed and gzip size?Parsed Size: Uncompressed size of the JS and CSS files. This much code needs to be parsed and stored in memory. Generated by performance advisor bot at iscalypsofastyet.com. |
The intention is that marketplace subscriptions are note removed when canceling a purchase. They should remain functional until subscription expires and plan gets removed. I haven't updated the copy at all though here. |
…ove_marketplace_plugins_when_plan_cancels
When following the Cancellation flow instead of the Removal flow (reference here), the following modal will be displayed: |
Question asked in the linked task to confirm the approach before proceeding |
…iptions will expire" This reverts commit bc7edc4.
I have uploaded some changes to handle Marketplace subscription removal and cancels. I have refactored a bit the The following video has been recorded with a test done cancelling a plan that is more than 14 days old and it was paid using credit card umCeYHmzkEJQSPP0kqUB3bxbyiBV0unOUjFmxrV2.mp4 |
The following video has been recorded showing the flow when the system allows Cancel and Refund: VbeJwFGZNxCfVMqWxBa8T6G09WvQKurHFuMm60Mi.mp4In this scenario both the Plan and the Plugins are refunded |
The modal though still has the wrong content, it should look like this
The plugin should not get refunded if the refund period has passed.
If I Cancel my plan:
|
…ove_marketplace_plugins_when_plan_cancels
Heads up, after the following changes https://github.com/Automattic/wp-calypso/pull/68088/files the logic of |
The previous behaviour is kept using defaults when no text is passed as props
@cpapazoglou thanks for the wording suggestions. I have changed them but maybe we should update it again to cover additional scenarios. Regarding the logic implemented, I think it is correct but the description was not accurate. Let me summarise it: Removal flow:This has not changed as part of this PR. When the user removes a plan, everything seems to be removed. This could be handled in a follow-up task if it is not correct. Cancellation flow
Please see this video with a scenario with:
With the above logic, that means that some subscriptions could be refunded and removed immediately and some others will be just cancelled. Should we adapt the wording of the Dialog to the following more generic?
|
The plugin subscriptions should depend to the plan being refundable or not, since when the plan is refundable and gets refunded it will get removed, site will get downgraded, plugins will be unusable. In this case (copying exactly what you have suggested which is correct) : For each subscription:
But if the plan is not refundable, it won't get removed - it might even expire after 364 days. In this case, plugins should not get refunded - removed. For each subscription we should disable auto-renew and make sure the user is aware.
Yes, feel free to adapt as needed. |
Ok, that makes sense. Thanks for your input! I am going to update the logic to: Cancellation flowUser cancels a plan which is refundable:
User cancels a plan which is not refundable:
|
Otherwise, only cancel the plugin but do not refund
The logic has been updated to reflect the latest comments. The Dialog wording has been kept generic: |
Thanks for wrangling this @epeicher! |
Co-authored-by: Harris Papazoglou <hrrsppzgl@gmail.com>
Co-authored-by: Harris Papazoglou <hrrsppzgl@gmail.com>
This Pull Request is now available for translation here: https://translate.wordpress.com/deliverables/7561230 Thank you @cpapazoglou for including a screenshot in the description! This is really helpful for our translators. |
Translation for this Pull Request has now been finished. |
Proposed Changes
Testing Instructions
Scenario 1: Cancel and Refund:
Cancel
flow instead ofRemove
in the wordings.Continue
Scenario 2: Cancel:
Cancel
flow instead ofRemove
in the wordings.Continue
Scenario 3: Removal flow (this is to check there is no regression in existing functionality):
Remove Plan & All Subscriptions
Pre-merge Checklist
Complete applicable items on this checklist before merging into trunk. Inapplicable items can be left unchecked.
Both the PR author and reviewer are responsible for ensuring the checklist is completed.
Fixes #65235