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 / consent.php

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

506 lines 37.8 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 Consent{
10
11 static function consent_form(){
12 global $cookieadmin_lang, $cookieadmin_error, $cookieadmin_msg;
13
14 $view = get_option('cookieadmin_law', 'cookieadmin_gdpr');
15 $policy = cookieadmin_load_policy();
16
17 $raw_template = cookieadmin_load_consent_template($policy[$view], $view);
18
19 if(!is_array($raw_template) || empty($raw_template)){
20 return false;
21 }
22
23 $templates = implode('', $raw_template);
24
25 if(empty($templates)){
26 echo '<div class="notice notice-error">
27 <p>
28 <strong>CookieAdmin Error:</strong> Cannot load required template file.
29 Please reinstall the plugin or contact support.
30 </p>
31 </div>';
32 return false;
33 }
34
35 $cookieadmin_requires_pro = \CookieAdmin\Admin::is_feature_available(1);
36
37 $icons_grid = apply_filters('cookieadmin_reconsent_icons', '', $policy[$view]);
38
39 $law_types = apply_filters('cookieadmin_geo_law_options', [
40 'cookieadmin_gdpr' => __('GDPR', 'cookieadmin'),
41 'cookieadmin_us' => __('US State Laws', 'cookieadmin'),
42 ]);
43
44 //Start UI
45 \CookieAdmin\Admin::header_theme(__('Consent Form', 'cookieadmin'));
46
47 echo '
48 <div class="cookieadmin_consent-wrap">
49 <form action="" method="post" id="consent_submenu">
50
51 <div class="cookieadmin-card">
52 <div class="cookieadmin-card-header">
53 <span class="cookieadmin-card-title">'.esc_html__('General Settings', 'cookieadmin').'</span>
54 </div>
55 <div class="cookieadmin-card-body">
56
57 <div class="cookieadmin-setting">
58 <label class="cookieadmin-title" for="cookieadmin_consent_type">'.esc_html__('Consent Type', 'cookieadmin').'</label>
59 <div class="cookieadmin-setting-contents">
60 <select name="cookieadmin_consent_type" id="cookieadmin_consent_type">';
61 foreach($law_types as $name => $label){
62 echo '<option name="'.esc_attr($name).'" id="'.esc_attr($name).'" '.((!empty($view) && $view === $name) ? 'selected' : '').' value="'.esc_attr($name).'">'.esc_html($label).'</option>';
63 }
64 echo '</select>
65 </div>
66 </div>
67
68 <div class="cookieadmin-setting cookieadmin_consent-expiry">
69 <label class="cookieadmin-title" for="cookieadmin_consent_expiry">'.esc_html__('Consent Expiry', 'cookieadmin').'</label>
70 <div class="cookieadmin-setting-contents">
71 <input type="number" name="cookieadmin_days" id="cookieadmin_consent_expiry" style="max-width:80px;" value="'.esc_attr($policy[$view]['cookieadmin_days']).'"> <span class="cookieadmin-text-muted" style="font-size:13px;">'.esc_html__('days', 'cookieadmin').'</span>
72 </div>
73 </div>
74
75 <div class="cookieadmin-setting consent-layout">
76 <label class="cookieadmin-title">'.esc_html__('Notice Type', 'cookieadmin').'</label>
77 <div class="cookieadmin-setting-contents">
78 <label class="cookieadmin-horizontal" style="cursor:pointer; font-weight:400;">
79 <input name="cookieadmin_layout" type="radio" id="cookieadmin_layout_box" value="box">
80 '.esc_html__('Box', 'cookieadmin').'
81 </label>
82 <label class="cookieadmin-horizontal" style="cursor:pointer; font-weight:400;">
83 <input name="cookieadmin_layout" type="radio" id="cookieadmin_layout_footer" value="footer">
84 '.esc_html__('Footer', 'cookieadmin').'
85 </label>
86 <label class="cookieadmin-horizontal" style="cursor:pointer; font-weight:400;">
87 <input name="cookieadmin_layout" type="radio" id="cookieadmin_layout_popup" value="popup">
88 '.esc_html__('Popup', 'cookieadmin').'
89 </label>
90 </div>
91 </div>
92
93 <div class="cookieadmin-setting consent-position">
94 <label class="cookieadmin-title">'.esc_html__('Notice Position', 'cookieadmin').'</label>
95 <div class="cookieadmin-setting-contents">
96 <label class="cookieadmin-horizontal" style="cursor:pointer; font-weight:400;">
97 <input class="cookieadmin_box_layout" id="cookieadmin_position_bottom_left" name="cookieadmin_position" type="radio" value="bottom_left" checked>
98 '.esc_html__('Bottom Left', 'cookieadmin').'
99 </label>
100 <label class="cookieadmin-horizontal" style="cursor:pointer; font-weight:400;">
101 <input class="cookieadmin_box_layout" id="cookieadmin_position_bottom_right" name="cookieadmin_position" type="radio" value="bottom_right">
102 '.esc_html__('Bottom Right', 'cookieadmin').'
103 </label>
104 <label class="cookieadmin-horizontal" style="cursor:pointer; font-weight:400;">
105 <input class="cookieadmin_box_layout" id="cookieadmin_position_top_left" name="cookieadmin_position" type="radio" value="top_left">
106 '.esc_html__('Top Left', 'cookieadmin').'
107 </label>
108 <label class="cookieadmin-horizontal" style="cursor:pointer; font-weight:400;">
109 <input class="cookieadmin_box_layout" id="cookieadmin_position_top_right" name="cookieadmin_position" type="radio" value="top_right">
110 '.esc_html__('Top Right', 'cookieadmin').'
111 </label>
112 <label class="cookieadmin-horizontal" style="cursor:pointer; font-weight:400; display:none;">
113 <input class="cookieadmin_footer_layout" id="cookieadmin_position_top" name="cookieadmin_position" type="radio" value="top">
114 '.esc_html__('Top', 'cookieadmin').'
115 </label>
116 <label class="cookieadmin-horizontal" style="cursor:pointer; font-weight:400; display:none;">
117 <input class="cookieadmin_footer_layout" id="cookieadmin_position_bottom" name="cookieadmin_position" type="radio" value="bottom">
118 '.esc_html__('Bottom', 'cookieadmin').'
119 </label>
120 </div>
121 </div>
122
123 <div class="cookieadmin-setting consent-modal-layout">
124 <label class="cookieadmin-title">'.esc_html__('Preference Position', 'cookieadmin').'</label>
125 <div class="cookieadmin-setting-contents">
126 <label class="cookieadmin-horizontal" style="cursor:pointer; font-weight:400;">
127 <input id="cookieadmin_modal_center" name="cookieadmin_modal" type="radio" value="center" checked>
128 '.esc_html__('Center', 'cookieadmin').'
129 </label>
130 <label class="cookieadmin-horizontal" style="cursor:pointer; font-weight:400;">
131 <input id="cookieadmin_modal_side" name="cookieadmin_modal" type="radio" value="side">
132 '.esc_html__('Side', 'cookieadmin').'
133 </label>
134 <label class="cookieadmin-horizontal" style="cursor:pointer; font-weight:400;">
135 <input id="cookieadmin_modal_down" name="cookieadmin_modal" type="radio" value="down">
136 '.esc_html__('Draw down', 'cookieadmin').'
137 </label>
138 </div>
139 </div>
140 </div>
141 </div>
142 <div class="cookieadmin-card cookieadmin-mt-16">
143 <div class="cookieadmin-card-header">
144 <span class="cookieadmin-card-title">'.esc_html__('Notice Content', 'cookieadmin').'</span>
145 </div>
146 <div class="cookieadmin-card-body">
147 <div class="cookieadmin-vertical" style="gap:16px;">
148 <div>
149 <label for="cookieadmin_notice_title_layout" style="display:block; font-weight:600; font-size:13px; margin-bottom:6px;">'.esc_html__('Title', 'cookieadmin').'</label>
150 <input type="text" id="cookieadmin_notice_title_layout" name="cookieadmin_notice_title" style="width:100%; max-width:600px;" value="'.esc_attr($policy[$view]['cookieadmin_notice_title']).'">
151 </div>
152 <div>
153 <label for="cookieadmin_notice_layout" style="display:block; font-weight:600; font-size:13px; margin-bottom:6px;">'.esc_html__('Notice Text', 'cookieadmin').'</label>
154 <textarea rows="4" id="cookieadmin_notice_layout" name="cookieadmin_notice" style="width:100%; max-width:600px;">'.esc_html($policy[$view]['cookieadmin_notice']).'</textarea>
155 </div>
156 <div>
157 <label style="display:block; font-weight:600; font-size:13px; margin-bottom:10px;">'.esc_html__('Colors', 'cookieadmin').'</label>
158 <div class="cookieadmin-horizontal" style="flex-wrap:wrap; gap:16px;">
159 <div class="cookieadmin-vertical" style="gap:4px;">
160 <label for="cookieadmin_notice_title_color" style="font-size:12px; font-weight:500;">'.esc_html__('Title', 'cookieadmin').'</label>
161 <div class="cookieadmin-color-holder">
162 <input type="color" id="cookieadmin_notice_title_color_box" name="cookieadmin_notice_title_color_box" value="'.esc_attr($policy[$view]['cookieadmin_notice_title_color']).'">
163 <input type="text" id="cookieadmin_notice_title_color" name="cookieadmin_notice_title_color" value="'.esc_attr($policy[$view]['cookieadmin_notice_title_color']).'" class="cookieadmin-color-input">
164 </div>
165 </div>
166 <div class="cookieadmin-vertical" style="gap:4px;">
167 <label for="cookieadmin_notice_color" style="font-size:12px; font-weight:500;">'.esc_html__('Content', 'cookieadmin').'</label>
168 <div class="cookieadmin-color-holder">
169 <input type="color" id="cookieadmin_notice_color_box" name="cookieadmin_notice_color_box" value="'.esc_attr($policy[$view]['cookieadmin_notice_color']).'">
170 <input type="text" id="cookieadmin_notice_color" name="cookieadmin_notice_color" value="'.esc_attr($policy[$view]['cookieadmin_notice_color']).'" class="cookieadmin-color-input">
171 </div>
172 </div>
173 <div class="cookieadmin-vertical" style="gap:4px;">
174 <label for="cookieadmin_consent_inside_bg_color" style="font-size:12px; font-weight:500;">'.esc_html__('Background', 'cookieadmin').'</label>
175 <div class="cookieadmin-color-holder">
176 <input type="color" id="cookieadmin_consent_inside_bg_color_box" name="cookieadmin_consent_inside_bg_color_box" value="'.esc_attr($policy[$view]['cookieadmin_consent_inside_bg_color']).'">
177 <input type="text" id="cookieadmin_consent_inside_bg_color" name="cookieadmin_consent_inside_bg_color" value="'.esc_attr($policy[$view]['cookieadmin_consent_inside_bg_color']).'" class="cookieadmin-color-input">
178 </div>
179 </div>
180 <div class="cookieadmin-vertical" style="gap:4px;">
181 <label for="cookieadmin_consent_inside_border_color" style="font-size:12px; font-weight:500;">'.esc_html__('Border', 'cookieadmin').'</label>
182 <div class="cookieadmin-color-holder">
183 <input type="color" id="cookieadmin_consent_inside_border_color_box" name="cookieadmin_consent_inside_border_color_box" value="'.esc_attr($policy[$view]['cookieadmin_consent_inside_border_color']).'">
184 <input type="text" id="cookieadmin_consent_inside_border_color" name="cookieadmin_consent_inside_border_color" value="'.esc_attr($policy[$view]['cookieadmin_consent_inside_border_color']).'" class="cookieadmin-color-input">
185 </div>
186 </div>
187 </div>
188 </div>
189 </div>
190 </div>
191 </div>
192 <div class="cookieadmin-card">
193 <div class="cookieadmin-card-header">
194 <span class="cookieadmin-card-title">'.esc_html__('Button Settings', 'cookieadmin').'</span>
195 </div>
196 <div class="cookieadmin-card-body">
197 <div class="cookieadmin-vertical" style="gap:24px;">';
198
199 $button_labels = [
200 'cookieadmin_customize_btn' => __('Customize', 'cookieadmin'),
201 'cookieadmin_reject_btn' => __('Reject All', 'cookieadmin'),
202 'cookieadmin_accept_btn' => __('Accept All', 'cookieadmin'),
203 'cookieadmin_save_btn' => __('Save Preferences', 'cookieadmin')
204 ];
205
206 foreach($button_labels as $btn_key => $btn_label):
207 echo '
208 <div class="cookieadmin-horizontal" style="align-items:flex-start; gap:24px; flex-wrap:wrap;">
209 <div class="cookieadmin-vertical" style="gap:4px; min-width:180px;">
210 <label for="'.esc_attr($btn_key).'" style="font-size:12px; font-weight:500;">'.esc_html($btn_label).'</label>
211 <input id="'.esc_attr($btn_key).'" name="'.esc_attr($btn_key).'" style="max-width:180px; text-align:center;" value="'.esc_attr($policy[$view][$btn_key]).'">
212 </div>
213 <div class="cookieadmin-vertical" style="gap:4px;">
214 <label for="'.esc_attr($btn_key.'_color').'" style="font-size:12px; font-weight:500;">'.esc_html__('Text Color', 'cookieadmin').'</label>
215 <div class="cookieadmin-color-holder">
216 <input type="color" id="'.esc_attr($btn_key.'_color_box').'" name="'.esc_attr($btn_key.'_color_box').'" value="'.esc_attr($policy[$view][$btn_key.'_color']).'">
217 <input type="text" id="'.esc_attr($btn_key.'_color').'" name="'.esc_attr($btn_key.'_color').'" value="'.esc_attr($policy[$view][$btn_key.'_color']).'" class="cookieadmin-color-input">
218 </div>
219 </div>
220 <div class="cookieadmin-vertical" style="gap:4px;">
221 <label for="'.esc_attr($btn_key.'_bg_color').'" style="font-size:12px; font-weight:500;">'.esc_html__('Background', 'cookieadmin').'</label>
222 <div class="cookieadmin-color-holder">
223 <input type="color" id="'.esc_attr($btn_key.'_bg_color_box').'" name="'.esc_attr($btn_key.'_bg_color_box').'" value="'.esc_attr($policy[$view][$btn_key.'_bg_color']).'">
224 <input type="text" id="'.esc_attr($btn_key.'_bg_color').'" name="'.esc_attr($btn_key.'_bg_color').'" value="'.esc_attr($policy[$view][$btn_key.'_bg_color']).'" class="cookieadmin-color-input">
225 </div>
226 </div>
227 </div>';
228 endforeach;
229
230 echo '</div>
231 </div>
232 </div>
233 <div class="cookieadmin-card">
234 <div class="cookieadmin-card-header">
235 <span class="cookieadmin-card-title">'.esc_html__('Preference Content', 'cookieadmin').'</span>
236 </div>
237 <div class="cookieadmin-card-body">
238 <div class="cookieadmin-vertical" style="gap:16px;">
239 <div>
240 <label for="cookieadmin_preference_title_layout" style="display:block; font-weight:600; font-size:13px; margin-bottom:6px;">'.esc_html__('Title', 'cookieadmin').'</label>
241 <input type="text" id="cookieadmin_preference_title_layout" name="cookieadmin_preference_title" style="width:100%; max-width:600px;" value="'.esc_html($policy[$view]['cookieadmin_preference_title']).'">
242 </div>
243 <div>
244 <label for="cookieadmin_preference_layout" style="display:block; font-weight:600; font-size:13px; margin-bottom:6px;">'.esc_html__('Privacy Notice', 'cookieadmin').'</label>
245 <textarea rows="4" id="cookieadmin_preference_layout" name="cookieadmin_preference" style="width:100%; max-width:600px;">'.esc_html($policy[$view]['cookieadmin_preference']).'</textarea>
246 </div>
247 <div>
248 <label style="display:block; font-weight:600; font-size:13px; margin-bottom:10px;">'.esc_html__('Colors', 'cookieadmin').'</label>
249 <div class="cookieadmin-horizontal" style="flex-wrap:wrap; gap:16px;">
250 <div class="cookieadmin-vertical" style="gap:4px;">
251 <label for="cookieadmin_preference_title_color" style="font-size:12px; font-weight:500;">'.esc_html__('Title', 'cookieadmin').'</label>
252 <div class="cookieadmin-color-holder">
253 <input type="color" id="cookieadmin_preference_title_color_box" name="cookieadmin_preference_title_color_box" value="'.esc_attr($policy[$view]['cookieadmin_preference_title_color']).'">
254 <input type="text" id="cookieadmin_preference_title_color" name="cookieadmin_preference_title_color" value="'.esc_attr($policy[$view]['cookieadmin_preference_title_color']).'" class="cookieadmin-color-input">
255 </div>
256 </div>
257 <div class="cookieadmin-vertical" style="gap:4px;">
258 <label for="cookieadmin_details_wrapper_color" style="font-size:12px; font-weight:500;">'.esc_html__('Content', 'cookieadmin').'</label>
259 <div class="cookieadmin-color-holder">
260 <input type="color" id="cookieadmin_details_wrapper_color_box" name="cookieadmin_details_wrapper_color_box" value="'.esc_attr($policy[$view]['cookieadmin_details_wrapper_color']).'">
261 <input type="text" id="cookieadmin_details_wrapper_color" name="cookieadmin_details_wrapper_color" value="'.esc_attr($policy[$view]['cookieadmin_details_wrapper_color']).'" class="cookieadmin-color-input">
262 </div>
263 </div>
264 <div class="cookieadmin-vertical" style="gap:4px;">
265 <label for="cookieadmin_cookie_modal_bg_color" style="font-size:12px; font-weight:500;">'.esc_html__('Background', 'cookieadmin').'</label>
266 <div class="cookieadmin-color-holder">
267 <input type="color" id="cookieadmin_cookie_modal_bg_color_box" name="cookieadmin_cookie_modal_bg_color_box" value="'.esc_attr($policy[$view]['cookieadmin_cookie_modal_bg_color']).'">
268 <input type="text" id="cookieadmin_cookie_modal_bg_color" name="cookieadmin_cookie_modal_bg_color" value="'.esc_attr($policy[$view]['cookieadmin_cookie_modal_bg_color']).'" class="cookieadmin-color-input">
269 </div>
270 </div>
271 <div class="cookieadmin-vertical" style="gap:4px;">
272 <label for="cookieadmin_cookie_modal_border_color" style="font-size:12px; font-weight:500;">'.esc_html__('Border', 'cookieadmin').'</label>
273 <div class="cookieadmin-color-holder">
274 <input type="color" id="cookieadmin_cookie_modal_border_color_box" name="cookieadmin_cookie_modal_border_color_box" value="'.esc_attr($policy[$view]['cookieadmin_cookie_modal_border_color']).'">
275 <input type="text" id="cookieadmin_cookie_modal_border_color" name="cookieadmin_cookie_modal_border_color" value="'.esc_attr($policy[$view]['cookieadmin_cookie_modal_border_color']).'" class="cookieadmin-color-input">
276 </div>
277 </div>
278 </div>
279 </div>
280 <div>
281 <label style="display:block; font-weight:600; font-size:13px; margin-bottom:10px;">'.esc_html__('Additional Colors', 'cookieadmin').'</label>
282 <div class="cookieadmin-horizontal" style="flex-wrap:wrap; gap:16px;">
283 <div class="cookieadmin-vertical" style="gap:4px;">
284 <label for="cookieadmin_links_color" style="font-size:12px; font-weight:500;">'.esc_html__('Links', 'cookieadmin').'</label>
285 <div class="cookieadmin-color-holder">
286 <input type="color" id="cookieadmin_links_color_box" name="cookieadmin_links_color_box" value="'.esc_attr($policy[$view]['cookieadmin_links_color']).'">
287 <input type="text" id="cookieadmin_links_color" name="cookieadmin_links_color" value="'.esc_attr($policy[$view]['cookieadmin_links_color']).'" class="cookieadmin-color-input">
288 </div>
289 </div>
290 <div class="cookieadmin-vertical" style="gap:4px;">
291 <label for="cookieadmin_slider_on_bg_color" style="font-size:12px; font-weight:500;">'.esc_html__('Button Switch On', 'cookieadmin').'</label>
292 <div class="cookieadmin-color-holder">
293 <input type="color" id="cookieadmin_slider_on_bg_color_box" name="cookieadmin_slider_on_bg_color_box" value="'.esc_attr($policy[$view]['cookieadmin_slider_on_bg_color']).'">
294 <input type="text" id="cookieadmin_slider_on_bg_color" name="cookieadmin_slider_on_bg_color" value="'.esc_attr($policy[$view]['cookieadmin_slider_on_bg_color']).'" class="cookieadmin-color-input">
295 </div>
296 </div>
297 <div class="cookieadmin-vertical" style="gap:4px;">
298 <label for="cookieadmin_slider_off_bg_color" style="font-size:12px; font-weight:500;">'.esc_html__('Button Switch Off', 'cookieadmin').'</label>
299 <div class="cookieadmin-color-holder">
300 <input type="color" id="cookieadmin_slider_off_bg_color_box" name="cookieadmin_slider_off_bg_color_box" value="'.esc_attr($policy[$view]['cookieadmin_slider_off_bg_color']).'">
301 <input type="text" id="cookieadmin_slider_off_bg_color" name="cookieadmin_slider_off_bg_color" value="'.esc_attr($policy[$view]['cookieadmin_slider_off_bg_color']).'" class="cookieadmin-color-input">
302 </div>
303 </div>
304 </div>
305 </div>
306 </div>
307 </div>
308 </div>
309
310 <div class="cookieadmin-card" cookieadmin-pro-only="1">
311 <div class="cookieadmin-card-header">
312 <span class="cookieadmin-card-title">'.esc_html__('Re-consent Icon', 'cookieadmin').wp_kses_post($cookieadmin_requires_pro).'</span>
313 </div>
314 <div class="cookieadmin-card-body">
315 <div class="cookieadmin-vertical" style="gap:12px;">
316 <div class="cookieadmin-reconsent-icons-grid">
317 <div class="cookieadmin-reconsent-icons-list">
318 ' . wp_kses($icons_grid, cookieadmin_kses_allowed_html()) . '
319 </div>
320 <div class="cookieadmin-custom-reconsent-url cookieadmin-mt-16">
321 <input type="text" id="cookieadmin_reconsent_img_url" name="cookieadmin_reconsent_img_url" style="width:100%; max-width:500px;" placeholder="'.esc_attr__('Insert custom icon url here', 'cookieadmin').'" value="'.(!empty($policy[$view]['cookieadmin_reconsent_img_url']) ? esc_attr($policy[$view]['cookieadmin_reconsent_img_url']) : '').'">
322 </div>
323 <div class="cookieadmin-mt-16">
324 <input type="button" class="cookieadmin-btn cookieadmin-btn-secondary" id="cookieadmin_upload_icon_btn" value="'.esc_attr__( 'Upload Icon', 'cookieadmin' ).'">
325 </div>
326 </div>
327 <div class="cookieadmin-vertical" style="gap:4px; margin-top:16px;">
328 <label for="cookieadmin_re_consent_bg_color" style="font-size:12px; font-weight:500;">'.esc_html__('Background', 'cookieadmin').'</label>
329 <div class="cookieadmin-color-holder">
330 <input type="color" id="cookieadmin_re_consent_bg_color_box" name="cookieadmin_re_consent_bg_color_box" value="'.(!empty($policy[$view]['cookieadmin_re_consent_bg_color']) ? esc_attr($policy[$view]['cookieadmin_re_consent_bg_color']) : '#374FD4').'">
331 <input type="text" id="cookieadmin_re_consent_bg_color" name="cookieadmin_re_consent_bg_color" value="'.(!empty($policy[$view]['cookieadmin_re_consent_bg_color']) ? esc_attr($policy[$view]['cookieadmin_re_consent_bg_color']) : '#374FD4').'" class="cookieadmin-color-input">
332 </div>
333 </div>
334 </div>
335 </div>
336 </div>
337
338 <div class="cookieadmin-card cookieadmin-mt-16" cookieadmin-pro-only="1">
339 <div class="cookieadmin-card-header">
340 <span class="cookieadmin-card-title">'.esc_html__('Policy Links', 'cookieadmin').wp_kses_post($cookieadmin_requires_pro).'</span>
341 </div>
342 <div class="cookieadmin-card-body">
343 <div class="cookieadmin-vertical" style="gap:16px;">
344 <div class="cookieadmin-vertical" style="gap:4px;">
345 <label for="cookieadmin_privacy_policy" style="font-size:13px; font-weight:500;">'.esc_html__('Privacy Policy', 'cookieadmin').'</label>
346 <input type="text" id="cookieadmin_privacy_policy" name="cookieadmin_privacy_policy" style="width:100%; max-width:500px;" placeholder="'.__('Insert Privacy Policy link here...', 'cookieadmin').'" value="'.(!empty($policy[$view]['cookieadmin_privacy_policy']) ? esc_attr($policy[$view]['cookieadmin_privacy_policy']) : '').'">
347 </div>
348 <div class="cookieadmin-vertical" style="gap:4px;">
349 <label for="cookieadmin_cookie_policy" style="font-size:13px; font-weight:500;">'.esc_html__('Cookie Policy', 'cookieadmin').'</label>
350 <input type="text" id="cookieadmin_cookie_policy" name="cookieadmin_cookie_policy" style="width:100%; max-width:500px;" placeholder="'.__('Insert Cookie Policy link here...', 'cookieadmin').'" value="'.(!empty($policy[$view]['cookieadmin_cookie_policy']) ? esc_attr($policy[$view]['cookieadmin_cookie_policy']) : '').'">
351 </div>
352 <div>
353 <label style="font-size:13px; font-weight:500; display:block; margin-bottom:8px;">'.esc_html__('Visibility', 'cookieadmin').'</label>
354 <div class="cookieadmin-horizontal" style="gap:16px;">
355 <label class="cookieadmin-horizontal" style="cursor:pointer; font-weight:400;">
356 <input type="checkbox" id="cookieadmin_privacy_policy_banner" name="cookieadmin_privacy_policy_banner" '.(!empty($policy[$view]['cookieadmin_privacy_policy_banner']) ? 'checked' : '').'>
357 '.esc_html__('Banner', 'cookieadmin').'
358 </label>
359 <label class="cookieadmin-horizontal" style="cursor:pointer; font-weight:400;">
360 <input type="checkbox" id="cookieadmin_privacy_policy_pref" name="cookieadmin_privacy_policy_pref" '.(!empty($policy[$view]['cookieadmin_privacy_policy_pref']) ? 'checked' : '').'>
361 '.esc_html__('Preference', 'cookieadmin').'
362 </label>
363 </div>
364 </div>
365 <div class="cookieadmin-vertical" style="gap:4px;">
366 <label for="cookieadmin_policy_link_color" style="font-size:12px; font-weight:500;">'.esc_html__('Link Color', 'cookieadmin').'</label>
367 <div class="cookieadmin-color-holder">
368 <input type="color" id="cookieadmin_policy_link_color_box" name="cookieadmin_policy_link_color_box" value="'.(!empty($policy[$view]['cookieadmin_policy_link_color']) ? esc_attr($policy[$view]['cookieadmin_policy_link_color']) : '').'">
369 <input type="text" id="cookieadmin_policy_link_color" name="cookieadmin_policy_link_color" value="'.(!empty($policy[$view]['cookieadmin_policy_link_color']) ? esc_attr($policy[$view]['cookieadmin_policy_link_color']) : '').'" class="cookieadmin-color-input">
370 </div>
371 </div>
372 </div>
373 </div>
374 </div>';
375
376 wp_nonce_field('cookieadmin_admin_nonce', 'cookieadmin_security');
377
378 echo '
379 <div class="cookieadmin-save-bar">
380 <button type="button" id="cookieadmin_show_preview" class="cookieadmin-btn cookieadmin-btn-ghost"><span class="dashicons dashicons-visibility"></span>'.esc_html__('Show Preview', 'cookieadmin').'</button>
381 <button type="button" id="cookieadmin_hide_preview" class="cookieadmin-btn cookieadmin-btn-ghost" style="display:none;"><span class="dashicons dashicons-hidden"></span>'.esc_html__('Hide Preview', 'cookieadmin').'</button>
382 <input type="submit" name="cookieadmin_save_settings" class="cookieadmin-btn cookieadmin-btn-primary" value="'.esc_html__('Save Settings', 'cookieadmin').'">
383 </div>
384
385 </form>
386 </div>';
387 \CookieAdmin\Admin::footer_theme();
388
389 $allowed_tags = cookieadmin_kses_allowed_html();
390 echo wp_kses($templates, $allowed_tags);
391 }
392
393 static function save_consent_form(){
394 global $cookieadmin_lang, $cookieadmin_error, $cookieadmin_msg, $cookieadmin_settings, $cookieadmin_policies;
395 // debug_print_backtrace();die;
396
397 check_admin_referer('cookieadmin_admin_nonce', 'cookieadmin_security');
398
399 if(!current_user_can('administrator')){
400 wp_send_json_error(array('message' => __('Sorry, but you do not have permissions to perform this action', 'cookieadmin')));
401 }
402
403 $policy = cookieadmin_load_policy();
404
405 $cookieadmin_consent_type = isset( $_REQUEST['cookieadmin_consent_type'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['cookieadmin_consent_type'] ) ) : '';
406
407 if(!empty($cookieadmin_consent_type)){
408
409 $laws = apply_filters('cookieadmin_geo_law_options', [
410 'cookieadmin_gdpr' => __('GDPR', 'cookieadmin'),
411 'cookieadmin_us' => __('US State Laws', 'cookieadmin'),
412 ]);
413
414 $law = array_key_exists($cookieadmin_consent_type, $laws) ? $cookieadmin_consent_type : 'cookieadmin_gdpr';
415
416 if(empty($cookieadmin_error)){
417 update_option('cookieadmin_law', $law);
418 }
419 }
420
421 $setting['cookieadmin_geo_tgt'] = (!empty($_REQUEST['cookieadmin_geo_tgt'])) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_geo_tgt'])) : 'www';
422
423 $setting['cookieadmin_layout'] = (!empty($_REQUEST['cookieadmin_layout']) && in_array($_REQUEST['cookieadmin_layout'], array('box', 'footer', 'popup'))) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_layout'])) : (!empty($policy[$law]['cookieadmin_layout']) ? $policy[$law]['cookieadmin_layout'] : 'box');
424
425 $setting['cookieadmin_position'] = (!empty($_REQUEST['cookieadmin_position']) && in_array($_REQUEST['cookieadmin_position'], array('bottom_left', 'bottom_right', 'top_left', 'top_right', 'top', 'bottom'))) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_position'])) : (!empty($policy[$law]['cookieadmin_position']) ? $policy[$law]['cookieadmin_position'] : 'bottom_left');
426
427 $setting['cookieadmin_modal'] = (isset($_REQUEST['cookieadmin_modal']) && in_array($_REQUEST['cookieadmin_modal'], array('center', 'side', 'down'))) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_modal'])) : (!empty($policy[$law]['cookieadmin_modal']) ? $policy[$law]['cookieadmin_modal'] : 'center');
428
429 if($setting['cookieadmin_layout'] == 'popup'){
430 $setting['cookieadmin_modal'] = 'center';
431 unset($setting['cookieadmin_position']);
432 }
433
434 $setting['cookieadmin_notice_title'] = !empty($_REQUEST['cookieadmin_notice_title']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_notice_title'])) : $policy[$law]['cookieadmin_notice_title'];
435 $setting['cookieadmin_notice_title_color'] = !empty($_REQUEST['cookieadmin_notice_title_color']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_notice_title_color'])) : (!empty($policy[$law]['cookieadmin_notice_title_color']) ? $policy[$law]['cookieadmin_notice_title_color'] : '#1f2937');
436
437 $setting['cookieadmin_notice'] = !empty($_REQUEST['cookieadmin_notice']) ? wp_kses(wp_unslash($_REQUEST['cookieadmin_notice']), cookieadmin_kses_allowed_html()) : $policy[$law]['cookieadmin_notice'];
438 $setting['cookieadmin_notice_color'] = !empty($_REQUEST['cookieadmin_notice_color']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_notice_color'])) : (!empty($policy[$law]['cookieadmin_notice_color']) ? $policy[$law]['cookieadmin_notice_color'] : '#1f2937');
439
440 $setting['cookieadmin_consent_inside_bg_color'] = !empty($_REQUEST['cookieadmin_consent_inside_bg_color']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_consent_inside_bg_color'])) : (!empty($policy[$law]['cookieadmin_consent_inside_bg_color']) ? $policy[$law]['cookieadmin_consent_inside_bg_color'] : '#ffffff');
441 $setting['cookieadmin_consent_inside_border_color'] = !empty($_REQUEST['cookieadmin_consent_inside_border_color']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_consent_inside_border_color'])) : (!empty($policy[$law]['cookieadmin_consent_inside_border_color']) ? $policy[$law]['cookieadmin_consent_inside_border_color'] : '#000000');
442
443 $setting['cookieadmin_customize_btn'] = !empty($_REQUEST['cookieadmin_customize_btn']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_customize_btn'])) : (!empty($policy[$law]['cookieadmin_customize_btn']) ? $policy[$law]['cookieadmin_customize_btn'] : 'Customize');
444 $setting['cookieadmin_customize_btn_color'] = !empty($_REQUEST['cookieadmin_customize_btn_color']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_customize_btn_color'])) : (!empty($policy[$law]['cookieadmin_customize_btn_color']) ? $policy[$law]['cookieadmin_customize_btn_color'] : '#ffffff');
445 $setting['cookieadmin_customize_btn_bg_color'] = !empty($_REQUEST['cookieadmin_customize_btn_bg_color']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_customize_btn_bg_color'])) : (!empty($policy[$law]['cookieadmin_customize_btn_bg_color']) ? $policy[$law]['cookieadmin_customize_btn_bg_color'] : '#0000ff');
446
447 $setting['cookieadmin_reject_btn'] = !empty($_REQUEST['cookieadmin_reject_btn']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_reject_btn'])) : (!empty($policy[$law]['cookieadmin_reject_btn']) ? $policy[$law]['cookieadmin_reject_btn'] : 'Reject All');
448 $setting['cookieadmin_reject_btn_color'] = !empty($_REQUEST['cookieadmin_reject_btn_color']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_reject_btn_color'])) : (!empty($policy[$law]['cookieadmin_reject_btn_color']) ? $policy[$law]['cookieadmin_reject_btn_color'] : '#ffffff');
449 $setting['cookieadmin_reject_btn_bg_color'] = !empty($_REQUEST['cookieadmin_reject_btn_bg_color']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_reject_btn_bg_color'])) : (!empty($policy[$law]['cookieadmin_reject_btn_bg_color']) ? $policy[$law]['cookieadmin_reject_btn_bg_color'] : '#ff0000');
450
451 $setting['cookieadmin_accept_btn'] = !empty($_REQUEST['cookieadmin_accept_btn']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_accept_btn'])) : (!empty($policy[$law]['cookieadmin_accept_btn']) ? $policy[$law]['cookieadmin_accept_btn'] : 'Accept All');
452 $setting['cookieadmin_accept_btn_color'] = !empty($_REQUEST['cookieadmin_accept_btn_color']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_accept_btn_color'])) : (!empty($policy[$law]['cookieadmin_accept_btn']) ? $policy[$law]['cookieadmin_accept_btn_color'] : '#ffffff');
453 $setting['cookieadmin_accept_btn_bg_color'] = !empty($_REQUEST['cookieadmin_accept_btn_bg_color']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_accept_btn_bg_color'])) : (!empty($policy[$law]['cookieadmin_accept_btn_bg_color']) ? $policy[$law]['cookieadmin_accept_btn_bg_color'] : '#00ff00');
454
455 $setting['cookieadmin_save_btn'] = !empty($_REQUEST['cookieadmin_save_btn']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_save_btn'])) : (!empty($policy[$law]['cookieadmin_save_btn']) ? $policy[$law]['cookieadmin_save_btn'] : 'Save Preferences');
456 $setting['cookieadmin_save_btn_color'] = !empty($_REQUEST['cookieadmin_save_btn_color']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_save_btn_color'])) : (!empty($policy[$law]['cookieadmin_save_btn_color']) ? $policy[$law]['cookieadmin_save_btn_color'] : '#ffffff');
457 $setting['cookieadmin_save_btn_bg_color'] = !empty($_REQUEST['cookieadmin_save_btn_bg_color']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_save_btn_bg_color'])) : (!empty($policy[$law]['cookieadmin_save_btn_bg_color']) ? $policy[$law]['cookieadmin_save_btn_bg_color'] : '#183833');
458
459 $setting['cookieadmin_preference_title'] = !empty($_REQUEST['cookieadmin_preference_title']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_preference_title'])) : $policy[$law]['cookieadmin_preference_title'];
460 $setting['cookieadmin_preference_title_color'] = !empty($_REQUEST['cookieadmin_preference_title_color']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_preference_title_color'])) : (!empty($policy[$law]['cookieadmin_preference_title_color']) ? $policy[$law]['cookieadmin_preference_title_color'] : '#1f2937');
461
462 $setting['cookieadmin_preference'] = !empty($_REQUEST['cookieadmin_preference']) ? wp_kses(wp_unslash($_REQUEST['cookieadmin_preference']), cookieadmin_kses_allowed_html()) : $policy[$law]['cookieadmin_preference'];
463 $setting['cookieadmin_details_wrapper_color'] = !empty($_REQUEST['cookieadmin_details_wrapper_color']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_details_wrapper_color'])) : (!empty($policy[$law]['cookieadmin_details_wrapper_color']) ? $policy[$law]['cookieadmin_details_wrapper_color'] : '#1f2937');
464
465 $setting['cookieadmin_cookie_modal_bg_color'] = !empty($_REQUEST['cookieadmin_cookie_modal_bg_color']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_cookie_modal_bg_color'])) : (!empty($policy[$law]['cookieadmin_cookie_modal_bg_color']) ? $policy[$law]['cookieadmin_cookie_modal_bg_color'] : '#ffffff');
466 $setting['cookieadmin_cookie_modal_border_color'] = !empty($_REQUEST['cookieadmin_cookie_modal_border_color']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_cookie_modal_border_color'])) : (!empty($policy[$law]['cookieadmin_cookie_modal_border_color']) ? $policy[$law]['cookieadmin_cookie_modal_border_color'] : '#000000');
467
468 $setting['cookieadmin_slider_off_bg_color'] = !empty($_REQUEST['cookieadmin_slider_off_bg_color']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_slider_off_bg_color'])) : (!empty($policy[$law]['cookieadmin_slider_off_bg_color']) ? $policy[$law]['cookieadmin_slider_off_bg_color'] : '#808080');
469 $setting['cookieadmin_slider_on_bg_color'] = !empty($_REQUEST['cookieadmin_slider_on_bg_color']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_slider_on_bg_color'])) : (!empty($policy[$law]['cookieadmin_slider_on_bg_color']) ? $policy[$law]['cookieadmin_slider_on_bg_color'] : '#3582c4');
470 $setting['cookieadmin_links_color'] = !empty($_REQUEST['cookieadmin_links_color']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_links_color'])) : (!empty($policy[$law]['cookieadmin_links_color']) ? $policy[$law]['cookieadmin_links_color'] : '#1863dc');
471
472 // Set Reconsent Icons
473 $setting['cookieadmin_reconsent_icon'] = !empty($_REQUEST['cookieadmin_reconsent_icon']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_reconsent_icon'])) : '';
474 $setting['cookieadmin_reconsent_img_url'] = !empty($_REQUEST['cookieadmin_reconsent_img_url']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_reconsent_img_url'])) : '';
475 $setting['cookieadmin_re_consent_bg_color'] = !empty($_REQUEST['cookieadmin_re_consent_bg_color']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_re_consent_bg_color'])) : (!empty($policy[$law]['cookieadmin_re_consent_bg_color']) ? $policy[$law]['cookieadmin_re_consent_bg_color'] : '#374FD4');
476
477 // Set Policy Links
478 $setting['cookieadmin_privacy_policy'] = !empty($_REQUEST['cookieadmin_privacy_policy']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_privacy_policy'])) : '';
479 $setting['cookieadmin_cookie_policy'] = !empty($_REQUEST['cookieadmin_cookie_policy']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_cookie_policy'])) : '';
480 $setting['cookieadmin_privacy_policy_banner'] = !empty($_REQUEST['cookieadmin_privacy_policy_banner']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_privacy_policy_banner'])) : 0;
481 $setting['cookieadmin_privacy_policy_pref'] = !empty($_REQUEST['cookieadmin_privacy_policy_pref']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_privacy_policy_pref'])) : 0;
482 $setting['cookieadmin_policy_link_color'] = !empty($_REQUEST['cookieadmin_policy_link_color']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_policy_link_color'])) : '#cbba8d';
483
484 $setting['cookieadmin_days'] = !empty($_REQUEST['cookieadmin_days']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_days'])) : (!empty($policy[$law]['cookieadmin_days']) ? $policy[$law]['cookieadmin_days'] : '365');
485
486 $policy[$law] = $setting;
487
488 // Check for certain fields to be saved only if their values is not the same as default
489 $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');
490
491 foreach($cookieadmin_check_changes as $c_field){
492 foreach($policy as $c_law => $c_val){
493 if(!empty($cookieadmin_policies[$c_law]) && !empty($c_val[$c_field]) && $c_val[$c_field] == $cookieadmin_policies[$c_law][$c_field]){
494 unset($policy[$c_law][$c_field]);
495 }
496 }
497 }
498
499 update_option('cookieadmin_consent_settings', $policy);
500
501 if(empty($cookieadmin_error)){
502 $cookieadmin_msg = __('Settings saved successfully', 'cookieadmin');
503 }
504 }
505 }
506