Automattic / wp-calypso

The JavaScript and API powered WordPress.com
https://developer.wordpress.com
GNU General Public License v2.0
12.43k stars 1.99k forks source link

Checkout: Show information about expiration dates (at least when renewing subscriptions that already expire far in the future) #93966

Open DavidRothstein opened 3 months ago

DavidRothstein commented 3 months ago

What

When I go to renew a subscription, even one that expires far in the future, all I see in checkout is this:

checkout-renewal

There isn't anything telling me the current expiration date, or the new expiration date after I renew. And there isn't anything in the fine print (terms of service section) at the bottom of checkout showing me that either.

Maybe we should add something to display that -- at least when the subscription's current expiration date is far enough in the future that we think there's a reasonable chance the user is renewing by accident?

Why

This might help reduce cases where a customer accidentally renews their subscription more than once, and then needs help to restore it to the intended state.

Internal background discussion: pNPgK-6h2-p2#comment-26428

How

No response

github-actions[bot] commented 3 months ago

Support References

This comment is automatically generated. Please do not edit it.

michaeldcain commented 3 months ago

From planning:

This seems like a good improvement to go ahead and action. Let's start by conservatively showing the current and new expiration dates under the following conditions:

sirbrillig commented 3 weeks ago

Currently most of the expiry and renewal info for shopping cart items (for example, the next renewal date) is, for historical reasons, inside the terms_of_service in the cart, rather than listed alongside the cart item. Some day I'd like to move it to the relevant cart item instead but even now it is possible to associate the two. However, the terms_of_service property is not set for products which don't have "promotional pricing" data, so this might be a good time to try at least copying some of those dates (and maybe prices) to the cart items instead.

sirbrillig commented 3 weeks ago

Just for a proof-of-concept, here's what I see for a plan renewal if I just disable two guards inside the shopping cart serializer which only allow add terms_of_service to introductory offers. I've made no frontend changes.

Image

That might be the fastest way to address this issue, although it's not very obvious in the UI. Maybe we should consider adding something new to the line item UI for a renewal.

sirbrillig commented 3 weeks ago

I've made a diff to add two dates to every shopping cart item: D165321-code adds subscription_expiry_date and subscription_auto_renew_date. They're the same dates used by terms_of_service but will be present even for products which do not have an introductory offer (though we still hide them for domain transfers and multi-year domains). If that works well we can make a UI in checkout to display one or both of those dates alongside the cart item.

sirbrillig commented 3 weeks ago

https://github.com/Automattic/wp-calypso/pull/96091 is an attempt to show these dates in checkout. I'll get some feedback on the design before putting up for review.

Image