Skip to content

Commit eb26781

Browse files
committed
Track Reason for Cash on Delivery Learn More event
1 parent ccdb4ea commit eb26781

File tree

4 files changed

+19
-12
lines changed

4 files changed

+19
-12
lines changed

WooCommerce/Classes/Analytics/WooAnalyticsEvent.swift

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1137,9 +1137,12 @@ extension WooAnalyticsEvent {
11371137
///
11381138
/// - Parameter countryCode: the country code of the store.
11391139
///
1140-
static func cardPresentOnboardingLearnMoreTapped(countryCode: String) -> WooAnalyticsEvent {
1140+
static func cardPresentOnboardingLearnMoreTapped(reason: String, countryCode: String) -> WooAnalyticsEvent {
11411141
WooAnalyticsEvent(statName: .cardPresentOnboardingLearnMoreTapped,
1142-
properties: [Keys.countryCode: countryCode])
1142+
properties: [
1143+
Keys.countryCode: countryCode,
1144+
Keys.reason: reason
1145+
])
11431146
}
11441147

11451148
/// Tracked when the In-Person Payments onboarding cannot be completed for some reason.

WooCommerce/Classes/ViewRelated/Dashboard/Settings/In-Person Payments/InPersonPaymentsLearnMore.swift

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,16 @@ struct InPersonPaymentsLearnMore: View {
77
let url: URL
88
let linkText: String
99
let formatText: String
10+
let analyticReason: String?
1011

1112
init(url: URL = learnMoreURL,
1213
linkText: String = Localization.learnMoreLink,
13-
formatText: String = Localization.learnMoreText) {
14+
formatText: String = Localization.learnMoreText,
15+
analyticReason: String? = nil) {
1416
self.url = url
1517
self.linkText = linkText
1618
self.formatText = formatText
19+
self.analyticReason = analyticReason
1720
}
1821

1922
private let cardPresentConfiguration = CardPresentConfigurationLoader().configuration
@@ -28,8 +31,10 @@ struct InPersonPaymentsLearnMore: View {
2831
}
2932
.padding(.vertical, Constants.verticalPadding)
3033
.onTapGesture {
31-
ServiceLocator.analytics.track(event: WooAnalyticsEvent.InPersonPayments
32-
.cardPresentOnboardingLearnMoreTapped(countryCode: cardPresentConfiguration.countryCode))
34+
ServiceLocator.analytics.track(
35+
event: WooAnalyticsEvent.InPersonPayments.cardPresentOnboardingLearnMoreTapped(
36+
reason: analyticReason ?? "",
37+
countryCode: cardPresentConfiguration.countryCode))
3338
customOpenURL?(url)
3439
}
3540
}

WooCommerce/Classes/ViewRelated/Dashboard/Settings/In-Person Payments/Onboarding Errors/InPersonPaymentsCashOnDeliveryPaymentGatewayNotSetUpView.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ struct InPersonPaymentsCashOnDeliveryPaymentGatewayNotSetUpView: View {
2929
Spacer()
3030

3131
InPersonPaymentsLearnMore(url: WooConstants.URLs.cashOnDeliveryLearnMoreUrl.asURL(),
32-
formatText: Localization.cashOnDeliveryLearnMore)
32+
formatText: Localization.cashOnDeliveryLearnMore,
33+
analyticReason: viewModel.analyticReason)
3334
}
3435
}
3536
}

WooCommerce/Classes/ViewRelated/Dashboard/Settings/In-Person Payments/Onboarding Errors/InPersonPaymentsCashOnDeliveryPaymentGatewayNotSetUpViewModel.swift

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ final class InPersonPaymentsCashOnDeliveryPaymentGatewayNotSetUpViewModel: Obser
3636

3737
@Published var awaitingResponse = false
3838

39+
let analyticReason: String = CardPresentPaymentOnboardingState.codPaymentGatewayNotSetUp.reasonForAnalytics ?? ""
40+
3941
// MARK: - Configuration properties
4042
private let cardPresentPaymentsConfiguration: CardPresentPaymentsConfiguration
4143

@@ -114,19 +116,15 @@ final class InPersonPaymentsCashOnDeliveryPaymentGatewayNotSetUpViewModel: Obser
114116
private extension InPersonPaymentsCashOnDeliveryPaymentGatewayNotSetUpViewModel {
115117
typealias Event = WooAnalyticsEvent.InPersonPayments
116118

117-
var reason: String {
118-
CardPresentPaymentOnboardingState.codPaymentGatewayNotSetUp.reasonForAnalytics ?? ""
119-
}
120-
121119
func trackSkipTapped() {
122-
let event = Event.cardPresentOnboardingStepSkipped(reason: reason,
120+
let event = Event.cardPresentOnboardingStepSkipped(reason: analyticReason,
123121
remindLater: false,
124122
countryCode: cardPresentPaymentsConfiguration.countryCode)
125123
analytics.track(event: event)
126124
}
127125

128126
func trackEnableTapped() {
129-
let event = Event.cardPresentOnboardingCtaTapped(reason: reason,
127+
let event = Event.cardPresentOnboardingCtaTapped(reason: analyticReason,
130128
countryCode: cardPresentPaymentsConfiguration.countryCode)
131129
analytics.track(event: event)
132130
}

0 commit comments

Comments
 (0)