Skip to content

Commit 602728f

Browse files
authored
Merge pull request #1415 from guardian/cancellation-reasons-update
Update cancellation reasons for SupporterPlus and Recurring contributions
2 parents 984f8e5 + cffb40d commit 602728f

File tree

11 files changed

+192
-134
lines changed

11 files changed

+192
-134
lines changed

client/components/mma/cancel/cancellationReason.ts

+3-13
Original file line numberDiff line numberDiff line change
@@ -34,27 +34,17 @@ export type CancellationReasonId =
3434
| 'mma_better_offer'
3535
| 'mma_issue'
3636
| 'mma_financial_circumstances'
37-
| 'mma_cost_of_living'
38-
| 'mma_cutting_subscriptions'
3937
| 'mma_payment_issue'
40-
| 'mma_article'
38+
| 'mma_price_increase'
4139
| 'mma_editorial'
4240
| 'mma_benefits'
4341
| 'mma_value_for_money'
4442
| 'mma_support_another_way'
45-
| 'mma_prefer_lower_amount'
46-
| 'mma_prefer_less_frequent'
47-
| 'mma_direct_debit'
48-
| 'mma_one_off'
49-
| 'mma_wants_monthly_contribution'
50-
| 'mma_wants_annual_contribution'
5143
| 'mma_health'
5244
| 'mma_break_from_news'
5345
| 'mma_values'
54-
| 'mma_no_need'
55-
| 'mma_dont_know_what_for'
5646
| 'mma_other'
57-
| 'mma_membership_cancellation_default'
58-
| 'mma_cancellation_default';
47+
| 'mma_cancellation_default'
48+
| 'mma_membership_cancellation_default';
5949

