PluginProbe
CookieAdmin – Cookie Consent Banner / 1.1.5
CookieAdmin – Cookie Consent Banner v1.1.5
1.2.3 1.2.2 1.2.1 1.2.0 1.1.9 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8
cookieadmin / includes / admin / settings.php

settings.php in CookieAdmin – Cookie Consent Banner 1.1.5, at includes/admin/settings.php

191 lines 11.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace CookieAdmin\Admin;
4
5 if(!defined('COOKIEADMIN_VERSION') || !defined('ABSPATH')){
6 die('Hacking Attempt');
7 }
8
9 class Settings{
10
11 static function settings(){
12 global $cookieadmin_lang, $cookieadmin_error, $cookieadmin_msg, $cookieadmin_settings;
13
14 $view = get_option('cookieadmin_law', 'cookieadmin_gdpr');
15 $policy = cookieadmin_load_policy();
16
17 $cookieadmin_requires_pro = \CookieAdmin\Admin::is_feature_available(1);
18
19 \CookieAdmin\Admin::header_theme(__('Settings', 'cookieadmin'));
20
21 echo '
22 <div class="cookieadmin_consent-wrap">
23 <form action="" method="post" id="setting_submenu">
24
25 <div class="cookieadmin_consent-contents">
26 <div class="cookieadmin_consent_settings">
27 <div class="cookieadmin-contents cookieadmin-settings">
28 <div class="cookieadmin-setting setting-prior">
29 <label class="cookieadmin-title">'.esc_html__('Load Cookies prior to consent', 'cookieadmin').'
30 <span class="dashicons dashicons-info cookieadmin-tooltip-box" data-tip="'.esc_html__('Selected category of cookies will be loaded before user consent.', 'cookieadmin').'"></span>
31 </label>
32 <div class="cookieadmin-setting-contents">
33
34 <input name="cookieadmin_preload[]" type="checkbox" id="necessary_preload" value="necessary" checked disabled>
35 <label class="cookieadmin-input" for="necessary_preload">'.esc_html__('Necessary', 'cookieadmin').'</label>
36
37 <input name="cookieadmin_preload[]" type="checkbox" id="functional_preload" value="functional" '.(!empty($policy[$view]['preload']) && in_array("functional", $policy[$view]['preload']) ? 'checked' : '').'>
38 <label class="cookieadmin-input" for="functional_preload">'.esc_html__('Functional', 'cookieadmin').'</label>
39
40 <input name="cookieadmin_preload[]" type="checkbox" id="analytics_preload" value="analytics" '.(!empty($policy[$view]['preload']) && in_array("analytics", $policy[$view]['preload']) ? 'checked' : '').'>
41 <label class="cookieadmin-input" for="analytics_preload">'.esc_html__('Analytical', 'cookieadmin').'</label>
42
43 <input name="cookieadmin_preload[]" type="checkbox" id="marketing_preload" value="marketing" '.(!empty($policy[$view]['preload']) && in_array("marketing", $policy[$view]['preload']) ? 'checked' : '').'>
44 <label for="marketing_preload">'.esc_html__('Advertisement', 'cookieadmin').'</label>
45 </div>
46 </div>'.(!empty($policy[$view]['preload']) ? '<p class="cookieadmin-collapsible-notice">'.esc_html__('Loading cookies prior to receiving user consent will make your website non-compliant with GDPR.', 'cookieadmin').'</p>' : '').'
47
48 <div class="cookieadmin-setting setting-reload">
49 <label class="cookieadmin-title" for="cookieadmin_reload_on_consent">'.esc_html__('Reload page on consent', 'cookieadmin').'
50 <span class="dashicons dashicons-info cookieadmin-tooltip-box" data-tip="'.esc_html__('Page will be loaded on user consent.', 'cookieadmin').'"></span>
51 </label>
52 <div class="cookieadmin-setting-contents">
53 <label class="cookieadmin_toggle">
54 <input name="cookieadmin_reload_on_consent" type="checkbox" id="cookieadmin_reload_on_consent" '.(!empty($policy[$view]['reload_on_consent']) ? 'checked' : '').'>
55 <span class="cookieadmin_slider"></span>
56 </label>
57 </div>
58 </div>
59
60 <div class="coookieadmin-contents" cookieadmin-pro-only="1">
61 <div class="cookieadmin-setting">
62 <label class="cookieadmin-title" for="cookieadmin_google_consent_mode_v2">'.esc_html__('Google Consent Mode v2', 'cookieadmin').wp_kses_post($cookieadmin_requires_pro).'
63 <span class="dashicons dashicons-info cookieadmin-tooltip-box" data-tip="'.esc_html__('Enable Google consent mode v2.', 'cookieadmin').'"></span>
64 </label>
65 <div class="cookieadmin-setting-contents">
66 <label class="cookieadmin_toggle">
67 <input name="cookieadmin_google_consent_mode_v2" type="checkbox" id="cookieadmin_google_consent_mode_v2" '.(!empty($cookieadmin_settings['google_consent_mode_v2']) && cookieadmin_is_pro() ? 'checked' : '').'>
68 <span class="cookieadmin_slider"></span>
69 </label>
70 </div>
71 </div>
72
73 <div class="cookieadmin-setting">
74 <label class="cookieadmin-title" for="cookieadmin_hide_powered_by">'.esc_html__('Hide Powered by Link', 'cookieadmin').wp_kses_post($cookieadmin_requires_pro).'
75 <span class="dashicons dashicons-info cookieadmin-tooltip-box" data-tip="'.esc_html__('Hide powered by CookieAdmin on banner.', 'cookieadmin').'"></span>
76 </label>
77 <div class="cookieadmin-setting-contents">
78 <label class="cookieadmin_toggle">
79 <input name="cookieadmin_hide_powered_by" type="checkbox" id="cookieadmin_hide_powered_by" '.(!empty($cookieadmin_settings['hide_powered_by']) && cookieadmin_is_pro() ? 'checked' : '').'>
80 <span class="cookieadmin_slider"></span>
81 </label>
82 </div>
83 </div>
84
85 <div class="cookieadmin-setting">
86 <label class="cookieadmin-title" for="cookieadmin_hide_reconsent">'.esc_html__('Hide Re-consent Icon', 'cookieadmin').wp_kses_post($cookieadmin_requires_pro).'
87 <span class="dashicons dashicons-info cookieadmin-tooltip-box" data-tip="'.esc_html__('Hide reconsent icon after user consent.', 'cookieadmin').'"></span>
88 </label>
89 <div class="cookieadmin-setting-contents">
90 <label class="cookieadmin_toggle">
91 <input name="cookieadmin_hide_reconsent" type="checkbox" id="cookieadmin_hide_reconsent" '.(!empty($cookieadmin_settings['hide_reconsent']) && cookieadmin_is_pro() ? 'checked' : '').'>
92 <span class="cookieadmin_slider"></span>
93 </label>
94 </div>
95 </div>
96
97 <div class="cookieadmin-setting">
98 <label class="cookieadmin-title" for="cookieadmin_auto_scan">'.esc_html__('Auto Cookies Scan', 'cookieadmin').wp_kses_post($cookieadmin_requires_pro).'
99 <span class="dashicons dashicons-info cookieadmin-tooltip-box" data-tip="'.esc_html__('Monthly auto scan will detect cookies.', 'cookieadmin').'"></span>
100 </label>
101 <div class="cookieadmin-setting-contents">
102 <label class="cookieadmin_toggle">
103 <input name="cookieadmin_auto_scan" type="checkbox" id="cookieadmin_auto_scan" '.(!empty($cookieadmin_settings['cookieadmin_auto_scan']) && cookieadmin_is_pro() ? 'checked' : '').'>
104 <span class="cookieadmin_slider"></span>
105 </label>
106 </div>
107 </div>
108
109 <div class="cookieadmin-setting">
110 <label class="cookieadmin-title" for="cookieadmin_consent_logs_expiry">'.esc_html__('Consent Log Cleanup', 'cookieadmin').wp_kses_post($cookieadmin_requires_pro).'
111 <span class="dashicons dashicons-info cookieadmin-tooltip-box" data-tip="'.esc_html__('Daily auto delete consent logs older than the set limit.', 'cookieadmin').'"></span>
112 </label>
113 <div class="cookieadmin-setting-contents cookieadmin-setting cookieadmin-setting-logs">
114 <label class="cookieadmin_toggle">
115 <input name="cookieadmin_consent_logs_expiry" type="checkbox" id="cookieadmin_consent_logs_expiry" '.(!empty($cookieadmin_settings['consent_logs_expiry']) && cookieadmin_is_pro() ? 'checked' : '').'>
116 <span class="cookieadmin_slider"></span>
117 </label>
118 <input name="cookieadmin_consent_logs_expiry_days" class="cookieadmin-tooltip-box" id="cookieadmin_consent_logs_expiry_days" value="'.((!empty($cookieadmin_settings['consent_logs_expiry_days']) && cookieadmin_is_pro()) ? esc_attr($cookieadmin_settings['consent_logs_expiry_days']) : '365').'" data-tip="'.esc_html__('Keep consent logs for these many days', 'cookieadmin').'">
119 <input type="button" class="button '.(cookieadmin_is_pro() ? ' cookieadmin-purge-consent-btn cookieadmin-tooltip-box' : '').'" data-tip="'.esc_html__('Delete consent logs older than the set limit (runs once)', 'cookieadmin').'" value="'.esc_html__('Delete Now', 'cookieadmin').'"/>
120 </div>
121 </div>
122 </div>
123
124 <div class="cookieadmin-setting cookieadmin-save-settings">
125 <div class="cookieadmin-setting-contents">
126 <span><input type="submit" name="cookieadmin_save_settings" class="cookieadmin-btn cookieadmin-btn-primary" value="'.esc_html__('Save Settings', 'cookieadmin').'"></span>
127 </div>
128 </div>
129 </div>
130 </div>';
131
132 wp_nonce_field('cookieadmin_admin_nonce', 'cookieadmin_security');
133 echo '
134 <br/>
135 <br/>
136 </div>
137 </form>
138 </div>';
139
140 \CookieAdmin\Admin::footer_theme();
141 }
142
143 static function save_settings(){
144 global $cookieadmin_lang, $cookieadmin_error, $cookieadmin_msg, $cookieadmin_settings, $cookieadmin_policies;
145
146 // debug_print_backtrace();die;
147
148 check_admin_referer('cookieadmin_admin_nonce', 'cookieadmin_security');
149
150 if(!current_user_can('administrator')){
151 wp_send_json_error(array('message' => __('Sorry, but you do not have permissions to perform this action', 'cookieadmin')));
152 }
153
154 $cookieadmin_settings = get_option('cookieadmin_settings', []);
155
156 // Save cookieadmin_settings only on settings page
157 $cookieadmin_settings['google_consent_mode_v2'] = (isset( $_REQUEST['cookieadmin_google_consent_mode_v2'] ) ? 1 : 0);
158 $cookieadmin_settings['hide_powered_by'] = (isset( $_REQUEST['cookieadmin_hide_powered_by'] ) ? 1 : 0);
159 $cookieadmin_settings['hide_reconsent'] = (isset( $_REQUEST['cookieadmin_hide_reconsent'] ) ? 1 : 0);
160 $cookieadmin_settings['cookieadmin_auto_scan'] = (isset( $_REQUEST['cookieadmin_auto_scan'] ) ? 1 : 0);
161 $cookieadmin_settings['consent_logs_expiry'] = (isset( $_REQUEST['cookieadmin_consent_logs_expiry'] ) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_consent_logs_expiry'])) : 0);
162 $cookieadmin_settings['consent_logs_expiry_days'] = (isset( $_REQUEST['cookieadmin_consent_logs_expiry_days'] ) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_consent_logs_expiry_days'])) : 365);
163
164 if(empty($cookieadmin_error)){
165 update_option('cookieadmin_settings', $cookieadmin_settings);
166 }
167
168 //Clear schedule if logs deletion is disabled
169 if(empty($cookieadmin_settings['consent_logs_expiry'])){
170 wp_clear_scheduled_hook('cookieadmin_daily_consent_log_pruning');
171 }
172 //Clear schedule if auto scan is disabled
173 if(empty($cookieadmin_settings['cookieadmin_auto_scan'])){
174 wp_clear_scheduled_hook('cookieadmin_run_auto_cookie_scan');
175 }
176
177 // get the consent type from option table, if not saved then return default as 'gdpr'
178 $law = get_option('cookieadmin_law', 'cookieadmin_gdpr');
179 $policy = cookieadmin_load_policy();
180
181 //set preload and consent field for "cookieadmin-settings" page
182 $policy[$law]['preload'] = !empty($_REQUEST['cookieadmin_preload']) ? array_map('sanitize_text_field', wp_unslash($_REQUEST['cookieadmin_preload'])) : [];
183 $policy[$law]['reload_on_consent'] = !empty($_REQUEST['cookieadmin_reload_on_consent']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_reload_on_consent'])) : '';
184
185 update_option('cookieadmin_consent_settings', $policy);
186
187 if(empty($cookieadmin_error)){
188 $cookieadmin_msg = __('Settings saved successfully', 'cookieadmin');
189 }
190 }
191 }