PluginProbe
CookieAdmin – Cookie Consent Banner / 1.2.5
CookieAdmin – Cookie Consent Banner v1.2.5
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 1.1.8
cookieadmin / includes / admin / consent.php

consent.php in CookieAdmin – Cookie Consent Banner 1.2.5, 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