6050
export type OptionalCancellationReasonId = CancellationReasonId | undefined;
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
import {
2-
financialCircumstances,
3-
standardAlternateFeedbackIntro,
4-
} from '../cancellationConstants';
1+
import { shuffleArray } from '@/client/utilities/utils';
2+
import { standardAlternateFeedbackIntro } from '../cancellationConstants';
53
import type { CancellationReason } from '../cancellationReason';
64
import { ContributionsCancellationAmountUpdatedSaved } from './ContributionsCancellationAmountUpdatedSaved';
75
import { ContributionsCancellationFlowFinancialSaveAttempt } from './ContributionsCancellationFlowFinancialSaveAttempt';
@@ -12,11 +10,6 @@ export const contributionsCancellationReasons: CancellationReason[] = [
1210
linkLabel: 'I am unhappy with some editorial decisions',
1311
alternateFeedbackIntro: standardAlternateFeedbackIntro,
1412
},
15-
{
16-
reasonId: 'mma_article',
17-
linkLabel: 'As the result of a specific article I read',
18-
alternateFeedbackIntro: standardAlternateFeedbackIntro,
19-
},
2013
{
2114
reasonId: 'mma_financial_circumstances',
2215
linkLabel: 'I can no longer afford to support you',
@@ -28,19 +21,8 @@ export const contributionsCancellationReasons: CancellationReason[] = [
2821
hideContactUs: true,
2922
},
3023
{
31-
reasonId: 'mma_cost_of_living',
32-
linkLabel: 'Due to the cost of living crisis',
33-
saveBody: ContributionsCancellationFlowFinancialSaveAttempt,
34-
savedBody: ContributionsCancellationAmountUpdatedSaved,
35-
alternateFeedbackIntro: standardAlternateFeedbackIntro,
36-
hideSaveActions: true,
37-
skipFeedback: true,
38-
hideContactUs: true,
39-
},
40-
{
41-
reasonId: 'mma_cutting_subscriptions',
42-
linkLabel:
43-
'I’m cutting down on my subscriptions with various organisations',
24+
reasonId: 'mma_price_increase',
25+
linkLabel: 'The price has recently increased',
4426
saveBody: ContributionsCancellationFlowFinancialSaveAttempt,
4527
savedBody: ContributionsCancellationAmountUpdatedSaved,
4628
alternateFeedbackIntro: standardAlternateFeedbackIntro,
@@ -51,62 +33,43 @@ export const contributionsCancellationReasons: CancellationReason[] = [
5133
{
5234
reasonId: 'mma_benefits',
5335
linkLabel:
54-
'I’d like to get something ‘in return’ for my support, e.g. digital features',
36+
'I’m not fully satisfied with the product features or benefits',
5537
alternateFeedbackIntro: standardAlternateFeedbackIntro,
5638
saveBody: [
5739
'Thank you for your ongoing support. Once you’ve completed your cancellation below, you can set up a new product via our online checkouts.',
5840
],
5941
},
6042
{
61-
reasonId: 'mma_prefer_lower_amount',
62-
linkLabel: 'I’d like to support you, but at a lower amount',
43+
reasonId: 'mma_support_another_way',
44+
linkLabel: 'I want to support in a different way',
6345
saveBody: ContributionsCancellationFlowFinancialSaveAttempt,
6446
savedBody: ContributionsCancellationAmountUpdatedSaved,
6547
alternateFeedbackIntro: standardAlternateFeedbackIntro,
6648
hideSaveActions: true,
67-
skipFeedback: true,
68-
hideContactUs: true,
69-
},
70-
{
71-
reasonId: 'mma_prefer_less_frequent',
72-
linkLabel: 'I’d like to support you, but less frequently',
73-
saveBody: ContributionsCancellationFlowFinancialSaveAttempt,
74-
savedBody: ContributionsCancellationAmountUpdatedSaved,
75-
alternateFeedbackIntro: standardAlternateFeedbackIntro,
76-
hideSaveActions: true,
77-
skipFeedback: true,
78-
hideContactUs: true,
79-
},
80-
{
81-
reasonId: 'mma_one_off',
82-
linkLabel:
83-
'I’d rather give spontaneously than have a recurring payment',
84-
saveBody: financialCircumstances,
85-
alternateFeedbackIntro: standardAlternateFeedbackIntro,
8649
},
8750
{
8851
reasonId: 'mma_values',
8952
linkLabel: 'I don’t feel that the Guardian values my support',
9053
alternateFeedbackIntro: standardAlternateFeedbackIntro,
9154
},
9255
{
93-
reasonId: 'mma_no_need',
94-
linkLabel: 'I don’t think the Guardian needs my support',
56+
reasonId: 'mma_break_from_news',
57+
linkLabel: 'I’m taking a break from news',
9558
alternateFeedbackIntro: standardAlternateFeedbackIntro,
9659
},
9760
{
98-
reasonId: 'mma_dont_know_what_for',
99-
linkLabel: 'I don’t know what my money is being used for',
61+
reasonId: 'mma_dont_read_enough',
62+
linkLabel: 'I don’t have enough time to read regularly',
10063
alternateFeedbackIntro: standardAlternateFeedbackIntro,
10164
},
10265
{
103-
reasonId: 'mma_break_from_news',
104-
linkLabel: 'I am taking a break from news',
66+
reasonId: 'mma_issue',
67+
linkLabel: 'I’m having technical issues',
10568
alternateFeedbackIntro: standardAlternateFeedbackIntro,
10669
},
10770
{
108-
reasonId: 'mma_dont_read_enough',
109-
linkLabel: 'I no longer read the Guardian enough to justify my support',
71+
reasonId: 'mma_health',
72+
linkLabel: 'I’m dealing with personal or health matters',
11073
alternateFeedbackIntro: standardAlternateFeedbackIntro,
11174
},
11275
];
@@ -119,11 +82,7 @@ export const otherCancellationReason: CancellationReason[] = [
11982
},
12083
];
12184

122-
const shuffledArray = [...contributionsCancellationReasons].sort(
123-
() => 0.5 - Math.random(),
124-
);
125-
12685
export const shuffledContributionsCancellationReasons: CancellationReason[] = [
127-
...shuffledArray,
86+
...(shuffleArray(contributionsCancellationReasons) as CancellationReason[]),
12887
...otherCancellationReason,
12988
];

client/components/mma/cancel/digipack/DigipackCancellationReasons.tsx

+9
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { shuffleArray } from '@/client/utilities/utils';
12
import {
23
inOrderToImproveSubs,
34
standardAlternateFeedbackIntro,
@@ -81,10 +82,18 @@ export const digipackCancellationReasons: CancellationReason[] = [
8182
linkLabel: 'I’ve been experiencing technical or service problems',
8283
alternateFeedbackIntro: inOrderToImproveSubs,
8384
},
85+
];
86+
87+
export const otherCancellationReason: CancellationReason[] = [
8488
{
8589
reasonId: 'mma_other',
8690
linkLabel: 'None of the above',
8791
saveTitle: 'Other',
8892
alternateFeedbackIntro: inOrderToImproveSubs,
8993
},
9094
];
95+
96+
export const shuffledDigipackCancellationReasons: CancellationReason[] = [
97+
...(shuffleArray(digipackCancellationReasons) as CancellationReason[]),
98+
...otherCancellationReason,
99+
];

client/components/mma/cancel/gw/GwCancellationReasons.tsx

+9
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { shuffleArray } from '@/client/utilities/utils';
12
import {
23
inOrderToImproveSubs,
34
standardAlternateFeedbackIntro,
@@ -86,10 +87,18 @@ export const gwCancellationReasons: CancellationReason[] = [
8687
linkLabel: 'I don’t want an auto-renewing subscription',
8788
skipFeedback: true,
8889
},
90+
];
91+
92+
export const otherCancellationReason: CancellationReason[] = [
8993
{
9094
reasonId: 'mma_other',
9195
linkLabel: 'None of the above',
9296
saveTitle: 'Other',
9397
alternateFeedbackIntro: inOrderToImproveSubs,
9498
},
9599
];
100+
101+
export const shuffledGWCancellationReasons: CancellationReason[] = [
102+
...(shuffleArray(gwCancellationReasons) as CancellationReason[]),
103+
...otherCancellationReason,
104+
];

client/components/mma/cancel/membership/MembershipCancellationReasons.tsx

+9
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { shuffleArray } from '@/client/utilities/utils';
12
import type { CancellationReason } from '../cancellationReason';
23
import { BreakFromNewsWithGW, PaymentIssue } from '../GenericSaveBodyResponses';
34

@@ -75,6 +76,9 @@ export const membershipCancellationReasons: CancellationReason[] = [
7576
'If there’s anything we can do differently please take a moment to give us some feedback',
7677
],
7778
},
79+
];
80+
81+
export const otherCancellationReason: CancellationReason[] = [
7882
{
7983
reasonId: 'mma_other',
8084
linkLabel: 'Other',
@@ -85,3 +89,8 @@ export const membershipCancellationReasons: CancellationReason[] = [
8589
],
8690
},
8791
];
92+
93+
export const shuffledMembershipCancellationReasons: CancellationReason[] = [
94+
...(shuffleArray(membershipCancellationReasons) as CancellationReason[]),
95+
...otherCancellationReason,
96+
];

