PluginProbe
CookieAdmin – Cookie Consent Banner / 1.2.6
CookieAdmin – Cookie Consent Banner v1.2.6
1.2.6 1.2.5 1.2.4 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 All 26 releases
cookieadmin / includes / admin / settings.php

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

384 lines 23.1 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, $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 if(empty($cookieadmin_settings)){
22 $cookieadmin_settings = get_option('cookieadmin_settings', []);
23 }
24
25 echo '
26 <div class="cookieadmin_consent-wrap">
27 <form action="" method="post" id="setting_submenu">
28
29 <div class="cookieadmin-card">
30 <div class="cookieadmin-card-header">
31 <span class="cookieadmin-card-title"><span class="dashicons dashicons-download"></span> '.esc_html__('Cookie Loading', 'cookieadmin').'</span>
32 </div>
33 <div class="cookieadmin-card-body">
34 <div class="cookieadmin-setting">
35 <label class="cookieadmin-title">'.esc_html__('Load cookies prior to consent', 'cookieadmin').'
36 <span class="dashicons dashicons-info cookieadmin-tooltip-box" data-tip="'.esc_html__('Selected category of cookies will be loaded before user consent.', 'cookieadmin').'"></span>
37 </label>
38 <div class="cookieadmin-setting-contents">
39 <label class="cookieadmin-horizontal" style="cursor:pointer; font-weight:400;">
40 <input name="cookieadmin_preload[]" type="checkbox" value="necessary" checked disabled>
41 '.esc_html__('Necessary', 'cookieadmin').'
42 </label>
43 <label class="cookieadmin-horizontal" style="cursor:pointer; font-weight:400;">
44 <input name="cookieadmin_preload[]" type="checkbox" id="functional_preload" value="functional" '.(!empty($policy[$view]['preload']) && in_array("functional", $policy[$view]['preload']) ? 'checked' : '').'>
45 '.esc_html__('Functional', 'cookieadmin').'
46 </label>
47 <label class="cookieadmin-horizontal" style="cursor:pointer; font-weight:400;">
48 <input name="cookieadmin_preload[]" type="checkbox" id="analytics_preload" value="analytics" '.(!empty($policy[$view]['preload']) && in_array("analytics", $policy[$view]['preload']) ? 'checked' : '').'>
49 '.esc_html__('Analytical', 'cookieadmin').'
50 </label>
51 <label class="cookieadmin-horizontal" style="cursor:pointer; font-weight:400;">
52 <input name="cookieadmin_preload[]" type="checkbox" id="marketing_preload" value="marketing" '.(!empty($policy[$view]['preload']) && in_array("marketing", $policy[$view]['preload']) ? 'checked' : '').'>
53 '.esc_html__('Advertisement', 'cookieadmin').'
54 </label>
55
56 <div class="cookieadmin-collapsible-notice" style="display:'.(!empty($policy[$view]['preload'])? 'block':'none').'">'.esc_html__('Loading cookies prior to receiving user consent will make your website non-compliant with GDPR.', 'cookieadmin').'</div>
57 </div>
58 </div>
59
60 <div class="cookieadmin-setting">
61 <label class="cookieadmin-title" for="cookieadmin_reload_on_consent">'.esc_html__('Reload page on consent', 'cookieadmin').'
62 <span class="dashicons dashicons-info cookieadmin-tooltip-box" data-tip="'.esc_html__('Page will be loaded on user consent.', 'cookieadmin').'"></span>
63 </label>
64 <div class="cookieadmin-setting-contents">
65 <label class="cookieadmin-toggle-wrap">
66 <input name="cookieadmin_reload_on_consent" type="checkbox" id="cookieadmin_reload_on_consent" '.(!empty($policy[$view]['reload_on_consent']) ? 'checked' : '').'>
67 <div class="cookieadmin-toggle-track">
68 <div class="cookieadmin-toggle-thumb"></div>
69 </div>
70 </label>
71 </div>
72 </div>
73 </div>
74 </div>';
75
76 // Card: Resource blocking
77 echo '
78 <div class="cookieadmin-card cookieadmin-mt-16">
79 <div class="cookieadmin-card-header">
80 <span class="cookieadmin-card-title"><span class="dashicons dashicons-media-document"></span> '.esc_html__('Resource Blocking', 'cookieadmin').'</span>
81 </div>
82 <div class="cookieadmin-card-body">
83 <div class="cookieadmin-setting">
84 <label class="cookieadmin-title" for="cookieadmin_block_scripts">'.esc_html__('Block scripts', 'cookieadmin').'
85 <span class="dashicons dashicons-info cookieadmin-tooltip-box" data-tip="'.esc_html__('It blocks the scripts related to the scanned Cookies.', 'cookieadmin').'"></span>
86 </label>
87 <div class="cookieadmin-setting-contents">
88 <label class="cookieadmin-toggle-wrap">
89 <input name="cookieadmin_block_scripts" type="checkbox" id="cookieadmin_block_scripts" '.(!empty($cookieadmin_settings['block_scripts']) ? 'checked' : '').'>
90 <div class="cookieadmin-toggle-track">
91 <div class="cookieadmin-toggle-thumb"></div>
92 </div>
93 </label>
94 </div>
95 </div>
96 <div class="cookieadmin-setting setting-blocking" cookieadmin-pro-only="1">
97 <label class="cookieadmin-title" for="cookieadmin_content_blocking">'.esc_html__('Content Blocking', 'cookieadmin').'
98 <span class="dashicons dashicons-info cookieadmin-tooltip-box" data-tip="'.esc_html__('Block third-party content which uses iframes to load cookies until user consent is given.', 'cookieadmin').'"></span>
99 </label>
100 <div class="cookieadmin-setting-contents">
101 <label class="cookieadmin-toggle-wrap">';
102 if(defined('COOKIEADMIN_PRO_VERSION')){
103 echo '<input name="cookieadmin_content_blocking" type="checkbox" id="cookieadmin_content_blocking" '.(!empty($cookieadmin_settings['content_blocking']) && cookieadmin_is_pro() ? 'checked' : '').' />';
104 } else {
105 echo '<input type="checkbox" id="cookieadmin_content_blocking" />';
106 }
107
108 echo '<div class="cookieadmin-toggle-track">
109 <div class="cookieadmin-toggle-thumb"></div>
110 </div>
111 '.wp_kses_post($cookieadmin_requires_pro).'
112 </label>
113 </div>
114 </div>
115
116 <div class="cookieadmin-content-blocking-options" style="display: '.(!empty($cookieadmin_settings['content_blocking']) ? 'block' : 'none').';">
117 <div class="cookieadmin-cb-services">
118 <label class="cookieadmin-title"><input type="checkbox" name="cookieadmin_content_blocking_services[]" value="youtube" '.(!empty($cookieadmin_settings['content_blocking_services']) && in_array('youtube', $cookieadmin_settings['content_blocking_services']) ? 'checked' : '').'> '.esc_html__('YouTube', 'cookieadmin').'</label>
119 <label class="cookieadmin-title"><input type="checkbox" name="cookieadmin_content_blocking_services[]" value="vimeo" '.(!empty($cookieadmin_settings['content_blocking_services']) && in_array('vimeo', $cookieadmin_settings['content_blocking_services']) ? 'checked' : '').'> '.esc_html__('Vimeo', 'cookieadmin').'</label>
120 <label class="cookieadmin-title"><input type="checkbox" name="cookieadmin_content_blocking_services[]" value="soundcloud" '.(!empty($cookieadmin_settings['content_blocking_services']) && in_array('soundcloud', $cookieadmin_settings['content_blocking_services']) ? 'checked' : '').'> '.esc_html__('SoundCloud', 'cookieadmin').'</label>
121 <label class="cookieadmin-title"><input type="checkbox" name="cookieadmin_content_blocking_services[]" value="dailymotion" '.(!empty($cookieadmin_settings['content_blocking_services']) && in_array('dailymotion', $cookieadmin_settings['content_blocking_services']) ? 'checked' : '').'> '.esc_html__('Dailymotion', 'cookieadmin').'</label>
122 <label class="cookieadmin-title"><input type="checkbox" name="cookieadmin_content_blocking_services[]" value="maps" '.(!empty($cookieadmin_settings['content_blocking_services']) && in_array('maps', $cookieadmin_settings['content_blocking_services']) ? 'checked' : '').'> '.esc_html__('Google Maps', 'cookieadmin').'</label>
123 </div>
124 </div>
125 </div>
126 </div>';
127
128 // Card: Advanced Features (PRO)
129 echo '
130 <div class="cookieadmin-card cookieadmin-mt-16" cookieadmin-pro-only="1">
131 <div class="cookieadmin-card-header">
132 <span class="cookieadmin-card-title"><span class="dashicons dashicons-admin-generic"></span> '.esc_html__('Advanced Features', 'cookieadmin').wp_kses_post($cookieadmin_requires_pro).'</span>
133 </div>
134 <div class="cookieadmin-card-body">
135 <div class="cookieadmin-setting">
136 <label class="cookieadmin-title" for="cookieadmin_google_consent_mode_v2">'.esc_html__('Google Consent Mode v2', 'cookieadmin').'
137 <span class="dashicons dashicons-info cookieadmin-tooltip-box" data-tip="'.esc_html__('Enable Google consent mode v2.', 'cookieadmin').'"></span>
138 </label>
139 <div class="cookieadmin-setting-contents">
140 <label class="cookieadmin-toggle-wrap">
141 <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' : '').'>
142 <div class="cookieadmin-toggle-track">
143 <div class="cookieadmin-toggle-thumb"></div>
144 </div>
145 </label>
146 </div>
147 </div>
148
149 <div class="cookieadmin-setting">
150 <label class="cookieadmin-title" for="cookieadmin_google_advance_consent_mode">'.esc_html__('Load Google tags before consent', 'cookieadmin').'
151 <span class="dashicons dashicons-info cookieadmin-tooltip-box" data-tip="'.esc_html__('Google tags will fire immediately on the page load before consent.', 'cookieadmin').'"></span>
152 </label>
153 <div class="cookieadmin-setting-contents">
154 <label class="cookieadmin-toggle-wrap">
155 <input name="cookieadmin_google_advance_consent_mode" type="checkbox" id="cookieadmin_google_advance_consent_mode" '.(!empty($cookieadmin_settings['cookieadmin_google_advance_consent_mode']) && cookieadmin_is_pro() ? 'checked' : '').'>
156 <div class="cookieadmin-toggle-track">
157 <div class="cookieadmin-toggle-thumb"></div>
158 </div>
159 </label>
160 </div>
161 </div>
162
163 <div class="cookieadmin-setting">
164 <label class="cookieadmin-title" for="cookieadmin_clarity_consent">'.esc_html__('Clarity Consent Mode V2', 'cookieadmin').'
165 <span class="dashicons dashicons-info cookieadmin-tooltip-box" data-tip="'.esc_html__('Enable Microsoft Clarity consent mode v2.', 'cookieadmin').'"></span>
166 </label>
167 <div class="cookieadmin-setting-contents">
168 <label class="cookieadmin-toggle-wrap">
169 <input name="cookieadmin_clarity_consent" type="checkbox" id="cookieadmin_clarity_consent" '.(!empty($cookieadmin_settings['clarity_consent']) && cookieadmin_is_pro() ? 'checked' : '').'>
170 <div class="cookieadmin-toggle-track">
171 <div class="cookieadmin-toggle-thumb"></div>
172 </div>
173 </label>
174 </div>
175 </div>
176
177 <div class="cookieadmin-setting">
178 <label class="cookieadmin-title" for="cookieadmin_hide_powered_by">'.esc_html__('Hide Powered by Link', 'cookieadmin').'
179 <span class="dashicons dashicons-info cookieadmin-tooltip-box" data-tip="'.esc_html__('Hide powered by CookieAdmin on banner.', 'cookieadmin').'"></span>
180 </label>
181 <div class="cookieadmin-setting-contents">
182 <label class="cookieadmin-toggle-wrap">
183 <input name="cookieadmin_hide_powered_by" type="checkbox" id="cookieadmin_hide_powered_by" '.(!empty($cookieadmin_settings['hide_powered_by']) && cookieadmin_is_pro() ? 'checked' : '').'>
184 <div class="cookieadmin-toggle-track">
185 <div class="cookieadmin-toggle-thumb"></div>
186 </div>
187 </label>
188 </div>
189 </div>
190
191 <div class="cookieadmin-setting">
192 <label class="cookieadmin-title" for="cookieadmin_hide_reconsent">'.esc_html__('Hide Re-consent Icon', 'cookieadmin').'
193 <span class="dashicons dashicons-info cookieadmin-tooltip-box" data-tip="'.esc_html__('Hide reconsent icon after user consent.', 'cookieadmin').'"></span>
194 </label>
195 <div class="cookieadmin-setting-contents">
196 <label class="cookieadmin-toggle-wrap">
197 <input name="cookieadmin_hide_reconsent" type="checkbox" id="cookieadmin_hide_reconsent" '.(!empty($cookieadmin_settings['hide_reconsent']) && cookieadmin_is_pro() ? 'checked' : '').'>
198 <div class="cookieadmin-toggle-track">
199 <div class="cookieadmin-toggle-thumb"></div>
200 </div>
201 </label>
202 </div>
203 </div>
204
205 <div class="cookieadmin-setting">
206 <label class="cookieadmin-title" for="cookieadmin_auto_scan">'.esc_html__('Auto Cookies Scan', 'cookieadmin').'
207 <span class="dashicons dashicons-info cookieadmin-tooltip-box" data-tip="'.esc_html__('Monthly auto scan will detect cookies.', 'cookieadmin').'"></span>
208 </label>
209 <div class="cookieadmin-setting-contents">
210 <label class="cookieadmin-toggle-wrap">
211 <input name="cookieadmin_auto_scan" type="checkbox" id="cookieadmin_auto_scan" '.(!empty($cookieadmin_settings['cookieadmin_auto_scan']) && cookieadmin_is_pro() ? 'checked' : '').'>
212 <div class="cookieadmin-toggle-track">
213 <div class="cookieadmin-toggle-thumb"></div>
214 </div>
215 </label>
216 </div>
217 </div>
218 <div class="cookieadmin-setting">
219 <label class="cookieadmin-title" for="cookieadmin_shared_subdomain_consent">'.esc_html__('Shared Subdomain Consent', 'cookieadmin').'
220 <span class="dashicons dashicons-info cookieadmin-tooltip-box" data-tip="'.esc_html__('Enable shared consent across subdomains.', 'cookieadmin').'"></span>
221 </label>
222 <div class="cookieadmin-setting-contents">
223 <label class="cookieadmin-toggle-wrap">
224 <input name="cookieadmin_shared_subdomain_consent" type="checkbox" id="cookieadmin_shared_subdomain_consent" '.(!empty($cookieadmin_settings['shared_subdomain_consent']) && cookieadmin_is_pro() ? 'checked' : '').'>
225 <div class="cookieadmin-toggle-track">
226 <div class="cookieadmin-toggle-thumb"></div>
227 </div>
228 </label>
229 </div>
230 </div>
231 </div>
232 </div>';
233
234 // Card: Data Management (PRO)
235 echo '
236 <div class="cookieadmin-card cookieadmin-mt-16" cookieadmin-pro-only="1">
237 <div class="cookieadmin-card-header">
238 <span class="cookieadmin-card-title"><span class="dashicons dashicons-database"></span> '.esc_html__('Data Management', 'cookieadmin').wp_kses_post($cookieadmin_requires_pro).'</span>
239 </div>
240 <div class="cookieadmin-card-body">
241 <div class="cookieadmin-setting">
242 <label class="cookieadmin-title" for="cookieadmin_consent_logs_expiry">'.esc_html__('Consent Log Cleanup', 'cookieadmin').'
243 <span class="dashicons dashicons-info cookieadmin-tooltip-box" data-tip="'.esc_html__('Daily auto delete consent logs older than the set limit.', 'cookieadmin').'"></span>
244 </label>
245 <div class="cookieadmin-setting-contents">
246 <label class="cookieadmin-toggle-wrap">
247 <input name="cookieadmin_consent_logs_expiry" type="checkbox" id="cookieadmin_consent_logs_expiry" '.(!empty($cookieadmin_settings['consent_logs_expiry']) && cookieadmin_is_pro() ? 'checked' : '').'>
248 <div class="cookieadmin-toggle-track">
249 <div class="cookieadmin-toggle-thumb"></div>
250 </div>
251 </label>
252 <input name="cookieadmin_consent_logs_expiry_days" id="cookieadmin_consent_logs_expiry_days" class="cookieadmin-tooltip-box" 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').'" style="width:60px; text-align:center; margin:0 10px;">
253 <input type="button" class="cookieadmin-btn cookieadmin-btn-sm '.((cookieadmin_is_pro()) ? ' cookieadmin-btn-danger cookieadmin-tooltip-box cookieadmin-purge-consent-btn' : '').'" data-tip="'.esc_html__('Delete consent logs older than the set limit (runs once)', 'cookieadmin').'" value="'.esc_html__('Delete Now', 'cookieadmin').'"/>
254 </div>
255 </div>
256 </div>
257 </div>';
258
259 // Card: Global Privacy Control (PRO)
260 echo '
261 <div class="cookieadmin-card cookieadmin-mt-16" cookieadmin-pro-only="1">
262 <div class="cookieadmin-card-header">
263 <span class="cookieadmin-card-title"><span class="dashicons dashicons-privacy"></span> '.esc_html__('Global Privacy Control', 'cookieadmin').wp_kses_post($cookieadmin_requires_pro).'</span>
264 </div>
265 <div class="cookieadmin-card-body">
266 <div class="cookieadmin-setting">
267 <label class="cookieadmin-title" for="cookieadmin_respect_gpc">'.esc_html__('Respect GPC', 'cookieadmin').'
268 <span class="dashicons dashicons-info cookieadmin-tooltip-box" data-tip="'.esc_html__('Automatically honor GPC signals from browsers. When enabled, users with GPC enabled will automatically have non-essential cookies rejected.', 'cookieadmin').'"></span>
269 </label>
270 <div class="cookieadmin-setting-contents">
271 <label class="cookieadmin-toggle-wrap">
272 <input name="cookieadmin_respect_gpc" type="checkbox" id="cookieadmin_respect_gpc" '.(!empty($cookieadmin_settings['respect_gpc']) && cookieadmin_is_pro() ? 'checked' : '').'>
273 <div class="cookieadmin-toggle-track">
274 <div class="cookieadmin-toggle-thumb"></div>
275 </div>
276 </label>
277 </div>
278 </div>
279
280 <div class="cookieadmin-setting">
281 <label class="cookieadmin-title" for="cookieadmin_gpc_message">'.esc_html__('GPC Message', 'cookieadmin').'
282 <span class="dashicons dashicons-info cookieadmin-tooltip-box" data-tip="'.esc_html__('Custom message shown when GPC preference is honored.', 'cookieadmin').'"></span>
283 </label>
284 <div class="cookieadmin-setting-contents">
285 <textarea name="cookieadmin_gpc_message" id="cookieadmin_gpc_message" rows="4" style="width:100%; max-width:500px;" '.(!cookieadmin_is_pro() ? 'disabled' : '').'>'.esc_textarea(!empty($cookieadmin_settings['gpc_message']) ? $cookieadmin_settings['gpc_message'] : (!empty($cookieadmin['gpc_message_default']) ? $cookieadmin['gpc_message_default'] : '')).'</textarea>
286 </div>
287 </div>
288
289 <div class="cookieadmin-setting">
290 <label class="cookieadmin-title" for="cookieadmin_gpc_override_warning">'.esc_html__('GPC Override Warning', 'cookieadmin').'
291 <span class="dashicons dashicons-info cookieadmin-tooltip-box" data-tip="'.esc_html__('Warning shown when user tries to enable cookies while GPC signal is active.', 'cookieadmin').'"></span>
292 </label>
293 <div class="cookieadmin-setting-contents">
294 <textarea name="cookieadmin_gpc_override_warning" id="cookieadmin_gpc_override_warning" rows="4" style="width:100%; max-width:500px;" '.(!cookieadmin_is_pro() ? 'disabled' : '').'>'.esc_textarea(!empty($cookieadmin_settings['gpc_override_warning']) ? $cookieadmin_settings['gpc_override_warning'] : (!empty($cookieadmin['gpc_override_warning_default']) ? $cookieadmin['gpc_override_warning_default'] : '')).'</textarea>
295 </div>
296 </div>
297 </div>
298 </div>';
299 wp_nonce_field('cookieadmin_admin_nonce', 'cookieadmin_security');
300
301 echo '
302 <div class="cookieadmin-save-bar">
303 <input type="submit" name="cookieadmin_save_settings" class="cookieadmin-btn cookieadmin-btn-primary" value="'.esc_html__('Save Settings', 'cookieadmin').'">
304 </div>
305
306 </form>
307 </div>';
308
309 \CookieAdmin\Admin::footer_theme();
310 }
311
312 static function save_settings(){
313 global $cookieadmin_lang, $cookieadmin_error, $cookieadmin_msg, $cookieadmin_settings, $cookieadmin_policies;
314
315 // debug_print_backtrace();die;
316
317 check_admin_referer('cookieadmin_admin_nonce', 'cookieadmin_security');
318
319 if(!current_user_can('administrator')){
320 wp_send_json_error(array('message' => __('Sorry, but you do not have permissions to perform this action', 'cookieadmin')));
321 }
322
323 $cookieadmin_settings = get_option('cookieadmin_settings', []);
324
325 // Save cookieadmin_settings only on settings page
326 $cookieadmin_settings['block_scripts'] = !empty($_REQUEST['cookieadmin_block_scripts']);
327 $cookieadmin_settings['google_consent_mode_v2'] = (isset( $_REQUEST['cookieadmin_google_consent_mode_v2'] ) ? 1 : 0);
328 $cookieadmin_settings['hide_powered_by'] = (isset( $_REQUEST['cookieadmin_hide_powered_by'] ) ? 1 : 0);
329 $cookieadmin_settings['hide_reconsent'] = (isset( $_REQUEST['cookieadmin_hide_reconsent'] ) ? 1 : 0);
330 $cookieadmin_settings['cookieadmin_auto_scan'] = (isset( $_REQUEST['cookieadmin_auto_scan'] ) ? 1 : 0);
331 $cookieadmin_settings['consent_logs_expiry'] = (isset( $_REQUEST['cookieadmin_consent_logs_expiry'] ) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_consent_logs_expiry'])) : 0);
332 $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);
333
334 $cookieadmin_settings['clarity_consent'] = !empty($_REQUEST['cookieadmin_clarity_consent']);
335 $cookieadmin_settings['shared_subdomain_consent'] = !empty($_REQUEST['cookieadmin_shared_subdomain_consent']);
336 $cookieadmin_settings['content_blocking'] = !empty($_REQUEST['cookieadmin_content_blocking']);
337 $cookieadmin_settings['content_blocking_services'] = [];
338 if(!empty($_REQUEST['cookieadmin_content_blocking_services'])){
339 $cookieadmin_settings['content_blocking_services'] = array_map('sanitize_text_field', wp_unslash($_REQUEST['cookieadmin_content_blocking_services']));
340 }
341
342 // Google's advance consent mode (Google tags will be loaded on page load is enabled)
343 $cookieadmin_settings['cookieadmin_google_advance_consent_mode'] = (isset( $_REQUEST['cookieadmin_google_advance_consent_mode'] ) ? 1 : 0);
344
345 if(empty($cookieadmin_error)){
346 update_option('cookieadmin_settings', $cookieadmin_settings);
347 }
348
349 //Clear schedule if logs deletion is disabled
350 if(empty($cookieadmin_settings['consent_logs_expiry'])){
351 wp_clear_scheduled_hook('cookieadmin_daily_consent_log_pruning');
352 }
353 //Clear schedule if auto scan is disabled
354 if(empty($cookieadmin_settings['cookieadmin_auto_scan'])){
355 wp_clear_scheduled_hook('cookieadmin_run_auto_cookie_scan');
356 }
357
358 // get the consent type from option table, if not saved then return default as 'gdpr'
359 $law = get_option('cookieadmin_law', 'cookieadmin_gdpr');
360 $policy = cookieadmin_load_policy();
361
362 //set preload and consent field for "cookieadmin-settings" page
363 $policy[$law]['preload'] = !empty($_REQUEST['cookieadmin_preload']) ? array_map('sanitize_text_field', wp_unslash($_REQUEST['cookieadmin_preload'])) : [];
364 $policy[$law]['reload_on_consent'] = !empty($_REQUEST['cookieadmin_reload_on_consent']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_reload_on_consent'])) : '';
365
366 // Check for certain fields to be saved only if their values is not the same as default
367 $cookieadmin_check_changes = array('cookieadmin_notice_title', 'cookieadmin_notice', 'cookieadmin_preference_title', 'cookieadmin_preference', 'reConsent_title', 'cookieadmin_customize_btn', 'cookieadmin_reject_btn', 'cookieadmin_accept_btn', 'cookieadmin_save_btn');
368
369 foreach($cookieadmin_check_changes as $c_field){
370 foreach($policy as $c_law => $c_val){
371 if(!empty($cookieadmin_policies[$c_law]) && !empty($c_val[$c_field]) && $c_val[$c_field] == $cookieadmin_policies[$c_law][$c_field]){
372 unset($policy[$c_law][$c_field]);
373 }
374 }
375 }
376
377 update_option('cookieadmin_consent_settings', $policy);
378
379 if(empty($cookieadmin_error)){
380 $cookieadmin_msg = __('Settings saved successfully', 'cookieadmin');
381 }
382 }
383 }
384