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;
}
-
}