Skip to content

Commit 3c84760

Browse files
authored
Merge pull request #7594 from woocommerce/issue/7593-remove-inPersonPaymentGatewaySelection-feature-flag
[Mobille Payments] Remove inPersonPaymentGatewaySelection feature flag
2 parents 19c2ac9 + de3bd45 commit 3c84760

File tree

12 files changed

+6
-354
lines changed

12 files changed

+6
-354
lines changed

Experiments/Experiments/DefaultFeatureFlagService.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,6 @@ public struct DefaultFeatureFlagService: FeatureFlagService {
3535
return buildConfig == .localDeveloper || buildConfig == .alpha
3636
case .shippingLabelsOnboardingM1:
3737
return buildConfig == .localDeveloper || buildConfig == .alpha
38-
case .inPersonPaymentGatewaySelection:
39-
return true
4038
case .backgroundProductImageUpload:
4139
return true
4240
case .appleIDAccountDeletion:

Experiments/Experiments/FeatureFlag.swift

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,6 @@ public enum FeatureFlag: Int {
7070
///
7171
case shippingLabelsOnboardingM1
7272

73-
/// Enable selection of payment gateway to use for In-Person Payments when there is more than one available
74-
///
75-
case inPersonPaymentGatewaySelection
76-
7773
/// Enable image upload after leaving the product form
7874
///
7975
case backgroundProductImageUpload

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

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -225,10 +225,6 @@ private extension CardPresentPaymentsOnboardingUseCase {
225225
}
226226

227227
func bothPluginsInstalledAndActiveOnboardingState(wcPay: SystemPlugin, stripe: SystemPlugin) -> CardPresentPaymentOnboardingState {
228-
guard featureFlagService.isFeatureFlagEnabled(.inPersonPaymentGatewaySelection) else {
229-
return legacyBothPluginsInstalledAndActiveOnboardingState(wcPay: wcPay, stripe: stripe)
230-
}
231-
232228
if preferredPluginLocal == nil {
233229
preferredPluginLocal = storedPreferredPlugin
234230
}
@@ -245,14 +241,6 @@ private extension CardPresentPaymentsOnboardingUseCase {
245241
return augmentStateWithAvailablePlugins(state: state, available: [.wcPay, .stripe])
246242
}
247243

248-
func legacyBothPluginsInstalledAndActiveOnboardingState(wcPay: SystemPlugin, stripe: SystemPlugin) -> CardPresentPaymentOnboardingState {
249-
if !isStripeSupportedInCountry {
250-
return .pluginShouldBeDeactivated(plugin: .stripe)
251-
}
252-
253-
return .selectPlugin(pluginSelectionWasCleared: false)
254-
}
255-
256244
func onboardingStateForPlugin(_ plugin: CardPresentPaymentsPlugin, wcPay: SystemPlugin, stripe: SystemPlugin) -> CardPresentPaymentOnboardingState {
257245
switch plugin {
258246
case .wcPay:

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

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -40,22 +40,11 @@ struct InPersonPaymentsView: View {
4040
case .loading:
4141
InPersonPaymentsLoading()
4242
case let .selectPlugin(pluginSelectionWasCleared):
43-
if viewModel.gatewaySelectionAvailable {
44-
// Preselect WCPay only if there was no selection done before
45-
InPersonPaymentsSelectPluginView(selectedPlugin: pluginSelectionWasCleared == true ? nil : .wcPay) { plugin in
46-
viewModel.selectPlugin(plugin)
47-
ServiceLocator.analytics.track(.cardPresentPaymentGatewaySelected, withProperties: ["payment_gateway": plugin.pluginName])
48-
}
49-
} else if viewModel.userIsAdministrator {
50-
InPersonPaymentsPluginConflictAdmin(analyticReason: viewModel.state.reasonForAnalytics, onRefresh: viewModel.refresh)
51-
} else {
52-
InPersonPaymentsPluginConflictShopManager(analyticReason: viewModel.state.reasonForAnalytics, onRefresh: viewModel.refresh)
43+
// Preselect WCPay only if there was no selection done before
44+
InPersonPaymentsSelectPluginView(selectedPlugin: pluginSelectionWasCleared == true ? nil : .wcPay) { plugin in
45+
viewModel.selectPlugin(plugin)
46+
ServiceLocator.analytics.track(.cardPresentPaymentGatewaySelected, withProperties: ["payment_gateway": plugin.pluginName])
5347
}
54-
case let .pluginShouldBeDeactivated(plugin) where plugin == .stripe:
55-
InPersonPaymentsDeactivateStripeView(
56-
analyticReason: viewModel.state.reasonForAnalytics,
57-
onRefresh: viewModel.refresh,
58-
showSetupPluginsButton: viewModel.userIsAdministrator)
5948
case .countryNotSupported(let countryCode):
6049
InPersonPaymentsCountryNotSupported(countryCode: countryCode, analyticReason: viewModel.state.reasonForAnalytics)
6150
case .countryNotSupportedStripe(_, let countryCode):

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

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ final class InPersonPaymentsViewModel: ObservableObject {
66
@Published var state: CardPresentPaymentOnboardingState
77
var userIsAdministrator: Bool
88
var learnMoreURL: URL? = nil
9-
let gatewaySelectionAvailable: Bool
109
private let useCase: CardPresentPaymentsOnboardingUseCase
1110
let stores: StoresManager
1211

@@ -22,7 +21,6 @@ final class InPersonPaymentsViewModel: ObservableObject {
2221
useCase: CardPresentPaymentsOnboardingUseCase = CardPresentPaymentsOnboardingUseCase()) {
2322
self.stores = stores
2423
self.useCase = useCase
25-
gatewaySelectionAvailable = featureFlagService.isFeatureFlagEnabled(.inPersonPaymentGatewaySelection)
2624
state = useCase.state
2725
userIsAdministrator = ServiceLocator.stores.sessionManager.defaultRoles.contains(.administrator)
2826

@@ -43,10 +41,8 @@ final class InPersonPaymentsViewModel: ObservableObject {
4341
init(
4442
fixedState: CardPresentPaymentOnboardingState,
4543
fixedUserIsAdministrator: Bool = false,
46-
stores: StoresManager = ServiceLocator.stores,
47-
featureFlagService: FeatureFlagService = ServiceLocator.featureFlagService) {
44+
stores: StoresManager = ServiceLocator.stores) {
4845
self.stores = stores
49-
gatewaySelectionAvailable = featureFlagService.isFeatureFlagEnabled(.inPersonPaymentGatewaySelection)
5046
state = fixedState
5147
useCase = CardPresentPaymentsOnboardingUseCase()
5248
userIsAdministrator = fixedUserIsAdministrator
@@ -110,13 +106,9 @@ private extension InPersonPaymentsViewModel {
110106
}
111107

112108
func trackState(_ state: CardPresentPaymentOnboardingState) {
113-
// When we remove this feature flag, we can switch reason to let and remove the state.isSelectPlugin block
114-
guard var reason = state.reasonForAnalytics else {
109+
guard let reason = state.reasonForAnalytics else {
115110
return
116111
}
117-
if state.isSelectPlugin && !gatewaySelectionAvailable {
118-
reason = "multiple_plugins_installed"
119-
}
120112
ServiceLocator.analytics
121113
.track(event: .InPersonPayments
122114
.cardPresentOnboardingNotCompleted(reason: reason,

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

Lines changed: 0 additions & 92 deletions
This file was deleted.

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

Lines changed: 0 additions & 91 deletions
This file was deleted.

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

Lines changed: 0 additions & 72 deletions
This file was deleted.

0 commit comments

Comments
 (0)