2929use WooCommerce \PayPalCommerce \Vendor \Inpsyde \Modularity \Module \ModuleClassNameIdTrait ;
3030use WooCommerce \PayPalCommerce \Vendor \Inpsyde \Modularity \Module \ServiceModule ;
3131use WooCommerce \PayPalCommerce \Vendor \Psr \Container \ContainerInterface ;
32+ use WooCommerce \PayPalCommerce \Settings \Data \SettingsModel ;
33+ use WooCommerce \PayPalCommerce \Settings \Data \SettingsProvider ;
3234use WooCommerce \PayPalCommerce \WcGateway \Gateway \CreditCardGateway ;
3335use WooCommerce \PayPalCommerce \WcGateway \Gateway \PayPalGateway ;
34- use WooCommerce \PayPalCommerce \WcGateway \Settings \Settings ;
3536use WooCommerce \PayPalCommerce \WcSubscriptions \Endpoint \SubscriptionChangePaymentMethod ;
3637use WooCommerce \PayPalCommerce \WcSubscriptions \Helper \SubscriptionHelper ;
3738
@@ -66,27 +67,25 @@ public function run( ContainerInterface $c ): bool {
6667 add_action (
6768 'woocommerce_paypal_payments_gateway_migrate_on_update ' ,
6869 function () use ( $ c ) {
69- $ settings = $ c ->get ( 'wcgateway .settings ' );
70- assert ( $ settings instanceof Settings );
70+ $ settings_model = $ c ->get ( 'settings.data .settings ' );
71+ assert ( $ settings_model instanceof SettingsModel );
7172
7273 $ reference_transaction_status = $ c ->get ( 'api.reference-transaction-status ' );
7374 assert ( $ reference_transaction_status instanceof ReferenceTransactionStatus );
7475
7576 if ( ! $ reference_transaction_status ->reference_transaction_enabled () ) {
76- $ settings -> set ( ' vault_enabled ' , false );
77- $ settings -> persist ();
77+ $ settings_model -> set_save_paypal_and_venmo ( false );
78+ $ settings_model -> save ();
7879 }
7980 }
8081 );
8182
8283 add_action (
8384 'after_setup_theme ' ,
8485 function () use ( $ c ) {
85- $ settings = $ c ->get ( 'wcgateway.settings ' );
86- if (
87- ( ! $ settings ->has ( 'vault_enabled ' ) || ! $ settings ->get ( 'vault_enabled ' ) )
88- && ( ! $ settings ->has ( 'vault_enabled_dcc ' ) || ! $ settings ->get ( 'vault_enabled_dcc ' ) )
89- ) {
86+ $ settings_provider = $ c ->get ( 'settings.settings-provider ' );
87+ assert ( $ settings_provider instanceof SettingsProvider );
88+ if ( ! $ settings_provider ->save_paypal_and_venmo () && ! $ settings_provider ->save_card_details () ) {
9089 return true ;
9190 }
9291
@@ -113,8 +112,8 @@ function ( array $localized_script_data ) use ( $c ) {
113112 add_filter (
114113 'ppcp_create_order_request_body_data ' ,
115114 function ( array $ data , string $ payment_method , array $ request_data ) use ( $ c ): array {
116- $ settings = $ c ->get ( 'wcgateway .settings ' );
117- assert ( $ settings instanceof Settings );
115+ $ settings_provider = $ c ->get ( 'settings .settings-provider ' );
116+ assert ( $ settings_provider instanceof SettingsProvider );
118117
119118 $ new_attributes = array (
120119 'vault ' => array (
@@ -135,7 +134,7 @@ function ( array $data, string $payment_method, array $request_data ) use ( $c )
135134 $ funding_source = (string ) ( $ request_data ['funding_source ' ] ?? '' );
136135
137136 if ( $ payment_method === CreditCardGateway::ID ) {
138- if ( ! $ settings -> has ( ' vault_enabled_dcc ' ) || ! $ settings -> get ( ' vault_enabled_dcc ' ) ) {
137+ if ( ! $ settings_provider -> save_card_details ( ) ) {
139138 return $ data ;
140139 }
141140
@@ -144,7 +143,7 @@ function ( array $data, string $payment_method, array $request_data ) use ( $c )
144143 return $ data ;
145144 }
146145 } elseif ( $ payment_method === PayPalGateway::ID ) {
147- if ( ! $ settings -> has ( ' vault_enabled ' ) || ! $ settings -> get ( ' vault_enabled ' ) ) {
146+ if ( ! $ settings_provider -> save_paypal_and_venmo ( ) ) {
148147 return $ data ;
149148 }
150149
@@ -279,13 +278,13 @@ function () use ( $c ) {
279278
280279 $ id_token = $ api ->id_token ( $ target_customer_id );
281280
282- $ settings = $ c ->get ( 'wcgateway .settings ' );
283- assert ( $ settings instanceof Settings );
281+ $ settings_provider = $ c ->get ( 'settings .settings-provider ' );
282+ assert ( $ settings_provider instanceof SettingsProvider );
284283
285- $ verification_method =
286- $ settings -> has ( ' 3d_secure_contingency ' )
287- ? apply_filters ( ' woocommerce_paypal_payments_three_d_secure_contingency ' , $ settings -> get ( ' 3d_secure_contingency ' ) )
288- : '' ;
284+ $ verification_method = apply_filters (
285+ ' woocommerce_paypal_payments_three_d_secure_contingency ' ,
286+ $ settings_provider -> three_d_secure_enum ( )
287+ ) ;
289288
290289 // phpcs:ignore WordPress.Security.NonceVerification
291290 $ change_payment_method = wc_clean ( wp_unslash ( $ _GET ['change_payment_method ' ] ?? '' ) );
@@ -414,10 +413,10 @@ function ( string $token_id ) use ( $c ) {
414413 add_filter (
415414 'woocommerce_paypal_payments_credit_card_gateway_supports ' ,
416415 function ( array $ supports ) use ( $ c ): array {
417- $ settings = $ c ->get ( 'wcgateway .settings ' );
418- assert ( $ settings instanceof ContainerInterface );
416+ $ settings_provider = $ c ->get ( 'settings .settings-provider ' );
417+ assert ( $ settings_provider instanceof SettingsProvider );
419418
420- if ( $ settings -> has ( ' vault_enabled_dcc ' ) && $ settings -> get ( ' vault_enabled_dcc ' ) ) {
419+ if ( $ settings_provider -> save_card_details ( ) ) {
421420 $ supports [] = 'tokenization ' ;
422421 $ supports [] = 'add_payment_method ' ;
423422 }
0 commit comments