PluginProbe
CookieAdmin – Cookie Consent Banner / 1.1.6
CookieAdmin – Cookie Consent Banner v1.1.6
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.6, at includes/admin/settings.php

221 lines 13.6 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 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
123 <div class="cookieadmin-setting">
124 <label class="cookieadmin-title" for="cookieadmin_respect_gpc">'.esc_html__('Respect Global Privacy Control', 'cookieadmin').wp_kses_post($cookieadmin_requires_pro).'
125 <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>
126 </label>
127 <div class="cookieadmin-setting-contents">
128 <label class="cookieadmin_toggle">
129 <input name="cookieadmin_respect_gpc" type="checkbox" id="cookieadmin_respect_gpc" '.(!empty($cookieadmin_settings['respect_gpc']) && cookieadmin_is_pro() ? 'checked' : '').'>
130 <span class="cookieadmin_slider"></span>
131 </label>
132 </div>
133 </div>
134
135 <div class="cookieadmin-setting">
136 <label class="cookieadmin-title" for="cookieadmin_gpc_message">'.esc_html__('GPC Message', 'cookieadmin').wp_kses_post($cookieadmin_requires_pro).'
137 <span class="dashicons dashicons-info cookieadmin-tooltip-box" data-tip="'.esc_html__('Custom message shown when GPC preference is honored.', 'cookieadmin').'"></span>
138 </label>
139 <div class="cookieadmin-setting-contents">
140 <textarea name="cookieadmin_gpc_message" id="cookieadmin_gpc_message" rows="5" cols="50" '.(!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>
141 </div>
142 </div>
143
144 <div class="cookieadmin-setting">
145 <label class="cookieadmin-title" for="cookieadmin_gpc_override_warning">'.esc_html__('GPC Override Warning', 'cookieadmin').wp_kses_post($cookieadmin_requires_pro).'
146 <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>
147 </label>
148 <div class="cookieadmin-setting-contents">
149 <textarea name="cookieadmin_gpc_override_warning" id="cookieadmin_gpc_override_warning" rows="5" cols="50" '.(!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>
150 </div>
151 </div>
152 </div>
153
154 <div class="cookieadmin-setting cookieadmin-save-settings">
155 <div class="cookieadmin-setting-contents">
156 <span><input type="submit" name="cookieadmin_save_settings" class="cookieadmin-btn cookieadmin-btn-primary" value="'.esc_html__('Save Settings', 'cookieadmin').'"></span>
157 </div>
158 </div>
159 </div>
160 </div>';
161
162 wp_nonce_field('cookieadmin_admin_nonce', 'cookieadmin_security');
163 echo '
164 <br/>
165 <br/>
166 </div>
167 </form>
168 </div>';
169
170 \CookieAdmin\Admin::footer_theme();
171 }
172
173 static function save_settings(){
174 global $cookieadmin_lang, $cookieadmin_error, $cookieadmin_msg, $cookieadmin_settings, $cookieadmin_policies;
175
176 // debug_print_backtrace();die;
177
178 check_admin_referer('cookieadmin_admin_nonce', 'cookieadmin_security');
179
180 if(!current_user_can('administrator')){
181 wp_send_json_error(array('message' => __('Sorry, but you do not have permissions to perform this action', 'cookieadmin')));
182 }
183
184 $cookieadmin_settings = get_option('cookieadmin_settings', []);
185
186 // Save cookieadmin_settings only on settings page
187 $cookieadmin_settings['google_consent_mode_v2'] = (isset( $_REQUEST['cookieadmin_google_consent_mode_v2'] ) ? 1 : 0);
188 $cookieadmin_settings['hide_powered_by'] = (isset( $_REQUEST['cookieadmin_hide_powered_by'] ) ? 1 : 0);
189 $cookieadmin_settings['hide_reconsent'] = (isset( $_REQUEST['cookieadmin_hide_reconsent'] ) ? 1 : 0);
190 $cookieadmin_settings['cookieadmin_auto_scan'] = (isset( $_REQUEST['cookieadmin_auto_scan'] ) ? 1 : 0);
191 $cookieadmin_settings['consent_logs_expiry'] = (isset( $_REQUEST['cookieadmin_consent_logs_expiry'] ) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_consent_logs_expiry'])) : 0);
192 $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);
193
194 if(empty($cookieadmin_error)){
195 update_option('cookieadmin_settings', $cookieadmin_settings);
196 }
197
198 //Clear schedule if logs deletion is disabled
199 if(empty($cookieadmin_settings['consent_logs_expiry'])){
200 wp_clear_scheduled_hook('cookieadmin_daily_consent_log_pruning');
201 }
202 //Clear schedule if auto scan is disabled
203 if(empty($cookieadmin_settings['cookieadmin_auto_scan'])){
204 wp_clear_scheduled_hook('cookieadmin_run_auto_cookie_scan');
205 }
206
207 // get the consent type from option table, if not saved then return default as 'gdpr'
208 $law = get_option('cookieadmin_law', 'cookieadmin_gdpr');
209 $policy = cookieadmin_load_policy();
210
211 //set preload and consent field for "cookieadmin-settings" page
212 $policy[$law]['preload'] = !empty($_REQUEST['cookieadmin_preload']) ? array_map('sanitize_text_field', wp_unslash($_REQUEST['cookieadmin_preload'])) : [];
213 $policy[$law]['reload_on_consent'] = !empty($_REQUEST['cookieadmin_reload_on_consent']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_reload_on_consent'])) : '';
214
215 update_option('cookieadmin_consent_settings', $policy);
216
217 if(empty($cookieadmin_error)){
218 $cookieadmin_msg = __('Settings saved successfully', 'cookieadmin');
219 }
220 }
221 }