From b40a598d6ed06ca1dcbac6829b21d8becd02bf1d Mon Sep 17 00:00:00 2001 From: Stefan Hudson Date: Wed, 16 Aug 2023 21:00:17 +0000 Subject: [PATCH 1/6] add option to disable sn encryption --- src/Admin/Settings.php | 8 ++++++++ src/Encryption.php | 6 ++++-- src/Installer.php | 1 + src/functions.php | 12 ++++++++++++ 4 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/Admin/Settings.php b/src/Admin/Settings.php index 64466098..d0ba0ab3 100644 --- a/src/Admin/Settings.php +++ b/src/Admin/Settings.php @@ -87,6 +87,14 @@ public function get_settings( $tab ) { 'default' => 'no', 'type' => 'checkbox', ], + [ + 'title' => __( 'Disable Encryption', 'wc-serial-numbers' ), + 'id' => 'wc_serial_numbers_disable_encryption', + 'desc' => __( 'Store new serial keys in database as plaintext.', 'wc-serial-numbers' ), + 'desc_tip' => __( 'If you enable this option, new keys will be stored unencrypted. Existing keys will not be altered.', 'wc-serial-numbers' ), + 'default' => 'no', + 'type' => 'checkbox', + ], [ 'type' => 'sectionend', 'id' => 'section_serial_numbers', diff --git a/src/Encryption.php b/src/Encryption.php index 5478fa65..d3cd17d0 100644 --- a/src/Encryption.php +++ b/src/Encryption.php @@ -65,10 +65,12 @@ public function __construct() { * @return false|string */ public static function maybeEncrypt( $key ) { - if ( ! self::isEncrypted( $key ) ) { + if(self::isEncrypted( $key ) || 'yes' == wc_serial_numbers_encryption_disabled()) { + return $key; + } elseif ( ! self::isEncrypted( $key ) ) { return self::encrypt( $key ); } - + return $key; } diff --git a/src/Installer.php b/src/Installer.php index cb015d18..195d0e87 100644 --- a/src/Installer.php +++ b/src/Installer.php @@ -279,6 +279,7 @@ protected function update_120() { $options = [ 'wc_serial_numbers_autocomplete_order' => $this->update_1_2_0_get_option( 'wsn_auto_complete_order', 'yes', 'wsn_delivery_settings' ), 'wc_serial_numbers_reuse_serial_number' => $this->update_1_2_0_get_option( 'wsn_re_use_serial', 'no', 'wsn_delivery_settings' ), + 'wc_serial_numbers_disable_encryption' => 'no', 'wc_serial_numbers_disable_software_support' => 'no', 'wc_serial_numbers_manual_delivery' => 'no', 'wc_serial_numbers_hide_serial_number' => 'yes', diff --git a/src/functions.php b/src/functions.php index 2b29e97c..ec4814b4 100644 --- a/src/functions.php +++ b/src/functions.php @@ -867,6 +867,18 @@ function wcsn_decrypt_key( $key ) { return Encryption::maybeDecrypt( $key ); } +/** + * Check if encryption is disabled (i.e, for real physical product serial numbers) + * + * @param $product_id + * + * @return bool + * @since 1.x.x + */ +function wc_serial_numbers_encryption_disabled() { + return 'yes' == get_option( 'wc_serial_numbers_disable_encryption' ); +} + /** * Get product stocks * From cafdf4bce1e4ba8d1dd94a2e2b0948e5e4c1b525 Mon Sep 17 00:00:00 2001 From: Stefan Hudson Date: Wed, 16 Aug 2023 21:09:28 +0000 Subject: [PATCH 2/6] fix white space --- src/Encryption.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Encryption.php b/src/Encryption.php index d3cd17d0..0ea00044 100644 --- a/src/Encryption.php +++ b/src/Encryption.php @@ -67,10 +67,10 @@ public function __construct() { public static function maybeEncrypt( $key ) { if(self::isEncrypted( $key ) || 'yes' == wc_serial_numbers_encryption_disabled()) { return $key; - } elseif ( ! self::isEncrypted( $key ) ) { + } elseif( ! self::isEncrypted( $key ) ) { return self::encrypt( $key ); } - + return $key; } From 813c51bd026de9cbe5af57862f94778b0449f548 Mon Sep 17 00:00:00 2001 From: Stefan Hudson Date: Thu, 17 Aug 2023 18:21:39 -0700 Subject: [PATCH 3/6] clean up logic --- src/Encryption.php | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/Encryption.php b/src/Encryption.php index 0ea00044..8b7488ab 100644 --- a/src/Encryption.php +++ b/src/Encryption.php @@ -67,11 +67,9 @@ public function __construct() { public static function maybeEncrypt( $key ) { if(self::isEncrypted( $key ) || 'yes' == wc_serial_numbers_encryption_disabled()) { return $key; - } elseif( ! self::isEncrypted( $key ) ) { - return self::encrypt( $key ); } - - return $key; + + return self::encrypt( $key ); } /** From 3f216250f338fa38690aba033363b3c955b29b74 Mon Sep 17 00:00:00 2001 From: Stefan Hudson Date: Thu, 17 Aug 2023 18:25:39 -0700 Subject: [PATCH 4/6] whitespace --- src/Encryption.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Encryption.php b/src/Encryption.php index 8b7488ab..00174c1a 100644 --- a/src/Encryption.php +++ b/src/Encryption.php @@ -68,7 +68,7 @@ public static function maybeEncrypt( $key ) { if(self::isEncrypted( $key ) || 'yes' == wc_serial_numbers_encryption_disabled()) { return $key; } - + return self::encrypt( $key ); } From 30538023d5cb457b946cc5631fcc34eaa8051155 Mon Sep 17 00:00:00 2001 From: Stefan Hudson Date: Wed, 30 Aug 2023 22:33:44 -0700 Subject: [PATCH 5/6] change text --- src/Admin/Settings.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Admin/Settings.php b/src/Admin/Settings.php index d0ba0ab3..8fdef1cf 100644 --- a/src/Admin/Settings.php +++ b/src/Admin/Settings.php @@ -88,10 +88,10 @@ public function get_settings( $tab ) { 'type' => 'checkbox', ], [ - 'title' => __( 'Disable Encryption', 'wc-serial-numbers' ), + 'title' => __( 'Disable encryption', 'wc-serial-numbers' ), 'id' => 'wc_serial_numbers_disable_encryption', - 'desc' => __( 'Store new serial keys in database as plaintext.', 'wc-serial-numbers' ), - 'desc_tip' => __( 'If you enable this option, new keys will be stored unencrypted. Existing keys will not be altered.', 'wc-serial-numbers' ), + 'desc' => __( 'Store serial keys unencrypted in database.', 'wc-serial-numbers' ), + 'desc_tip' => __( 'If this options is enabled, keys will not be stored in encrypted form.', 'wc-serial-numbers' ), 'default' => 'no', 'type' => 'checkbox', ], From 2a150a41d5d5ede25b535538de4587f205a97cd7 Mon Sep 17 00:00:00 2001 From: Stefan Hudson Date: Sat, 2 Sep 2023 15:00:58 -0700 Subject: [PATCH 6/6] language tweak --- src/Admin/Settings.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Admin/Settings.php b/src/Admin/Settings.php index 2a130ef7..c552d033 100644 --- a/src/Admin/Settings.php +++ b/src/Admin/Settings.php @@ -90,7 +90,7 @@ public function get_settings( $tab ) { [ 'title' => __( 'Disable encryption', 'wc-serial-numbers' ), 'id' => 'wc_serial_numbers_disable_encryption', - 'desc' => __( 'Store serial keys unencrypted in database.', 'wc-serial-numbers' ), + 'desc' => __( 'Store serial keys in database as plaintext.', 'wc-serial-numbers' ), 'desc_tip' => __( 'If this options is enabled, keys will not be stored in encrypted form.', 'wc-serial-numbers' ), 'default' => 'no', 'type' => 'checkbox',