client/components/mma/cancel/supporterplus/SupporterplusCancellationReasons.tsx

+14-39
Original file line numberDiff line numberDiff line change
@@ -10,78 +10,53 @@ export const supporterplusCancellationReasons: CancellationReason[] = [
1010
linkLabel: 'I am unhappy with some editorial decisions',
1111
alternateFeedbackIntro: standardAlternateFeedbackIntro,
1212
},
13-
{
14-
reasonId: 'mma_article',
15-
linkLabel: 'As a result of a specific article I read',
16-
alternateFeedbackIntro: standardAlternateFeedbackIntro,
17-
},
1813
{
1914
reasonId: 'mma_financial_circumstances',
2015
linkLabel: 'I can no longer afford to support you',
2116
saveBody: financialCircumstances,
2217
alternateFeedbackIntro: standardAlternateFeedbackIntro,
2318
},
2419
{
25-
reasonId: 'mma_cost_of_living',
26-
linkLabel: 'Due to the cost of living crisis',
27-
saveBody: financialCircumstances,
28-
alternateFeedbackIntro: standardAlternateFeedbackIntro,
29-
},
30-
{
31-
reasonId: 'mma_cutting_subscriptions',
32-
linkLabel:
33-
'I’m cutting down on my subscriptions with various organisations',
20+
reasonId: 'mma_price_increase',
21+
linkLabel: 'The price has recently increased',
3422
saveBody: financialCircumstances,
3523
alternateFeedbackIntro: standardAlternateFeedbackIntro,
3624
},
3725
{
38-
reasonId: 'mma_prefer_lower_amount',
26+
reasonId: 'mma_support_another_way',
3927
linkLabel: 'I’d like to support you, but at a lower amount',
4028
saveBody: financialCircumstances,
4129
alternateFeedbackIntro: standardAlternateFeedbackIntro,
4230
},
43-
{
44-
reasonId: 'mma_prefer_less_frequent',
45-
linkLabel: 'I’d like to support you, but less frequently',
46-
saveBody: financialCircumstances,
47-
alternateFeedbackIntro: standardAlternateFeedbackIntro,
48-
},
49-
{
50-
reasonId: 'mma_one_off',
51-
linkLabel:
52-
'I’d rather give spontaneously than have a recurring payment',
53-
saveBody: financialCircumstances,
54-
alternateFeedbackIntro: standardAlternateFeedbackIntro,
55-
},
5631
{
5732
reasonId: 'mma_values',
5833
linkLabel: 'I don’t feel that the Guardian values my support',
5934
alternateFeedbackIntro: standardAlternateFeedbackIntro,
6035
},
6136
{
62-
reasonId: 'mma_no_need',
63-
linkLabel: 'I don’t think the Guardian needs my support',
37+
reasonId: 'mma_benefits',
38+
linkLabel:
39+
'I’m not fully satisfied with the product features or benefits',
6440
alternateFeedbackIntro: standardAlternateFeedbackIntro,
6541
},
6642
{
67-
reasonId: 'mma_dont_know_what_for',
68-
linkLabel: 'I don’t know what my money is being used for',
43+
reasonId: 'mma_break_from_news',
44+
linkLabel: 'I’m taking a break from news',
6945
alternateFeedbackIntro: standardAlternateFeedbackIntro,
7046
},
7147
{
72-
reasonId: 'mma_value_for_money',
73-
linkLabel:
74-
'I didn’t get enough value for money from my ‘supporter extras’',
48+
reasonId: 'mma_dont_read_enough',
49+
linkLabel: 'I don’t have enough time to read regularly',
7550
alternateFeedbackIntro: standardAlternateFeedbackIntro,
7651
},
7752
{
78-
reasonId: 'mma_break_from_news',
79-
linkLabel: 'I am taking a break from news',
53+
reasonId: 'mma_issue',
54+
linkLabel: 'I’m having technical issues',
8055
alternateFeedbackIntro: standardAlternateFeedbackIntro,
8156
},
8257
{
83-
reasonId: 'mma_dont_read_enough',
84-
linkLabel: 'I no longer read the Guardian enough to justify my support',
58+
reasonId: 'mma_health',
59+
linkLabel: 'I’m dealing with personal or health matters',
8560
alternateFeedbackIntro: standardAlternateFeedbackIntro,
8661
},
8762
];

0 commit comments

Comments
 (0)