From 3b274d02afba616a23b3d2718048791aa7caabcb Mon Sep 17 00:00:00 2001 From: Philipp Stracker Date: Fri, 25 Oct 2024 13:29:21 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=94=20Make=20eligibility=20flags=20rea?= =?UTF-8?q?d-only?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/Data/AbstractDataModel.php | 7 ++-- .../src/Data/OnboardingProfile.php | 39 +++---------------- .../src/Endpoint/OnboardingRestEndpoint.php | 6 +-- .../src/Endpoint/RestEndpoint.php | 7 +++- 4 files changed, 17 insertions(+), 42 deletions(-) diff --git a/modules/ppcp-settings/src/Data/AbstractDataModel.php b/modules/ppcp-settings/src/Data/AbstractDataModel.php index d9cd0fbae..1d711cbe5 100644 --- a/modules/ppcp-settings/src/Data/AbstractDataModel.php +++ b/modules/ppcp-settings/src/Data/AbstractDataModel.php @@ -57,8 +57,9 @@ abstract class AbstractDataModel { * Loads the model data from WordPress options. */ public function load() : void { - $saved_data = get_option( static::OPTION_KEY, array() ); - $this->data = array_merge( $this->data, $saved_data ); + $saved_data = get_option( static::OPTION_KEY, array() ); + $filtered_data = array_intersect_key( $saved_data, $this->data ); + $this->data = array_merge( $this->data, $filtered_data ); } /** @@ -91,8 +92,6 @@ abstract class AbstractDataModel { $setter = "set_$key"; if ( method_exists( $this, $setter ) ) { $this->$setter( $value ); - } else { - $this->data[ $key ] = $value; } } } diff --git a/modules/ppcp-settings/src/Data/OnboardingProfile.php b/modules/ppcp-settings/src/Data/OnboardingProfile.php index c30dd7301..c9a45ead0 100644 --- a/modules/ppcp-settings/src/Data/OnboardingProfile.php +++ b/modules/ppcp-settings/src/Data/OnboardingProfile.php @@ -45,9 +45,9 @@ class OnboardingProfile extends AbstractDataModel { ) { parent::__construct(); - $this->set_can_use_casual_selling( $can_use_casual_selling ); - $this->set_can_use_vaulting( $can_use_vaulting ); - $this->set_can_use_card_payments( $can_use_card_payments ); + $this->data['can_use_casual_selling'] = $can_use_casual_selling; + $this->data['can_use_vaulting'] = $can_use_vaulting; + $this->data['can_use_card_payments'] = $can_use_card_payments; } /** @@ -62,9 +62,9 @@ class OnboardingProfile extends AbstractDataModel { 'use_manual_connection' => false, 'client_id' => '', 'client_secret' => '', - 'can_use_casual_selling' => false, - 'can_use_vaulting' => false, - 'can_use_card_payments' => false, + 'can_use_casual_selling' => null, + 'can_use_vaulting' => null, + 'can_use_card_payments' => null, ); } @@ -169,15 +169,6 @@ class OnboardingProfile extends AbstractDataModel { return (bool) $this->data['can_use_casual_selling']; } - /** - * Sets whether casual selling can be used. - * - * @param bool $can_use_casual_selling Whether casual selling can be used. - */ - public function set_can_use_casual_selling( bool $can_use_casual_selling ) : void { - $this->data['can_use_casual_selling'] = $can_use_casual_selling; - } - /** * Gets whether vaulting can be used. * @@ -187,15 +178,6 @@ class OnboardingProfile extends AbstractDataModel { return (bool) $this->data['can_use_vaulting']; } - /** - * Sets whether vaulting can be used. - * - * @param bool $can_use_vaulting Whether vaulting can be used. - */ - public function set_can_use_vaulting( bool $can_use_vaulting ) : void { - $this->data['can_use_vaulting'] = $can_use_vaulting; - } - /** * Gets whether Credit Card payments can be used. * @@ -204,13 +186,4 @@ class OnboardingProfile extends AbstractDataModel { public function get_can_use_card_payments() : bool { return (bool) $this->data['can_use_card_payments']; } - - /** - * Sets whether Credit Card payments can be used. - * - * @param bool $can_use_card_payments Whether Credit Card payments can be used. - */ - public function set_can_use_card_payments( bool $can_use_card_payments ) : void { - $this->data['can_use_card_payments'] = $can_use_card_payments; - } } diff --git a/modules/ppcp-settings/src/Endpoint/OnboardingRestEndpoint.php b/modules/ppcp-settings/src/Endpoint/OnboardingRestEndpoint.php index eff234218..e5a38af5d 100644 --- a/modules/ppcp-settings/src/Endpoint/OnboardingRestEndpoint.php +++ b/modules/ppcp-settings/src/Endpoint/OnboardingRestEndpoint.php @@ -63,15 +63,15 @@ class OnboardingRestEndpoint extends RestEndpoint { ), 'can_use_casual_selling' => array( 'js_name' => 'canUseCasualSelling', - 'sanitize' => 'to_boolean', + 'sanitize' => 'read_only', ), 'can_use_vaulting' => array( 'js_name' => 'canUseVaulting', - 'sanitize' => 'to_boolean', + 'sanitize' => 'read_only', ), 'can_use_card_payments' => array( 'js_name' => 'canUseCardPayments', - 'sanitize' => 'to_boolean', + 'sanitize' => 'read_only', ), ); diff --git a/modules/ppcp-settings/src/Endpoint/RestEndpoint.php b/modules/ppcp-settings/src/Endpoint/RestEndpoint.php index 63e543d59..9bb98dfac 100644 --- a/modules/ppcp-settings/src/Endpoint/RestEndpoint.php +++ b/modules/ppcp-settings/src/Endpoint/RestEndpoint.php @@ -53,7 +53,11 @@ class RestEndpoint extends WC_REST_Controller { $source_key = $details['js_name'] ?? ''; $sanitation_cb = $details['sanitize'] ?? null; - if ( ! $source_key || ! isset( $params[ $source_key ] ) ) { + if ( + ! $source_key + || ! isset( $params[ $source_key ] ) + || 'read_only' === $sanitation_cb + ) { continue; } @@ -121,5 +125,4 @@ class RestEndpoint extends WC_REST_Controller { protected function to_number( $value ) { return $value !== null ? ( is_numeric( $value ) ? $value + 0 : null ) : null; } - }