Skip to content

Commit 1f92bad

Browse files
Merge pull request #20027 from mozilla/PAY-3507-churn-offers-losing-params-if-user-is-signed-out
fix(payments-next): The “Resubscribe and save x%” button link from the "Stay Subscribed" email offer is losing some parameters if the user is not signed in on the account.
2 parents 6339047 + 9034fe7 commit 1f92bad

7 files changed

Lines changed: 33 additions & 1 deletion

File tree

apps/payments/next/app/[locale]/subscriptions/[subscriptionId]/loyalty-discount/cancel/error/page.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ export default async function LoyaltyDiscountCancelErrorPage({
3636
`${config.paymentsNextHostedUrl}/${locale}/subscriptions/landing`
3737
);
3838
redirectToUrl.search = new URLSearchParams(searchParams).toString();
39+
redirectToUrl.searchParams.set(
40+
'redirect_to',
41+
`/${locale}/subscriptions/${subscriptionId}/loyalty-discount/cancel/error`
42+
);
3943
redirect(redirectToUrl.href);
4044
}
4145

apps/payments/next/app/[locale]/subscriptions/[subscriptionId]/loyalty-discount/cancel/page.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@ export default async function LoyaltyDiscountCancelPage({
3131
`${config.paymentsNextHostedUrl}/${locale}/subscriptions/landing`
3232
);
3333
redirectToUrl.search = new URLSearchParams(searchParams).toString();
34+
redirectToUrl.searchParams.set(
35+
'redirect_to',
36+
`/${locale}/subscriptions/${subscriptionId}/loyalty-discount/cancel`
37+
);
3438
redirect(redirectToUrl.href);
3539
}
3640

apps/payments/next/app/[locale]/subscriptions/[subscriptionId]/loyalty-discount/stay-subscribed/error/page.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ export default async function LoyaltyDiscountStaySubscribedErrorPage({
3232
`${config.paymentsNextHostedUrl}/${locale}/subscriptions/landing`
3333
);
3434
redirectToUrl.search = new URLSearchParams(searchParams).toString();
35+
redirectToUrl.searchParams.set(
36+
'redirect_to',
37+
`/${locale}/subscriptions/${subscriptionId}/loyalty-discount/stay-subscribed/error`
38+
);
3539
redirect(redirectToUrl.href);
3640
}
3741

apps/payments/next/app/[locale]/subscriptions/[subscriptionId]/loyalty-discount/stay-subscribed/page.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@ export default async function LoyaltyDiscountStaySubscribedPage({
3131
`${config.paymentsNextHostedUrl}/${locale}/subscriptions/landing`
3232
);
3333
redirectToUrl.search = new URLSearchParams(searchParams).toString();
34+
redirectToUrl.searchParams.set(
35+
'redirect_to',
36+
`/${locale}/subscriptions/${subscriptionId}/loyalty-discount/stay-subscribed`
37+
);
3438
redirect(redirectToUrl.href);
3539
}
3640

apps/payments/next/app/[locale]/subscriptions/[subscriptionId]/offer/error/page.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ export default async function InterstitialOfferErrorPage({
3434
`${config.paymentsNextHostedUrl}/${locale}/subscriptions/landing`
3535
);
3636
redirectToUrl.search = new URLSearchParams(searchParams).toString();
37+
redirectToUrl.searchParams.set(
38+
'redirect_to',
39+
`/${locale}/subscriptions/${subscriptionId}/offer/error`
40+
);
3741
redirect(redirectToUrl.href);
3842
}
3943

apps/payments/next/app/[locale]/subscriptions/[subscriptionId]/offer/page.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ export default async function InterstitialOfferPage({
3535
`${config.paymentsNextHostedUrl}/${locale}/subscriptions/landing`
3636
);
3737
redirectToUrl.search = new URLSearchParams(searchParams).toString();
38+
redirectToUrl.searchParams.set(
39+
'redirect_to',
40+
`/${locale}/subscriptions/${subscriptionId}/offer`
41+
);
3842
redirect(redirectToUrl.href);
3943
}
4044

apps/payments/next/app/[locale]/subscriptions/landing/route.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,16 @@ export async function GET(
1717
const requestSearchParams = request.nextUrl.searchParams;
1818
const { locale } = params;
1919

20+
const redirectToParam = requestSearchParams.get('redirect_to');
21+
requestSearchParams.delete('redirect_to');
22+
23+
const redirectToPath =
24+
redirectToParam && redirectToParam.startsWith('/')
25+
? redirectToParam
26+
: `/${locale}/subscriptions/manage`;
27+
2028
const redirectToUrl = new URL(
21-
`${config.paymentsNextHostedUrl}/${locale}/subscriptions/manage`
29+
`${config.paymentsNextHostedUrl}${redirectToPath}`
2230
);
2331
redirectToUrl.search = requestSearchParams.toString();
2432

0 commit comments

Comments
 (0)