From e0f213284413dccff2fa1f15066fab26181207d3 Mon Sep 17 00:00:00 2001
From: liviu13
Date: Wed, 15 Jan 2025 17:20:31 +0200
Subject: [PATCH 01/12] gdpr update
---
classes/helpers/FrmAppHelper.php | 12 +++++++++
classes/models/FrmSettings.php | 4 ++-
classes/views/frm-settings/general.php | 37 ++++++++++++++++++++------
3 files changed, 44 insertions(+), 9 deletions(-)
diff --git a/classes/helpers/FrmAppHelper.php b/classes/helpers/FrmAppHelper.php
index c33f35e351..df1b0a98b6 100644
--- a/classes/helpers/FrmAppHelper.php
+++ b/classes/helpers/FrmAppHelper.php
@@ -4380,4 +4380,16 @@ public static function print_setting_error( $args ) {
no_gdpr_cookies;
+ }
}
diff --git a/classes/models/FrmSettings.php b/classes/models/FrmSettings.php
index 2469d53510..0d52e39c29 100644
--- a/classes/models/FrmSettings.php
+++ b/classes/models/FrmSettings.php
@@ -150,6 +150,8 @@ public function default_options() {
'new_tab_msg' => __( 'The page has been opened in a new tab.', 'formidable' ),
'email_to' => '[admin_email]',
+ 'enable_gdpr' => 0,
+ 'no_gdpr_cookies' => 0,
'no_ips' => 0,
'custom_header_ip' => 0,
'tracking' => FrmAppHelper::pro_is_installed(),
@@ -398,7 +400,7 @@ private function update_settings( $params ) {
$this->from_email = $params['frm_from_email'];
$this->currency = $params['frm_currency'];
- $checkboxes = array( 'mu_menu', 're_multi', 'fade_form', 'no_ips', 'custom_header_ip', 'tracking', 'admin_bar', 'summary_emails' );
+ $checkboxes = array( 'mu_menu', 're_multi', 'fade_form', 'no_ips', 'no_gdpr_cookies', 'enable_gdpr', 'custom_header_ip', 'tracking', 'admin_bar', 'summary_emails' );
foreach ( $checkboxes as $set ) {
$this->$set = isset( $params[ 'frm_' . $set ] ) ? absint( $params[ 'frm_' . $set ] ) : 0;
}
diff --git a/classes/views/frm-settings/general.php b/classes/views/frm-settings/general.php
index 546eccbb4f..63aae08435 100644
--- a/classes/views/frm-settings/general.php
+++ b/classes/views/frm-settings/general.php
@@ -12,7 +12,7 @@
-
+
-
-
-
-
\ No newline at end of file
From ea4c59a83fe2e70796fef15dff11c1deb87176dd Mon Sep 17 00:00:00 2001
From: liviu13
Date: Wed, 5 Mar 2025 15:48:14 +0200
Subject: [PATCH 07/12] revisions update + QA issues fixes
---
classes/controllers/FrmHooksController.php | 1 -
classes/factories/FrmFieldFactory.php | 35 ++++++------
classes/helpers/FrmAppHelper.php | 2 +-
classes/helpers/FrmFieldGdprHelper.php | 16 ++----
classes/models/FrmField.php | 37 ++++++------
classes/models/fields/FrmFieldGdpr.php | 56 +++++++++++++++----
classes/models/fields/FrmFieldType.php | 41 +++++++-------
.../views/frm-fields/back-end/settings.php | 19 ++++++-
.../frm-fields/front-end/gdpr/gdpr-field.php | 12 +++-
classes/views/frm-settings/general.php | 11 ++--
css/frm_admin.css | 5 +-
js/formidable_admin.js | 11 ++++
12 files changed, 161 insertions(+), 85 deletions(-)
diff --git a/classes/controllers/FrmHooksController.php b/classes/controllers/FrmHooksController.php
index 4b1d02d940..ec99052bff 100644
--- a/classes/controllers/FrmHooksController.php
+++ b/classes/controllers/FrmHooksController.php
@@ -112,7 +112,6 @@ public static function load_hooks() {
FrmTransLiteHooksController::load_hooks();
FrmStrpLiteHooksController::load_hooks();
- FrmFieldGdprHelper::load_hooks();
}
/**
diff --git a/classes/factories/FrmFieldFactory.php b/classes/factories/FrmFieldFactory.php
index c3850e7e1a..765469754c 100644
--- a/classes/factories/FrmFieldFactory.php
+++ b/classes/factories/FrmFieldFactory.php
@@ -91,24 +91,25 @@ public static function get_field_type( $field_type, $field = 0 ) {
*/
private static function get_field_type_class( $field_type ) {
$type_classes = array(
- 'text' => 'FrmFieldText',
- 'textarea' => 'FrmFieldTextarea',
- 'select' => 'FrmFieldSelect',
- 'radio' => 'FrmFieldRadio',
- 'checkbox' => 'FrmFieldCheckbox',
- 'number' => 'FrmFieldNumber',
- 'phone' => 'FrmFieldPhone',
- 'url' => 'FrmFieldUrl',
- 'website' => 'FrmFieldUrl',
- 'email' => 'FrmFieldEmail',
- 'user_id' => 'FrmFieldUserID',
- 'html' => 'FrmFieldHTML',
- 'hidden' => 'FrmFieldHidden',
- 'captcha' => 'FrmFieldCaptcha',
- 'name' => 'FrmFieldName',
- 'credit_card' => 'FrmFieldCreditCard',
+ 'text' => 'FrmFieldText',
+ 'textarea' => 'FrmFieldTextarea',
+ 'select' => 'FrmFieldSelect',
+ 'radio' => 'FrmFieldRadio',
+ 'checkbox' => 'FrmFieldCheckbox',
+ 'number' => 'FrmFieldNumber',
+ 'phone' => 'FrmFieldPhone',
+ 'url' => 'FrmFieldUrl',
+ 'website' => 'FrmFieldUrl',
+ 'email' => 'FrmFieldEmail',
+ 'user_id' => 'FrmFieldUserID',
+ 'html' => 'FrmFieldHTML',
+ 'hidden' => 'FrmFieldHidden',
+ 'captcha' => 'FrmFieldCaptcha',
+ 'name' => 'FrmFieldName',
+ 'credit_card' => 'FrmFieldCreditCard',
// Submit button field.
- FrmSubmitHelper::FIELD_TYPE => 'FrmFieldSubmit',
+ FrmSubmitHelper::FIELD_TYPE => 'FrmFieldSubmit',
+ FrmFieldGdprHelper::FIELD_TYPE => FrmFieldGdprHelper::get_gdpr_field_class( $field_type ),
);
$class = isset( $type_classes[ $field_type ] ) ? $type_classes[ $field_type ] : '';
diff --git a/classes/helpers/FrmAppHelper.php b/classes/helpers/FrmAppHelper.php
index f904640de8..4c42d49297 100644
--- a/classes/helpers/FrmAppHelper.php
+++ b/classes/helpers/FrmAppHelper.php
@@ -4420,6 +4420,6 @@ public static function print_setting_error( $args ) {
*/
public static function no_gdpr_cookies() {
$frm_settings = self::get_settings();
- return (bool) $frm_settings->no_gdpr_cookies;
+ return (bool) ( $frm_settings->enable_gdpr && $frm_settings->no_gdpr_cookies );
}
}
diff --git a/classes/helpers/FrmFieldGdprHelper.php b/classes/helpers/FrmFieldGdprHelper.php
index c4cff9f1de..2ee09d8c73 100644
--- a/classes/helpers/FrmFieldGdprHelper.php
+++ b/classes/helpers/FrmFieldGdprHelper.php
@@ -32,17 +32,14 @@ class FrmFieldGdprHelper {
const FIELD_CLASS = 'FrmFieldGdpr';
/**
- * Load hooks
+ * Hide GDPR field
*
* @since x.x
- * @return void
+ * @return bool
*/
- public static function load_hooks() {
+ public static function hide_gdpr_field() {
$settings = FrmAppHelper::get_settings();
- if ( $settings->enable_gdpr ) {
- add_filter( 'frm_available_fields', array( __CLASS__, 'add_gdpr_field' ), 10, 1 );
- add_filter( 'frm_get_field_type_class', array( __CLASS__, 'init_gdpr_field_class' ), 10, 2 );
- }
+ return ! $settings->enable_gdpr;
}
/**
@@ -64,14 +61,13 @@ public static function add_gdpr_field( $fields ) {
* Initialize GDPR field Class name
*
* @since x.x
- * @param string $class
* @param string $field_type
* @return string
*/
- public static function init_gdpr_field_class( $class, $field_type = '' ) {
+ public static function get_gdpr_field_class( $field_type = '' ) {
if ( self::FIELD_TYPE === $field_type ) {
return self::FIELD_CLASS;
}
- return $class;
+ return '';
}
}
diff --git a/classes/models/FrmField.php b/classes/models/FrmField.php
index e7e62fbf1e..ad98056531 100644
--- a/classes/models/FrmField.php
+++ b/classes/models/FrmField.php
@@ -10,70 +10,75 @@ class FrmField {
public static function field_selection() {
$fields = array(
- 'text' => array(
+ 'text' => array(
'name' => __( 'Text', 'formidable' ),
'icon' => 'frm_icon_font frm_text2_icon',
),
- 'textarea' => array(
+ 'textarea' => array(
'name' => __( 'Paragraph', 'formidable' ),
'icon' => 'frm_icon_font frm_paragraph_icon',
),
- 'checkbox' => array(
+ 'checkbox' => array(
'name' => __( 'Checkboxes', 'formidable' ),
'icon' => 'frm_icon_font frm_check_square_icon',
),
- 'radio' => array(
+ 'radio' => array(
'name' => __( 'Radio Buttons', 'formidable' ),
'icon' => 'frm_icon_font frm_radio_checked_icon',
),
- 'select' => array(
+ 'select' => array(
'name' => __( 'Dropdown', 'formidable' ),
'icon' => 'frm_icon_font frm_caret_square_down_icon',
),
- 'email' => array(
+ 'email' => array(
'name' => __( 'Email', 'formidable' ),
'icon' => 'frm_icon_font frm_email_icon',
),
- 'url' => array(
+ 'url' => array(
'name' => __( 'Website/URL', 'formidable' ),
'icon' => 'frm_icon_font frm_link_icon',
),
- 'number' => array(
+ 'number' => array(
'name' => __( 'Number', 'formidable' ),
'icon' => 'frm_icon_font frm_hashtag_icon',
),
- 'name' => array(
+ 'name' => array(
'name' => __( 'Name', 'formidable' ),
'icon' => 'frm_icon_font frm_user_name_icon',
),
- 'phone' => array(
+ 'phone' => array(
'name' => __( 'Phone', 'formidable' ),
'icon' => 'frm_icon_font frm_phone_icon',
),
- 'html' => array(
+ 'html' => array(
'name' => __( 'HTML', 'formidable' ),
'icon' => 'frm_icon_font frm_code_icon',
),
- 'hidden' => array(
+ 'hidden' => array(
'name' => __( 'Hidden', 'formidable' ),
'icon' => 'frm_icon_font frm_eye_slash_icon',
),
- 'user_id' => array(
+ 'user_id' => array(
'name' => __( 'User ID', 'formidable' ),
'icon' => 'frm_icon_font frm_user_icon',
),
- 'captcha' => array(
+ 'captcha' => array(
'name' => self::get_captcha_field_name(),
'icon' => 'frm_icon_font frm_shield_check_icon',
),
- 'credit_card' => array(
+ 'credit_card' => array(
'name' => __( 'Payment', 'formidable' ),
'icon' => 'frm_icon_font frm_credit_card_icon',
),
- FrmSubmitHelper::FIELD_TYPE => array(
+ FrmSubmitHelper::FIELD_TYPE => array(
'name' => __( 'Submit', 'formidable' ),
'hide' => true,
),
+ FrmFieldGdprHelper::FIELD_TYPE => array(
+ 'name' => __( 'GDPR', 'formidable' ),
+ 'icon' => 'frm_icon_font frm-gdpr-icon',
+ 'hide' => FrmFieldGdprHelper::hide_gdpr_field(),
+ ),
);
/**
diff --git a/classes/models/fields/FrmFieldGdpr.php b/classes/models/fields/FrmFieldGdpr.php
index 5cc719f86f..7cecd7ad58 100644
--- a/classes/models/fields/FrmFieldGdpr.php
+++ b/classes/models/fields/FrmFieldGdpr.php
@@ -33,19 +33,25 @@ class FrmFieldGdpr extends FrmFieldType {
* @return array
*/
public function get_new_field_defaults() {
- $field = array(
- 'name' => $this->get_new_field_name() . ' Agreement',
+ if ( FrmFieldGdprHelper::hide_gdpr_field() ) {
+ return array(
+ 'name' => false,
+ 'description' => false,
+ 'type' => $this->type,
+ 'options' => false,
+ 'required' => false,
+ 'field_options' => false,
+ );
+ }
+
+ return array(
+ 'name' => $this->get_new_field_name() . ' Consent',
'description' => '',
'type' => $this->type,
'options' => '',
- 'default_value' => '',
'required' => true,
'field_options' => $this->get_default_field_options(),
);
-
- $field_options = $this->new_field_settings();
-
- return array_merge( $field, $field_options );
}
/**
@@ -55,11 +61,29 @@ public function get_new_field_defaults() {
* @return bool[]
*/
protected function field_settings_for_type() {
+ if ( FrmFieldGdprHelper::hide_gdpr_field() ) {
+ return array(
+ 'size' => false,
+ 'clear_on_focus' => false,
+ 'default' => false,
+ 'invalid' => false,
+ 'max' => false,
+ 'readonly_required' => false,
+ 'required' => false,
+ 'label' => false,
+ 'css' => false,
+ 'label_position' => false,
+ 'description' => false,
+ );
+ }
+
return array(
- 'size' => true,
- 'clear_on_focus' => false,
- 'invalid' => false,
- 'max' => false,
+ 'size' => true,
+ 'clear_on_focus' => false,
+ 'default' => false,
+ 'invalid' => false,
+ 'max' => false,
+ 'readonly_required' => true,
);
}
@@ -70,10 +94,20 @@ protected function field_settings_for_type() {
* @param array $args The arguments.
*/
public function show_primary_options( $args ) {
+ if ( FrmFieldGdprHelper::hide_gdpr_field() ) {
+ return;
+ }
$field = $args['field'];
include FrmAppHelper::plugin_path() . '/classes/views/frm-fields/back-end/gdpr/primary-options.php';
}
+ public function show_label_on_form_builder() {
+ if ( FrmFieldGdprHelper::hide_gdpr_field() ) {
+ return;
+ }
+ parent::show_label_on_form_builder();
+ }
+
/**
* Gets extra field options.
*
diff --git a/classes/models/fields/FrmFieldType.php b/classes/models/fields/FrmFieldType.php
index 001a27a5b1..0a213a8100 100644
--- a/classes/models/fields/FrmFieldType.php
+++ b/classes/models/fields/FrmFieldType.php
@@ -338,27 +338,28 @@ public function display_field_settings() {
*/
protected function default_field_settings() {
return array(
- 'type' => $this->type,
- 'label' => true,
- 'required' => true,
- 'unique' => false,
- 'read_only' => false,
- 'description' => true,
- 'options' => true,
- 'label_position' => true,
- 'invalid' => false,
- 'size' => false,
+ 'type' => $this->type,
+ 'label' => true,
+ 'required' => true,
+ 'readonly_required' => false,
+ 'unique' => false,
+ 'read_only' => false,
+ 'description' => true,
+ 'options' => true,
+ 'label_position' => true,
+ 'invalid' => false,
+ 'size' => false,
// Shows the placeholder option.
- 'clear_on_focus' => false,
- 'css' => true,
- 'conf_field' => false,
- 'max' => true,
- 'range' => false,
- 'captcha_size' => false,
- 'captcha_theme' => false,
- 'format' => false,
- 'show_image' => false,
- 'default' => true,
+ 'clear_on_focus' => false,
+ 'css' => true,
+ 'conf_field' => false,
+ 'max' => true,
+ 'range' => false,
+ 'captcha_size' => false,
+ 'captcha_theme' => false,
+ 'format' => false,
+ 'show_image' => false,
+ 'default' => true,
);
}
diff --git a/classes/views/frm-fields/back-end/settings.php b/classes/views/frm-fields/back-end/settings.php
index f7198a6ece..76c1de2153 100644
--- a/classes/views/frm-fields/back-end/settings.php
+++ b/classes/views/frm-fields/back-end/settings.php
@@ -53,6 +53,23 @@
}
}
?>
+
+
+
+ 'width:24px' ) ); ?>
+
+ ', '' );
+ ?>
+
+
+
+
@@ -68,7 +85,7 @@
- />
+ />
diff --git a/classes/views/frm-fields/front-end/gdpr/gdpr-field.php b/classes/views/frm-fields/front-end/gdpr/gdpr-field.php
index 4ab6357728..e028c2fb40 100644
--- a/classes/views/frm-fields/front-end/gdpr/gdpr-field.php
+++ b/classes/views/frm-fields/front-end/gdpr/gdpr-field.php
@@ -14,7 +14,7 @@
$label_id = 'frm-gdpr-accept-' . $field_id;
?>
-
+
+
+
+
+ ', '' );
+ ?>
+
+
+
diff --git a/classes/views/frm-settings/general.php b/classes/views/frm-settings/general.php
index 40756b4c17..c64f359e6c 100644
--- a/classes/views/frm-settings/general.php
+++ b/classes/views/frm-settings/general.php
@@ -60,14 +60,14 @@
if ( ! $frm_settings->enable_gdpr ) {
$gdpr_options_wrapper_params['class'] .= ' frm_hidden';
}
-$custom_header_ip_wrapper_params = array( 'class' => 'frm_custom_header_ip_cont' );
-if ( $frm_settings->no_ips ) {
+$custom_header_ip_wrapper_params = array( 'class' => 'frm_custom_header_ip_cont frm_gdpr_options' );
+if ( $frm_settings->no_ips || ! $frm_settings->enable_gdpr ) {
$custom_header_ip_wrapper_params['class'] .= ' frm_hidden';
}
?>
- enable_gdpr, 1 ); ?> data-frmshow=".frm_gdpr_options" />
+ enable_gdpr, 1 ); ?> data-frmshow=".frm_gdpr_options" data-frmuncheck="#frm_no_gdpr_cookies, #frm_no_ips, #frm_custom_header_ip" />
@@ -85,9 +85,6 @@
-
-
-
>
custom_header_ip, 1 ); ?> />
@@ -96,6 +93,8 @@
+
+
Date: Thu, 6 Mar 2025 15:59:56 +0200
Subject: [PATCH 08/12] fix showing gdpr field label when disabled for regular
users, add gdpr note under general settings, switch block the required
checkbox by beign selectable via javascript instead of disabled html
attribute as this will make the required to be ignored by the form
---
classes/models/fields/FrmFieldGdpr.php | 38 +++++++++++++------
.../views/frm-fields/back-end/settings.php | 2 +-
classes/views/frm-settings/general.php | 9 ++++-
3 files changed, 35 insertions(+), 14 deletions(-)
diff --git a/classes/models/fields/FrmFieldGdpr.php b/classes/models/fields/FrmFieldGdpr.php
index 7cecd7ad58..e6ebf68e84 100644
--- a/classes/models/fields/FrmFieldGdpr.php
+++ b/classes/models/fields/FrmFieldGdpr.php
@@ -63,17 +63,16 @@ public function get_new_field_defaults() {
protected function field_settings_for_type() {
if ( FrmFieldGdprHelper::hide_gdpr_field() ) {
return array(
- 'size' => false,
- 'clear_on_focus' => false,
- 'default' => false,
- 'invalid' => false,
- 'max' => false,
- 'readonly_required' => false,
- 'required' => false,
- 'label' => false,
- 'css' => false,
- 'label_position' => false,
- 'description' => false,
+ 'size' => false,
+ 'clear_on_focus' => false,
+ 'default' => false,
+ 'invalid' => false,
+ 'max' => false,
+ 'required' => false,
+ 'label' => false,
+ 'css' => false,
+ 'label_position' => false,
+ 'description' => false,
);
}
@@ -84,6 +83,7 @@ protected function field_settings_for_type() {
'invalid' => false,
'max' => false,
'readonly_required' => true,
+ 'required' => true,
);
}
@@ -139,4 +139,20 @@ protected function include_form_builder_file() {
protected function include_front_form_file() {
return FrmAppHelper::plugin_path() . self::VIEW_PATH;
}
+
+ /**
+ * Hide the field name/label if the GDPR field is disabled.
+ *
+ * @since x.x
+ *
+ * @param array $args The arguments.
+ * @param string $html The HTML.
+ * @return string
+ */
+ protected function before_replace_html_shortcodes( $args, $html ) {
+ if ( FrmFieldGdprHelper::hide_gdpr_field() && ! current_user_can( 'frm_edit_forms' ) ) {
+ return '';
+ }
+ return $html;
+ }
}
diff --git a/classes/views/frm-fields/back-end/settings.php b/classes/views/frm-fields/back-end/settings.php
index 76c1de2153..9588c44906 100644
--- a/classes/views/frm-fields/back-end/settings.php
+++ b/classes/views/frm-fields/back-end/settings.php
@@ -85,7 +85,7 @@
- />
+ />
diff --git a/classes/views/frm-settings/general.php b/classes/views/frm-settings/general.php
index c64f359e6c..ceceba1801 100644
--- a/classes/views/frm-settings/general.php
+++ b/classes/views/frm-settings/general.php
@@ -92,8 +92,13 @@
-
-
+
+ %s', 'https://formidableforms.com/knowledgebase/gdpr-settings/', esc_html__( 'here', 'formidable' ) );
+ ?>
+
+
Date: Thu, 6 Mar 2025 20:12:49 +0200
Subject: [PATCH 09/12] fix unit test when a default_value is not set
---
classes/helpers/FrmAppHelper.php | 2 +-
classes/models/FrmField.php | 4 +++-
classes/models/fields/FrmFieldGdpr.php | 2 +-
3 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/classes/helpers/FrmAppHelper.php b/classes/helpers/FrmAppHelper.php
index 4c42d49297..b06cf2432a 100644
--- a/classes/helpers/FrmAppHelper.php
+++ b/classes/helpers/FrmAppHelper.php
@@ -4420,6 +4420,6 @@ public static function print_setting_error( $args ) {
*/
public static function no_gdpr_cookies() {
$frm_settings = self::get_settings();
- return (bool) ( $frm_settings->enable_gdpr && $frm_settings->no_gdpr_cookies );
+ return $frm_settings->enable_gdpr && $frm_settings->no_gdpr_cookies;
}
}
diff --git a/classes/models/FrmField.php b/classes/models/FrmField.php
index ad98056531..a6d12154fe 100644
--- a/classes/models/FrmField.php
+++ b/classes/models/FrmField.php
@@ -383,7 +383,9 @@ public static function create( $values, $return = true ) {
$values = FrmAppHelper::maybe_filter_array( $values, array( 'name', 'description' ) );
foreach ( array( 'name', 'description', 'type', 'default_value' ) as $col ) {
- $new_values[ $col ] = $values[ $col ];
+ if ( isset( $values[ $col ] ) ) {
+ $new_values[ $col ] = $values[ $col ];
+ }
}
$new_values['options'] = self::maybe_filter_options( $values['options'] );
diff --git a/classes/models/fields/FrmFieldGdpr.php b/classes/models/fields/FrmFieldGdpr.php
index e6ebf68e84..101023661d 100644
--- a/classes/models/fields/FrmFieldGdpr.php
+++ b/classes/models/fields/FrmFieldGdpr.php
@@ -45,7 +45,7 @@ public function get_new_field_defaults() {
}
return array(
- 'name' => $this->get_new_field_name() . ' Consent',
+ 'name' => $this->get_new_field_name() . __( ' Consent', 'formidable' ),
'description' => '',
'type' => $this->type,
'options' => '',
From 93ddc1d43b5f608eb542eba0bfb14f741fc79a2b Mon Sep 17 00:00:00 2001
From: liviu13
Date: Thu, 6 Mar 2025 22:12:18 +0200
Subject: [PATCH 10/12] show the GDPR option if the old value of no_ips is
enabled
---
classes/views/frm-settings/general.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/classes/views/frm-settings/general.php b/classes/views/frm-settings/general.php
index ceceba1801..3e9cccd67d 100644
--- a/classes/views/frm-settings/general.php
+++ b/classes/views/frm-settings/general.php
@@ -67,7 +67,7 @@
?>
- enable_gdpr, 1 ); ?> data-frmshow=".frm_gdpr_options" data-frmuncheck="#frm_no_gdpr_cookies, #frm_no_ips, #frm_custom_header_ip" />
+ enable_gdpr || $frm_settings->no_ips, 1 ); ?> data-frmshow=".frm_gdpr_options" data-frmuncheck="#frm_no_gdpr_cookies, #frm_no_ips, #frm_custom_header_ip" />
From 4442e68185f50a2d272fb76f3a4976c055885682 Mon Sep 17 00:00:00 2001
From: liviu13
Date: Mon, 10 Mar 2025 10:58:46 +0200
Subject: [PATCH 11/12] revisions update
---
classes/helpers/FrmAppHelper.php | 12 ++++++++++++
classes/views/frm-settings/general.php | 12 +++++++-----
css/frm_admin.css | 4 ++++
3 files changed, 23 insertions(+), 5 deletions(-)
diff --git a/classes/helpers/FrmAppHelper.php b/classes/helpers/FrmAppHelper.php
index 716e3a5953..172e8de692 100644
--- a/classes/helpers/FrmAppHelper.php
+++ b/classes/helpers/FrmAppHelper.php
@@ -4445,6 +4445,18 @@ public static function print_setting_error( $args ) {
enable_gdpr || $frm_settings->no_ips || $frm_settings->custom_header_ip || $frm_settings->no_gdpr_cookies;
+ }
+
/**
* Check if GDPR cookies are disabled.
*
diff --git a/classes/views/frm-settings/general.php b/classes/views/frm-settings/general.php
index 3e9cccd67d..a5c9efe529 100644
--- a/classes/views/frm-settings/general.php
+++ b/classes/views/frm-settings/general.php
@@ -2,6 +2,8 @@
if ( ! defined( 'ABSPATH' ) ) {
die( 'You are not allowed to call this page directly.' );
}
+$is_gdpr_enabled = FrmAppHelper::is_gdpr_enabled();
+
?>
@@ -57,17 +59,17 @@
'frm_gdpr_options' );
-if ( ! $frm_settings->enable_gdpr ) {
+if ( ! $is_gdpr_enabled ) {
$gdpr_options_wrapper_params['class'] .= ' frm_hidden';
}
$custom_header_ip_wrapper_params = array( 'class' => 'frm_custom_header_ip_cont frm_gdpr_options' );
-if ( $frm_settings->no_ips || ! $frm_settings->enable_gdpr ) {
+if ( $frm_settings->no_ips || ! $is_gdpr_enabled ) {
$custom_header_ip_wrapper_params['class'] .= ' frm_hidden';
}
?>
- enable_gdpr || $frm_settings->no_ips, 1 ); ?> data-frmshow=".frm_gdpr_options" data-frmuncheck="#frm_no_gdpr_cookies, #frm_no_ips, #frm_custom_header_ip" />
+ data-frmshow=".frm_gdpr_options" data-frmuncheck="#frm_no_gdpr_cookies, #frm_no_ips, #frm_custom_header_ip" />
@@ -75,7 +77,7 @@
>
no_gdpr_cookies, 1 ); ?> />
-
+
@@ -95,7 +97,7 @@
%s', 'https://formidableforms.com/knowledgebase/gdpr-settings/', esc_html__( 'here', 'formidable' ) );
+ printf( esc_html__( 'Learn more about our GDPR settings', 'formidable' ) . ' %s', 'https://formidableforms.com/knowledgebase/gdpr-settings/', esc_html__( 'here', 'formidable' ) );
?>
diff --git a/css/frm_admin.css b/css/frm_admin.css
index e3aeef5753..8b1a67061e 100644
--- a/css/frm_admin.css
+++ b/css/frm_admin.css
@@ -5968,6 +5968,10 @@ p.frm-inline-select,
.frm-single-settings .frm_single_option .frm_remove_tag:before {
content: "";
}
+.frm-single-settings input[type="checkbox"][readonly] {
+ opacity: 0.5;
+ pointer-events: none;
+}
.advanced_settings .frm_logic_row {
margin: 14px 0;
From 868501fb2a00984f7e0f238580cc8053ff5d1d83 Mon Sep 17 00:00:00 2001
From: liviu13
Date: Mon, 10 Mar 2025 16:04:09 +0200
Subject: [PATCH 12/12] remove pointer-events from disabled option from gdpr
related options
---
css/frm_admin.css | 1 -
1 file changed, 1 deletion(-)
diff --git a/css/frm_admin.css b/css/frm_admin.css
index 8b1a67061e..e6e9f0c0c9 100644
--- a/css/frm_admin.css
+++ b/css/frm_admin.css
@@ -7623,7 +7623,6 @@ ul.frm_two_col {
}
.multiselect-container button.multiselect-option.disabled {
opacity: 0.5;
- pointer-events: none;
}
.frm_code_list.frm-full-hover a span {
max-width: 83px;