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
← All changes | includes/admin.php +211 -852 1.0.8 → 1.2.6 View file →
@@ -30,8 +30,10 @@
30 30 'cookieadmin-scan-cookies',
31 31 'cookieadmin-consent',
32 32 'cookieadmin-consent-logs',
33 33 'cookieadmin-license',
34 + 'cookieadmin-do-not-sell',
35 + 'cookieadmin-dpdp'
34 36 ];
35 37
36 38 if(empty($current_page) || !in_array($current_page, $plugin_pages)){
37 39 return true;
@@ -38,8 +40,9 @@
38 40 }
39 41
40 42 //Consent Page CSS
41 43 wp_enqueue_style('cookieadmin-style', COOKIEADMIN_PLUGIN_URL . 'assets/css/cookie.css', [], COOKIEADMIN_VERSION);
44 + wp_enqueue_style('cookieadmin-user-style', COOKIEADMIN_PLUGIN_URL . 'assets/css/consent.css', [], COOKIEADMIN_VERSION);
42 45
43 46 //WP Color picker
44 47 wp_enqueue_style('wp-color-picker');
45 48
@@ -48,8 +51,9 @@
48 51
49 52 if(!empty($policy) && !empty($view)){
50 53
51 54 wp_enqueue_script('cookieadmin_js', COOKIEADMIN_PLUGIN_URL . 'assets/js/cookie.js', [], COOKIEADMIN_VERSION);
55 + // wp_enqueue_script('cookieadmin_js', COOKIEADMIN_PLUGIN_URL . 'assets/js/consent.js', [], COOKIEADMIN_VERSION);
52 56
53 57 $policy['set'] = $view;
54 58 $policy['admin_url'] = admin_url('admin-ajax.php');
55 59 $policy['cookieadmin_nonce'] = wp_create_nonce('cookieadmin_admin_js_nonce');
@@ -54,40 +58,72 @@
54 58 $policy['admin_url'] = admin_url('admin-ajax.php');
55 59 $policy['cookieadmin_nonce'] = wp_create_nonce('cookieadmin_admin_js_nonce');
56 60 //cookieadmin_r_print($policy);die();
57 61
62 + $policy['lang']['show_more'] = __('Show more', 'cookieadmin');
63 + $policy['lang']['show_less'] = __('Show less', 'cookieadmin');
64 + $policy['lang']['days'] = __('Day(s)', 'cookieadmin');
65 + $policy['lang']['session'] = __('Session', 'cookieadmin');
66 + $policy['lang']['scan_completed'] = __('Scan completed', 'cookieadmin');
67 + $policy['lang']['processing'] = __('Processing...', 'cookieadmin');
68 + $policy['lang']['active'] = __('Active', 'cookieadmin');
69 + $policy['lang']['install_failed'] = __('Installation failed. Please try again.', 'cookieadmin');
70 + $policy['lang']['error_occurred'] = __('An error occurred. Please try again.', 'cookieadmin');
71 +
58 72 wp_localize_script('cookieadmin_js', 'cookieadmin_policy', $policy);
59 73 }
60 74
61 75 wp_enqueue_script('cookieadmin_js_footer', COOKIEADMIN_PLUGIN_URL . 'assets/js/footer.js', [], COOKIEADMIN_VERSION);
62 - wp_localize_script('cookieadmin_js_footer', 'cookieadmin_is_pro', (int) cookieadmin_is_pro());
76 + wp_localize_script('cookieadmin_js_footer', 'cookieadmin_data', array('is_pro' => cookieadmin_is_pro()));
77 +
78 + // We only need to upload icon on consent form page
79 + if(!empty($_GET['page']) && $_GET['page'] == 'cookieadmin-consent'){
80 + //to upload icons
81 + wp_enqueue_media();
82 + }
63 83 }
64 84
65 85 //Add Main Menu
66 86 static function cookieadmin_plugin_menu(){
67 87
88 + if(!empty($_REQUEST['cookieadmin_save_settings'])){
89 +
90 + if(!empty($_REQUEST['cookieadmin_consent_type'])){
91 + \CookieAdmin\Admin\Consent::save_consent_form();
92 + }else{
93 + \CookieAdmin\Admin\Settings::save_settings();
94 + }
95 + }
96 +
68 97 $capability = 'activate_plugins';
98 + $logo = defined('SITEPAD') ? 'cookieadmin_icon_20-black.svg' : 'cookieadmin_icon_20.svg';
69 99
70 - add_menu_page(__('CookieAdmin', 'cookieadmin'), __('CookieAdmin', 'cookieadmin'), $capability, 'cookieadmin', '\CookieAdmin\Admin::dashboard_page', COOKIEADMIN_PLUGIN_URL .'assets/images/cookieadmin_icon_20.svg');
100 + add_menu_page(__('CookieAdmin', 'cookieadmin'), __('CookieAdmin', 'cookieadmin'), $capability, 'cookieadmin', '\CookieAdmin\Admin\Dashboard::dashboard', COOKIEADMIN_PLUGIN_URL .'assets/images/'.$logo);
71 101
72 - if (isset($_POST['cookieadmin_save_settings'])) {
73 - \CookieAdmin\Admin::cookieadmin_save_settings();
74 - }
102 + add_submenu_page('cookieadmin', __('Dashboard', 'cookieadmin'), __('Dashboard', 'cookieadmin'), $capability, 'cookieadmin', '\CookieAdmin\Admin\Dashboard::dashboard');
75 103
76 - add_submenu_page('cookieadmin', __('Dashboard', 'cookieadmin'), __('Dashboard', 'cookieadmin'), $capability, 'cookieadmin', '\CookieAdmin\Admin::dashboard_page');
104 + add_submenu_page('cookieadmin', __('Consent Form', 'cookieadmin'), __('Consent Form', 'cookieadmin'), $capability, 'cookieadmin-consent', '\CookieAdmin\Admin\Consent::consent_form');
77 105
78 - add_submenu_page('cookieadmin', __('Consent Form', 'cookieadmin'), __('Consent Form', 'cookieadmin'), $capability, 'cookieadmin-consent', '\CookieAdmin\Admin::consent_form_page');
106 + add_submenu_page('cookieadmin', __('Settings', 'cookieadmin'), __('Settings', 'cookieadmin'), $capability, 'cookieadmin-settings', '\CookieAdmin\Admin\Settings::settings');
79 107
80 - add_submenu_page('cookieadmin', __('Settings', 'cookieadmin'), __('Settings', 'cookieadmin'), $capability, 'cookieadmin-settings', '\CookieAdmin\Admin::settings_page');
108 + add_submenu_page('cookieadmin', __('Scan Cookies', 'cookieadmin'), __('Scan Cookies', 'cookieadmin'), $capability, 'cookieadmin-scan-cookies', '\CookieAdmin\Admin\Scan::show_cookies');
81 109
82 - add_submenu_page('cookieadmin', __('Scan Cookies', 'cookieadmin'), __('Scan Cookies', 'cookieadmin'), $capability, 'cookieadmin-scan-cookies', '\CookieAdmin\Admin::scan_cookies_page');
83 -
84 110 if(defined('COOKIEADMIN_PREMIUM')){
85 111 add_submenu_page('cookieadmin', __('Consent Logs', 'cookieadmin'), __('Consent Logs', 'cookieadmin'), $capability, 'cookieadmin-consent-logs', '\CookieAdminPro\Admin::show_consent_logs');
112 +
113 + // GEO Targeting
114 + add_submenu_page('cookieadmin', __('Geo Targeting', 'cookieadmin'), __('Geo Targeting', 'cookieadmin'), $capability, 'cookieadmin-geo-targeting', '\CookieAdminPro\Admin\Geo::geo_admin_page');
86 115
87 - add_submenu_page('cookieadmin', __('License', 'cookieadmin'), __('License', 'cookieadmin'), $capability, 'cookieadmin-license', '\CookieAdminPro\License::cookieadmin_show_license');
88 - }else{
116 + // Do Not Sell menu
117 + add_submenu_page('cookieadmin', __('Do Not Sell Requests', 'cookieadmin'), __('Do Not Sell', 'cookieadmin'), $capability, 'cookieadmin-do-not-sell', '\CookieAdminPro\Admin\DoNotSell::do_not_sell_requests');
89 118
119 + // DPDP (India) Data Principal Requests menu
120 + add_submenu_page('cookieadmin', __('DPDP Requests', 'cookieadmin'), __('DPDP Requests', 'cookieadmin'), $capability, 'cookieadmin-dpdp', '\CookieAdminPro\Admin\DPDP::dpdp_requests');
121 +
122 + if(!defined('SITEPAD')){
123 + add_submenu_page('cookieadmin', __('License', 'cookieadmin'), __('License', 'cookieadmin'), $capability, 'cookieadmin-license', '\CookieAdminPro\License::cookieadmin_show_license');
124 + }
125 + }else if(!defined('SITEPAD')){
90 126 // Go Pro link
91 127 add_submenu_page('cookieadmin', __('CookieAdmin Go Pro', 'cookieadmin'), __('Go Pro', 'cookieadmin'), $capability, COOKIEADMIN_PRO_URL);
92 128 }
93 129 }
@@ -95,651 +131,59 @@
95 131 // cookieadmin header
96 132 static function header_theme($title = 'Dashboard'){
97 133
98 134 global $cookieadmin_lang, $cookieadmin_error, $cookieadmin_msg;
99 -
135 +
136 + self::conflict_notice();
137 +
100 138 echo '
101 - <div class="cookieadmin-metabox-holder columns-2">
102 - <div class="cookieadmin-postbox-container">
103 - <div style="margin: 10px 20px 0 2px;" class="wrap">
139 + <div class="cookieadmin-metabox-holder">
140 + <div class="cookieadmin-header">
141 + <div class="cookieadmin-header-left">
104 142 <div class="cookieadmin-icon">
105 143 <img class="cookieadmin-logo" src="'.esc_attr(COOKIEADMIN_PLUGIN_URL).'assets/images/cookieadmin-logo.png" alt="CookieAdmin Logo">
106 144 </div>
145 + <span class="cookieadmin-header-version">v'.esc_html(COOKIEADMIN_VERSION).'</span>
107 146 </div>
108 - <h2>'.esc_html($title).'</h2>';
109 -
147 + <div class="cookieadmin-header-right">
148 + <a href="https://cookieadmin.net/docs" class="cookieadmin-header-link" target="_blank"><span class="dashicons dashicons-book-alt"></span> ' . esc_html__('Documentation', 'cookieadmin') . '</a>
149 + <span class="cookieadmin-header-separator"></span>
150 + <a href="https://softaculous.deskuss.com/open.php?topicId=26" class="cookieadmin-header-link" target="_blank"><span class="dashicons dashicons-sos"></span> ' . esc_html__('Support', 'cookieadmin') . '</a>
151 + </div>
152 + </div>
153 + <h1 class="cookieadmin-page-title">'.esc_html($title).'</h1>';
154 +
110 155 if(!empty($cookieadmin_error)){
111 - echo '<div id="cookieadmin_message" class="error"><p>'.esc_html($cookieadmin_error).'</p></div>';
156 + echo '<div class="cookieadmin-notice"><div id="cookieadmin_message" class="error"><p>'.esc_html($cookieadmin_error).'</p></div></div>';
112 157 }
113 158
114 159 if(!empty($cookieadmin_msg)){
115 - echo '<div id="cookieadmin_message" class="updated"><p>'.esc_html($cookieadmin_msg).'</p></div>';
160 + echo '<div class="cookieadmin-notice"><div id="cookieadmin_message" class="updated"><p>'.esc_html($cookieadmin_msg).'</p></div></div>';
116 161 }
162 +
163 + echo '<div class="cookieadmin-postbox-container">';
117 164 }
118 165
119 166 // cookieadmin footer
120 167 static function footer_theme($no_twitter = 0){
121 168 global $cookieadmin_lang, $cookieadmin_error, $cookieadmin_msg;
122 -
123 - echo '</div>
124 - <div class="cookieadmin-footer">';
125 169
126 - if(empty($no_twitter)){
127 -
128 - echo '<br/><div class="cookieadmin-twitter">
129 - <span>'.esc_html__('Share with your followers', 'cookieadmin').'</span><br /><br />
130 - <form method="get" action="https://twitter.com/intent/tweet" id="tweet" onsubmit="return cookieadmin_dotweet(this);">
131 - <textarea name="text" cols="60" row="4" style="resize:none;">'.esc_html__('I easily manage Cookie Consent Banner on my #WordPress site using @cookieadmin', 'cookieadmin').'</textarea>
132 - <br />
133 - <input type="submit" value="Tweet!" class="cookieadmin-btn cookieadmin-btn-secondary" onsubmit="return false;" id="twitter-btn" style="margin-top:7px;"/>
134 - </form>
135 - </div>
136 - <br/>
137 - <hr>';
138 -
139 - }
140 -
141 - echo '<a href="'.esc_url(COOKIEADMIN_WWW_URL).'" target="_blank">CookieAdmin</a><span> v'.esc_html(COOKIEADMIN_VERSION).esc_html__(' You can report any bugs ', 'cookieadmin').'</span><a href="http://wordpress.org/support/plugin/cookieadmin" target="_blank">'.esc_html__('here', 'cookieadmin').'</a>. ';
142 -
143 - if(defined('COOKIEADMIN_PREMIUM')){
144 - echo 'Or email us at <a href="mailto:[email protected]">[email protected]</a>';
145 - }
146 -
147 - echo '</div>
148 - </div>';
149 - }
150 -
151 - static function dashboard_page(){
152 -
153 - global $cookieadmin_lang, $cookieadmin_error, $cookieadmin_msg, $cookieadmin_settings;
154 -
155 - self::header_theme(__('Dashboard', 'cookieadmin'));
156 -
157 - $view = get_option('cookieadmin_law', 'cookieadmin_gdpr');
158 -
159 - echo '
160 - <div class="cookieadmin_consent-wrap">
161 - <div class="cookieadmin-admin-row">
162 - <div class="cookieadmin-stats-block cookieadmin-is-block-25">
163 - <div class="cookieadmin-stats-name">'.esc_html__('Consent Banner', 'cookieadmin').'</div>
164 - <div class="cookieadmin-stats-number cookieadmin-green">'.esc_html__('Enabled', 'cookieadmin').'</div>
165 - </div>
166 -
167 - <div class="cookieadmin-stats-block cookieadmin-is-block-25">
168 - <div class="cookieadmin-stats-name">'.esc_html__('Consent Type', 'cookieadmin').'&nbsp;
169 - <div class="cookieadmin-block-link"><a href="'.esc_url(admin_url('admin.php?page=cookieadmin-consent')).'">['.esc_html__('Edit', 'cookieadmin').']</a></div>
170 - </div>
171 - <div class="cookieadmin-stats-number cookieadmin-uppercase">'.(!empty($view) && $view == 'cookieadmin_us' ? esc_html__('US State Laws', 'cookieadmin') : esc_html__('GDPR', 'cookieadmin')).'</div>
172 - </div>
173 -
174 - <div class="cookieadmin-stats-block cookieadmin-is-block-25">
175 - <div class="cookieadmin-stats-name">'.esc_html__('Google Consent Mode v2', 'cookieadmin').'&nbsp;
176 - <div class="cookieadmin-block-link"><a href="'.esc_url(admin_url('admin.php?page=cookieadmin-settings')).'">['.esc_html__('Edit', 'cookieadmin').']</a></div>
177 - </div>
178 - '.(!empty($cookieadmin_settings['google_consent_mode_v2']) ? '<div class="cookieadmin-stats-number cookieadmin-green">'.esc_html__('Enabled', 'cookieadmin').'</div>' : '<div class="cookieadmin-stats-number">'.esc_html__('Disabled', 'cookieadmin').'</div>').'
179 - </div>
180 -
181 - <div style="width:25%">
182 -
183 - </div>
184 - </div>
185 - </div>';
186 -
187 - self::footer_theme();
188 - }
170 + echo '</div>';
189 171
190 - static function settings_page(){
172 + if(!defined('SITEPAD')){
173 + echo '<div class="cookieadmin-footer">
174 + <a href="'.esc_url(COOKIEADMIN_WWW_URL).'" target="_blank">CookieAdmin</a> v'.esc_html(COOKIEADMIN_VERSION).' &middot; ' . esc_html__('Report bugs', 'cookieadmin') . ' <a href="https://softaculous.deskuss.com/open.php?topicId=26" target="_blank">'.esc_html__('here', 'cookieadmin').'</a>';
191 175
192 - global $cookieadmin_lang, $cookieadmin_error, $cookieadmin_msg, $cookieadmin_settings;
193 -
194 - self::header_theme(__('Settings', 'cookieadmin'));
195 -
196 - $view = get_option('cookieadmin_law', 'cookieadmin_gdpr');
197 - $policy = cookieadmin_load_policy();
198 - $policy['set'] = $view;
199 - $policy['admin_url'] = admin_url('admin-ajax.php');
200 - $policy['cookieadmin_nonce'] = wp_create_nonce('cookieadmin_admin_js_nonce');
201 -
202 - echo '
203 - <div class="cookieadmin_consent-wrap">
204 - <form action="" method="post" id="setting_submenu">
205 -
206 - <div class="cookieadmin_consent-contents">
207 - <div class="cookieadmin_consent_settings">
208 - <div class="cookieadmin-contents cookieadmin-settings">
209 - <div class="cookieadmin-setting setting-prior">
210 - <label class="cookieadmin-title">'.esc_html__('Load Cookies prior to consent', 'cookieadmin').'</label>
211 - <div class="cookieadmin-setting-contents">
212 -
213 - <input name="cookieadmin_preload[]" type="checkbox" id="necessary_preload" value="necessary" checked disabled>
214 - <label class="cookieadmin-input" for="necessary_preload">'.esc_html__('Necessary', 'cookieadmin').'</label>
215 -
216 - <input name="cookieadmin_preload[]" type="checkbox" id="functional_preload" value="functional" '.(!empty($policy[$view]['preload']) && in_array("functional", $policy[$view]['preload']) ? 'checked' : '').'>
217 - <label class="cookieadmin-input" for="functional_preload">'.esc_html__('Functional', 'cookieadmin').'</label>
218 -
219 - <input name="cookieadmin_preload[]" type="checkbox" id="analytics_preload" value="analytics" '.(!empty($policy[$view]['preload']) && in_array("analytics", $policy[$view]['preload']) ? 'checked' : '').'>
220 - <label class="cookieadmin-input" for="analytics_preload">'.esc_html__('Analytical', 'cookieadmin').'</label>
221 -
222 - <input name="cookieadmin_preload[]" type="checkbox" id="marketing_preload" value="marketing" '.(!empty($policy[$view]['preload']) && in_array("marketing", $policy[$view]['preload']) ? 'checked' : '').'>
223 - <label for="marketing_preload">'.esc_html__('Advertisement', 'cookieadmin').'</label>
224 - </div>
225 - </div>
226 -
227 - <div class="cookieadmin-setting setting-reload">
228 - <label class="cookieadmin-title">'.esc_html__('Reload page on consent', 'cookieadmin').'</label>
229 - <div class="cookieadmin-setting-contents">
230 - <label class="cookieadmin_toggle">
231 - <input name="cookieadmin_reload_on_consent" type="checkbox" id="cookieadmin_reload_on_consent" '.(!empty($policy[$view]['reload_on_consent']) ? 'checked' : '').'>
232 - <span class="cookieadmin_slider"></span>
233 - </label>
234 - </div>
235 - </div>
236 -
237 - <div class="cookieadmin-setting">
238 - <label class="cookieadmin-title">'.esc_html__('Google Consent Mode v2', 'cookieadmin').'</label>
239 - <div class="cookieadmin-setting-contents">
240 - <label class="cookieadmin_toggle">
241 - <input name="cookieadmin_google_consent_mode_v2" type="checkbox" id="cookieadmin_google_consent_mode_v2" '.(!empty($cookieadmin_settings['google_consent_mode_v2']) ? 'checked' : '').'>
242 - <span class="cookieadmin_slider"></span>
243 - </label>
244 - </div>
245 - </div>
246 -
247 - <div class="cookieadmin-setting">
248 - <div class="cookieadmin-setting-contents">
249 - <span><input type="submit" name="cookieadmin_save_settings" class="cookieadmin-btn cookieadmin-btn-primary action" value="'.esc_html__('Save Settings', 'cookieadmin').'"></span>
250 - </div>
251 - </div>
252 - </div>
253 - </div>';
254 -
255 - wp_nonce_field('cookieadmin_admin_nonce', 'cookieadmin_security');
256 - echo '
257 - <br/>
258 - <br/>
259 - </div>
260 - </form>
261 - </div>';
262 -
263 - self::footer_theme();
264 - }
265 -
266 - static function scan_cookies_page(){
267 - global $cookieadmin_lang, $cookieadmin_error, $cookieadmin_msg, $wpdb;
268 -
269 - self::header_theme(__('Scan Cookies', 'cookieadmin'));
270 -
271 - $table_name = esc_sql($wpdb->prefix . 'cookieadmin_cookies');
272 - $scanned = $wpdb->get_results("SELECT * FROM {$table_name} limit 1");
273 -
274 - $cookies_scanned = '';
275 - $categorized = [];
276 - $categorized_cookies = [];
277 -
278 - if(!empty($scanned)){
279 -
280 - $is_categorized = $wpdb->get_var("SELECT * FROM {$table_name} WHERE category IS NOT NULL LIMIT 1");
281 -
282 - $scanned_cookies = $wpdb->get_results("SELECT * FROM {$table_name}");
283 -
284 - if(empty($is_categorized)){
285 -
286 - foreach($scanned_cookies as $row => $data){
287 - $exp = 'Session';
288 - $data->expires = strtotime($data->expires);
289 - if(!empty($data->expires) && ($data->expires > 0)){
290 - $exp = round(($data->expires - time()) / 86400);
291 - if($exp < 1 && !empty($data->max_age)){
292 - $exp = $data->max_age;
293 - }
294 - }
295 -
296 - $cookies_scanned .= '<tr><td>'.esc_html($data->cookie_name).'</td><td>'.esc_html($exp).'</td><td>'.esc_html($data->path).'</td><td>'.esc_html($data->domain).'</td><td>'.( $data->secure ? 'Yes' : 'No').'</td></tr>';
297 -
298 - }
176 + if(defined('COOKIEADMIN_PREMIUM')){
177 + echo ' &middot; <a href="mailto:[email protected]">'.esc_html__('Email support', 'cookieadmin').'</a>';
299 178 }
300 - else{
301 179
302 - foreach($scanned_cookies as $row => $data){
303 -
304 - $exp = 'Session';
305 - if (!empty($data->expires) && is_string($data->expires)) {
306 - $timestamp = strtotime($data->expires);
307 - if ($timestamp && $timestamp > 0) {
308 - $exp = round(($timestamp - time()) / 86400);
309 - if ($exp < 1 && !empty($data->max_age)) {
310 - $exp = $data->max_age;
311 - }
312 - }
313 - }
314 -
315 - if(empty($data->category)){
316 - $data->category = 'Unknown';
317 - }
318 -
319 - if(!isset($categorized[$data->category])){
320 - $categorized[$data->category] = '';
321 - }
322 -
323 - if(empty($data->description)){
324 - $data->description = 'Not Available';
325 - }
326 -
327 - $categorized[$data->category] .= '<tr><td>'.esc_html($data->cookie_name).'</td><td>'.esc_html($data->description).'</td><td>'.esc_html($exp).'</td><td> <span class="dashicons dashicons-edit cookieadmin_edit_icon" id="edit_'.esc_attr($data->id).'"></span> <span class="dashicons dashicons-trash cookieadmin_delete_icon" id="delete_'.esc_attr($data->id).'"></span> </td></tr>';
328 -
329 - $categorized_cookies[$data->id]['id'] = $data->id;
330 - $categorized_cookies[$data->id]['cookie_name'] = $data->cookie_name;
331 - $categorized_cookies[$data->id]['description'] = $data->description;
332 - $categorized_cookies[$data->id]['category'] = $data->category;
333 - $categorized_cookies[$data->id]['expires'] = $exp;
334 -
335 - }
336 -
337 - $cookies_scanned .= '<tr><td colspan="5">'.esc_html__('No uncategorized cookies yet. Click on Scan Cookies button to scan for new cookies!', 'cookieadmin').'</td></tr>';
338 - }
339 - }else{
340 -
341 - $cookies_scanned .= '<tr><td colspan="5">'.esc_html__('No scanned cookies yet. Click on Scan Cookies button to scan for new cookies!', 'cookieadmin').'</td></tr>';
342 -
180 + echo '</div>';
343 181 }
344 -
345 - wp_register_script('cookieadmin_categorized_cookies', '', array('jquery'), COOKIEADMIN_VERSION, true);
346 - wp_enqueue_script('cookieadmin_categorized_cookies');
347 - wp_localize_script('cookieadmin_categorized_cookies', 'categorized_cookies', $categorized_cookies);
348 -
349 - echo '
350 - <div class="cookieadmin_consent-wrap">
351 - <form action="" method="post">
352 - <div class="cookieadmin_consent-contents">
353 - <div class="cookieadmin_consent_settings">
354 - <div class="cookieadmin-setting cookieadmin-manager-cookie-scan">
355 - <label class="cookieadmin-title">'.esc_html__('Scanned Cookies', 'cookieadmin').'</label>
356 - <div class="cookieadmin-setting-contents cookieadmin-cookie-scan">
357 - <input type="button" class="cookieadmin-btn cookieadmin-btn-primary cookieadmin-scan" value="Scan Cookies">
358 - </div>
359 - <div class="cookieadmin-manager-result">
360 - <table class="cookieadmin-table cookieadmin-cookie-scan-result">
361 - <thead>
362 - <tr>
363 - <th width="20%">'.esc_html__('Name', 'cookieadmin').'</th>
364 - <th width="10%">'.esc_html__('Expiry', 'cookieadmin').'</th>
365 - <th width="30%">'.esc_html__('Path', 'cookieadmin').'</th>
366 - <th width="20%">'.esc_html__('Domain', 'cookieadmin').'</th>
367 - <th width="10%">'.esc_html__('Secure', 'cookieadmin').'</th>
368 - </tr>
369 - </thead>
370 - <tbody>
371 - '.$cookies_scanned.'
372 - </tbody>
373 - </table>
374 - </div>
375 - </div>
376 -
377 - <div class="cookieadmin-setting cookieadmin-manager-cookie-categorize" style="margin-top:40px;">
378 - <label class="cookieadmin-title">'.esc_html__('Categorized Cookies', 'cookieadmin').'</label>
379 - <div class="cookieadmin-setting-contents cookieadmin-cookie-categorize">
380 - <input type="button" class="cookieadmin-btn cookieadmin-btn-primary cookieadmin-auto-categorize" value="'.esc_attr__('Categorize Cookies', 'cookieadmin').'">
381 - </div>
382 - <div class="cookieadmin-manager-result">
383 - <table class="cookieadmin-table cookieadmin-cookie-categorized">
384 - <thead>
385 - <tr>
386 - <th width="30%">'.esc_html__('Name', 'cookieadmin').'</th>
387 - <th width="50%">'.esc_html__('Description', 'cookieadmin').'</th>
388 - <th width="10%">'.esc_html__('Expiry', 'cookieadmin').'</th>
389 - <th width="10%">'.esc_html__('Action', 'cookieadmin').'</th>
390 - </tr>
391 - </thead>
392 - <tbody id="necessary_tbody">
393 - <tr><td colspan=4>'.esc_html__('Necessary Cookies', 'cookieadmin').'</td></tr>
394 - '.( !empty($categorized['Necessary']) ? $categorized['Necessary'] : '<tr class="cookieadmin-empty-row"><td colspan=4>'.esc_html__('No Cookies Found!', 'cookieadmin').'</td></tr>' ).'
395 - </tbody>
396 - <tbody id="functional_tbody">
397 - <tr><td colspan=4>'.esc_html__('Functional Cookies', 'cookieadmin').'</td></tr>
398 - '.( !empty($categorized['Functional']) ? $categorized['Functional'] : '<tr class="cookieadmin-empty-row"><td colspan=4>'.esc_html__('No Cookies Found!', 'cookieadmin').'</td></tr>' ).'
399 - </tbody>
400 - <tbody id="analytics_tbody">
401 - <tr><td colspan=4>'.esc_html__('Analytical Cookies', 'cookieadmin').'</td></tr>
402 - '.( !empty($categorized['Analytics']) ? $categorized['Analytics'] : '<tr class="cookieadmin-empty-row"><td colspan=4>'.esc_html__('No Cookies Found!', 'cookieadmin').'</td></tr>' ).'
403 - </tbody>
404 - <tbody id="marketing_tbody">
405 - <tr><td colspan=4>'.esc_html__('Marketing Cookies', 'cookieadmin').'</td></tr>
406 - '.( !empty($categorized['Marketing']) ? $categorized['Marketing'] : '<tr class="cookieadmin-empty-row"><td colspan=4>'.esc_html__('No Cookies Found!', 'cookieadmin').'</td></tr>' ).'
407 - </tbody>
408 - <tbody id="unknown_tbody">
409 - <tr><td colspan=4>'.esc_html__('Unknown Cookies', 'cookieadmin').'</td></tr>
410 - '.( !empty($categorized['Unknown']) ? $categorized['Unknown'] : '<tr class="cookieadmin-empty-row"><td colspan=4>'.esc_html__('No Cookies Found!', 'cookieadmin').'</td></tr>' ).'
411 - </tbody>
412 - </table>
413 - </div>
414 - </div>
415 - </div>
416 - </div>';
417 -
418 - wp_nonce_field('cookieadmin_admin_nonce', 'cookieadmin_security');
419 -
420 - echo '
421 - </div>
422 - </form>
423 - <br/>';
424 -
425 - self::footer_theme();
426 -
427 - echo '
428 - <!-- Modal Overlay -->
429 - <div class="modal-overlay" id="edit-cookie-modal" hidden>
430 - <div class="modal-container">
431 - <div class="modal-header">
432 - <h2>'.esc_html__('Edit Cookie', 'cookieadmin').'</h2>
433 - <button class="cookieadmin_dialog_modal_close_btn">&times;</button>
434 - </div>
435 182
436 - <div class="modal-body">
437 - <div class="form-group">
438 - <label for="cookieadmin-dialog-cookie-category">'.esc_html__('Category', 'cookieadmin').'</label>
439 - <select id="cookieadmin-dialog-cookie-category">
440 - <option value="Unknown">'.esc_html__('Unknown', 'cookieadmin').'</option>
441 - <option value="Necessary">'.esc_html__('Necessary', 'cookieadmin').'</option>
442 - <option value="Functional">'.esc_html__('Functional', 'cookieadmin').'</option>
443 - <option value="Analytics">'.esc_html__('Analytical', 'cookieadmin').'</option>
444 - <option value="Marketing">'.esc_html__('Marketing', 'cookieadmin').'</option>
445 - </select>
446 - </div>
447 -
448 - <div class="form-group">
449 - <label for="cookie_id">'.esc_html__('Cookie Name/ID', 'cookieadmin').'</label>
450 - <input type="text" id="cookieadmin-dialog-cookie-name" Placeholder="'.esc_html__('Enter Cookie Name or id', 'cookieadmin').'">
451 - </div>
452 -
453 - <div class="form-group">
454 - <label for="description">'.esc_html__('Description', 'cookieadmin').'</label>
455 - <textarea id="cookieadmin-dialog-cookie-desc" Placeholder="'.esc_html__('Enter Cookie description here', 'cookieadmin').'"></textarea>
456 - </div>
457 -
458 - <div class="form-group">
459 - <label for="duration">'.esc_html__('Duration', 'cookieadmin').'</label>
460 - <input type="text" id="cookieadmin-dialog-cookie-duration" Placeholder="'.esc_html__('30 days', 'cookieadmin').'">
461 - </div>
462 -
463 - <div class="modal-footer" style="background-color:#ffffff;">
464 - <button class="cookieadmin-btn cookieadmin-btn-primary" id="cookieadmin_dialog_save_btn" form="edit-cookie-form">'.esc_html__('Save', 'cookieadmin').'</button>
465 - </div>
466 - </div>
467 - </div>
468 - </div>';
183 + echo '</div>';
469 184 }
470 185
471 - static function consent_form_page(){
472 -
473 - global $cookieadmin_lang, $cookieadmin_error, $cookieadmin_msg;
474 -
475 - self::header_theme(__('Consent Form', 'cookieadmin'));
476 -
477 - $view = get_option('cookieadmin_law', 'cookieadmin_gdpr');
478 - $policy = cookieadmin_load_policy();
479 - $templates = wp_kses_post(implode("", cookieadmin_load_consent_template($policy[$view], $view)));
480 - $policy['set'] = $view;
481 - $policy['admin_url'] = admin_url('admin-ajax.php');
482 - $policy['cookieadmin_nonce'] = wp_create_nonce('cookieadmin_admin_js_nonce');
483 -
484 - $cookieadmin_requires_pro = self::is_feature_available(1);
485 -
486 - echo '
487 - <div class="cookieadmin_consent-wrap">
488 - <form action="" method="post" id="consent_submenu">
489 -
490 - <div class="cookieadmin_consent-contents">
491 - <div class="cookieadmin_consent_settings">
492 - <div class="cookieadmin-contents cookieadmin_consent">
493 -
494 - <div class="cookieadmin-setting">
495 - <label class="cookieadmin-title">'.esc_html__('Consent Type', 'cookieadmin').'</label>
496 - <div class="cookieadmin-setting-contents">
497 - <select name="cookieadmin_consent_type" id="cookieadmin_consent_type">
498 - <option name="cookieadmin_gdpr" id="cookieadmin_gdpr" value="cookieadmin_gdpr">'.esc_html__('GDPR', 'cookieadmin').'</option>
499 - <option name="cookieadmin_us" id="cookieadmin_us" value="cookieadmin_us">'.esc_html__('US State Laws', 'cookieadmin').'</option>
500 - </select>
501 - </div>
502 - </div>
503 -
504 - <div class="cookieadmin-setting cookieadmin_consent-expiry">
505 - <label class="cookieadmin-title" for="cookieadmin_consent-expiry">'.esc_html__('Consent Expiry', 'cookieadmin').'</label>
506 - <div class="cookieadmin-setting-contents">
507 - <input type="number" name="cookieadmin_days" id="cookieadmin_consent_expiry" style="max-width:70px;" value="'.esc_attr($policy[$view]['cookieadmin_days']).'">
508 - </div>
509 - </div>
510 -
511 - <div class="cookieadmin-setting consent-layout">
512 - <label class="cookieadmin-title">'.esc_html__('Notice Type', 'cookieadmin').'</label>
513 - <div class="cookieadmin-setting-contents">
514 - <input name="cookieadmin_layout" type="radio" id="cookieadmin_layout_box" value="box">
515 - <label class="cookieadmin-input" for="cookieadmin_layout_box">'.esc_html__('Box', 'cookieadmin').'</label>
516 - <input name="cookieadmin_layout" type="radio" id="cookieadmin_layout_footer" value="footer">
517 - <label class="cookieadmin-input" for="cookieadmin_layout_footer">'.esc_html__('Footer', 'cookieadmin').'</label>
518 - <input name="cookieadmin_layout" type="radio" id="cookieadmin_layout_popup" value="popup">
519 - <label for="cookieadmin_layout_popup">'.esc_html__('Popup', 'cookieadmin').'</label>
520 - </div>
521 - </div>
522 -
523 - <div class="cookieadmin-setting consent-position">
524 - <label class="cookieadmin-title">'.esc_html__('Notice Position', 'cookieadmin').'</label>
525 - <div class="cookieadmin-setting-contents">
526 - <input class="cookieadmin_box_layout" id="cookieadmin_position_bottom_left" name="cookieadmin_position" type="radio" value="bottom_left" checked>
527 - <label class="cookieadmin_box_layout cookieadmin-input" for="cookieadmin_position_bottom_left">'.esc_html__('Bottom Left', 'cookieadmin').'</label>
528 - <input class="cookieadmin_box_layout" id="cookieadmin_position_bottom_right" name="cookieadmin_position" type="radio" value="bottom_right">
529 - <label class="cookieadmin_box_layout cookieadmin-input" for="cookieadmin_position_bottom_right">'.esc_html__('Bottom Right', 'cookieadmin').'</label>
530 - <input class="cookieadmin_box_layout" id="cookieadmin_position_top_left" name="cookieadmin_position" type="radio" value="top_left">
531 - <label class="cookieadmin_box_layout cookieadmin-input" for="cookieadmin_position_top_left">'.esc_html__('Top Left', 'cookieadmin').'</label>
532 - <input class="cookieadmin_box_layout" id="cookieadmin_position_top_right" name="cookieadmin_position" type="radio" value="top_right">
533 - <label class="cookieadmin_box_layout cookieadmin-input" for="cookieadmin_position_top_right">'.esc_html__('Top Right', 'cookieadmin').'</label>
534 - <input class="cookieadmin_foter_layout" id="cookieadmin_position_top" name="cookieadmin_position" type="radio" value="top" style="display:none;">
535 - <label class="cookieadmin_foter_layout cookieadmin-input" for="cookieadmin_position_top" style="display:none;">'.esc_html__('Top', 'cookieadmin').'</label>
536 - <input class="cookieadmin_foter_layout" id="cookieadmin_position_bottom" name="cookieadmin_position" type="radio" value="bottom" style="display:none;">
537 - <label class="cookieadmin_foter_layout" for="cookieadmin_position_bottom" style="display:none;">'.esc_html__('Bottom', 'cookieadmin').'</label>
538 - </div>
539 - </div>
540 -
541 - <div class="cookieadmin-setting consent-modal-layout">
542 - <label class="cookieadmin-title">'.esc_html__('Preference Position', 'cookieadmin').'</label>
543 - <div class="cookieadmin-setting-contents">
544 - <input id="cookieadmin_modal_center" name="cookieadmin_modal" type="radio" value="center" checked>
545 - <label class="cookieadmin-input" for="cookieadmin_modal_center">'.esc_html__('Center', 'cookieadmin').'</label>
546 - <input id="cookieadmin_modal_side" name="cookieadmin_modal" type="radio" value="side">
547 - <label class="cookieadmin-input" for="cookieadmin_modal_side">'.esc_html__('Side', 'cookieadmin').'</label>
548 - <input id="cookieadmin_modal_down" name="cookieadmin_modal" type="radio" value="down">
549 - <label for="cookieadmin_modal_down">'.esc_html__('Draw down', 'cookieadmin').'</label>
550 - </div>
551 - </div>
552 -
553 - <div class="cookieadmin-setting consent-notice">
554 - <label class="cookieadmin-title">'.esc_html__('Notice Section', 'cookieadmin').'</label>
555 - <div class="cookieadmin-setting-contents cookieadmin-vertical">
556 - <label for="cookieadmin_notice_title">'.esc_html__('Title', 'cookieadmin').'</label>
557 - <input type="text" id="cookieadmin_notice_title_layout" name="cookieadmin_notice_title" style="width: 270px;" value="'.esc_attr($policy[$view]['cookieadmin_notice_title']).'">
558 - <label for="cookieadmin_notice_layout" style="margin-top:20px;">'.esc_html__('Notice', 'cookieadmin').'</label>
559 - <textarea rows="5vh" cols="100vw" id="cookieadmin_notice_layout" name="cookieadmin_notice">'.esc_html($policy[$view]['cookieadmin_notice']).'</textarea>
560 - <div class="cookieadmin-setting-colors cookieadmin-setting-contents cookieadmin-horizontal">
561 - <div class="cookieadmin-setting-color cookieadmin-vertical" >
562 - <label for="cookieadmin_notice_title_color">'.esc_html__('Title', 'cookieadmin').'</label>
563 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
564 - <input type="color" id="cookieadmin_notice_title_color_box" name="cookieadmin_notice_title_color_box" value="'.esc_attr($policy[$view]['cookieadmin_notice_title_color']).'">
565 - <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">
566 - </div>
567 - </div>
568 - <div class="cookieadmin-setting-color cookieadmin-vertical">
569 - <label for="cookieadmin_notice_color">'.esc_html__('Content', 'cookieadmin').'</label>
570 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
571 - <input type="color" id="cookieadmin_notice_color_box" name="cookieadmin_notice_color_box" value="'.esc_attr($policy[$view]['cookieadmin_notice_color']).'">
572 - <input type="text" id="cookieadmin_notice_color" name="cookieadmin_notice_color" value="'.esc_attr($policy[$view]['cookieadmin_notice_color']).'" class="cookieadmin-color-input">
573 - </div>
574 - </div>
575 - <div class="cookieadmin-setting-color cookieadmin-vertical">
576 - <label for="cookieadmin_consent_inside">'.esc_html__('Background', 'cookieadmin').'</label>
577 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
578 - <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']).'">
579 - <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">
580 - </div>
581 - </div>
582 - <div class="cookieadmin-setting-color cookieadmin-vertical">
583 - <label for="cookieadmin_consent_inside_border_color">'.esc_html__('Border', 'cookieadmin').'</label>
584 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
585 - <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']).'">
586 - <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">
587 - </div>
588 - </div>
589 - </div>
590 - </div>
591 - </div>
592 - </div>
593 - <div class="cookieadmin-setting">
594 - <label class="cookieadmin-title">'.esc_html__('Buttons', 'cookieadmin').'</label>
595 - <div class="cookieadmin-buttons cookieadmin-setting-contents cookieadmin-horizontal">
596 - <div class="cookieadmin-button cookieadmin-vertical">
597 - <input id="cookieadmin_customize_btn" name="cookieadmin_customize_btn" style="max-width:130px;text-align:center;" value="'.esc_attr($policy[$view]['cookieadmin_customize_btn']).'">
598 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
599 - <input type="color" id="cookieadmin_customize_btn_color_box" name="cookieadmin_customize_btn_color_box" value="'.esc_attr($policy[$view]['cookieadmin_customize_btn_color']).'">
600 - <input type="text" id="cookieadmin_customize_btn_color" name="cookieadmin_customize_btn_color" value="'.esc_attr($policy[$view]['cookieadmin_customize_btn_color']).'" class="cookieadmin-color-input">
601 - </div>
602 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
603 - <input type="color" id="cookieadmin_customize_btn_bg_color_box" name="cookieadmin_customize_btn_bg_color_box" value="'.esc_attr($policy[$view]['cookieadmin_customize_btn_bg_color']).'">
604 - <input type="text" id="cookieadmin_customize_btn_bg_color" name="cookieadmin_customize_btn_bg_color" value="'.esc_attr($policy[$view]['cookieadmin_customize_btn_bg_color']).'" class="cookieadmin-color-input">
605 - </div>
606 - </div>
607 - <div class="cookieadmin-button cookieadmin-vertical">
608 - <input id="cookieadmin_reject_btn" name="cookieadmin_reject_btn" style="max-width:130px;text-align:center;" value="'.esc_attr($policy[$view]['cookieadmin_reject_btn']).'">
609 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
610 - <input type="color" id="cookieadmin_reject_btn_color_box" name="cookieadmin_reject_btn_color_box" value="'.esc_attr($policy[$view]['cookieadmin_reject_btn_color']).'">
611 - <input type="text" id="cookieadmin_reject_btn_color" name="cookieadmin_reject_btn_color" value="'.esc_attr($policy[$view]['cookieadmin_reject_btn_color']).'" class="cookieadmin-color-input">
612 - </div>
613 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
614 - <input type="color" id="cookieadmin_reject_btn_bg_color_box" name="cookieadmin_reject_btn_bg_color_box" value="'.esc_attr($policy[$view]['cookieadmin_reject_btn_bg_color']).'">
615 - <input type="text" id="cookieadmin_reject_btn_bg_color" name="cookieadmin_reject_btn_bg_color" value="'.esc_attr($policy[$view]['cookieadmin_reject_btn_bg_color']).'" class="cookieadmin-color-input">
616 - </div>
617 - </div>
618 - <div class="cookieadmin-button cookieadmin-vertical">
619 - <input id="cookieadmin_accept_btn" name="cookieadmin_accept_btn" style="max-width:130px;text-align:center;" value="'.esc_attr($policy[$view]['cookieadmin_accept_btn']).'">
620 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
621 - <input type="color" id="cookieadmin_accept_btn_color_box" name="cookieadmin_accept_btn_color_box" value="'.esc_attr($policy[$view]['cookieadmin_accept_btn_color']).'">
622 - <input type="text" id="cookieadmin_accept_btn_color" name="cookieadmin_accept_btn_color" value="'.esc_attr($policy[$view]['cookieadmin_accept_btn_color']).'" class="cookieadmin-color-input">
623 - </div>
624 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
625 - <input type="color" id="cookieadmin_accept_btn_bg_color_box" name="cookieadmin_accept_btn_bg_color_box" value="'.esc_attr($policy[$view]['cookieadmin_accept_btn_bg_color']).'">
626 - <input type="text" id="cookieadmin_accept_btn_bg_color" name="cookieadmin_accept_btn_bg_color" value="'.esc_attr($policy[$view]['cookieadmin_accept_btn_bg_color']).'" class="cookieadmin-color-input">
627 - </div>
628 - </div>
629 - <div class="cookieadmin-button cookieadmin-vertical">
630 - <input id="cookieadmin_save_btn" name="cookieadmin_save_btn" style="max-width:130px;text-align:center;" value="'.esc_attr($policy[$view]['cookieadmin_save_btn']).'">
631 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
632 - <input type="color" id="cookieadmin_save_btn_color_box" name="cookieadmin_save_btn_color_box" value="'.esc_attr($policy[$view]['cookieadmin_save_btn_color']).'">
633 - <input type="text" id="cookieadmin_save_btn_color" name="cookieadmin_save_btn_color" value="'.esc_attr($policy[$view]['cookieadmin_save_btn_color']).'" class="cookieadmin-color-input">
634 - </div>
635 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
636 - <input type="color" id="cookieadmin_save_btn_bg_color_box" name="cookieadmin_save_btn_bg_color_box" value="'.esc_attr($policy[$view]['cookieadmin_save_btn_bg_color']).'">
637 - <input type="text" id="cookieadmin_save_btn_bg_color" name="cookieadmin_save_btn_bg_color" value="'.esc_attr($policy[$view]['cookieadmin_save_btn_bg_color']).'" class="cookieadmin-color-input">
638 - </div>
639 - </div>
640 - </div>
641 - </div>
642 - <div class="cookieadmin-setting consent-preference">
643 - <label class="cookieadmin-title">'.esc_html__('Preference Section', 'cookieadmin').'</label>
644 - <div class="cookieadmin-setting-contents cookieadmin-vertical">
645 - <label for="cookieadmin_preference_title">'.esc_html__('Title', 'cookieadmin').'</label>
646 - <input type="text" id="cookieadmin_preference_title_layout" name="cookieadmin_preference_title" style="width: 270px;" value="'.esc_html($policy[$view]['cookieadmin_preference_title']).'">
647 - <label for="cookieadmin_preference" style="margin-top:20px;">'.esc_html__('Privacy Notice', 'cookieadmin').'</label>
648 - <textarea rows="8vh" cols="100vw" id="cookieadmin_preference_layout" name="cookieadmin_preference">'.esc_html($policy[$view]['cookieadmin_preference']).'</textarea>
649 - <div class="cookieadmin-setting-colors cookieadmin-setting-contents cookieadmin-setting-color cookieadmin-horizontal">
650 - <div class="cookieadmin-setting-color cookieadmin-vertical">
651 - <label for="cookieadmin_preference_title_color">'.esc_html__('Title', 'cookieadmin').'</label>
652 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
653 - <input type="color" id="cookieadmin_preference_title_color_box" name="cookieadmin_preference_title_color_box" value="'.esc_attr($policy[$view]['cookieadmin_preference_title_color']).'">
654 - <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">
655 - </div>
656 - </div>
657 - <div class="cookieadmin-setting-color cookieadmin-vertical">
658 - <label for="cookieadmin_details_wrapper_color">'.esc_html__('Content', 'cookieadmin').'</label>
659 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
660 - <input type="color" id="cookieadmin_details_wrapper_color_box" name="cookieadmin_details_wrapper_color_box" value="'.esc_attr($policy[$view]['cookieadmin_details_wrapper_color']).'">
661 - <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">
662 - </div>
663 - </div>
664 - <div class="cookieadmin-setting-color cookieadmin-vertical">
665 - <label for="preference_background_color">'.esc_html__('Background', 'cookieadmin').'</label>
666 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
667 - <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']).'">
668 - <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">
669 - </div>
670 - </div>
671 - <div class="cookieadmin-setting-color cookieadmin-vertical">
672 - <label for="cookieadmin_cookie_modal_border_color">'.esc_html__('Border', 'cookieadmin').'</label>
673 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
674 - <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']).'">
675 - <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">
676 - </div>
677 - </div>
678 - </div>
679 -
680 - <div class="cookieadmin-setting-colors cookieadmin-setting-contents cookieadmin-setting-color cookieadmin-horizontal" cookieadmin-pro-only="1">
681 - <div class="cookieadmin-setting-color cookieadmin-vertical">
682 - <label for="cookieadmin_links_color">'.esc_html__('Links', 'cookieadmin').$cookieadmin_requires_pro.'</label>
683 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
684 - <input type="color" id="cookieadmin_links_color_box" name="cookieadmin_links_color_box" value="'.esc_attr($policy[$view]['cookieadmin_links_color']).'">
685 - <input type="text" id="cookieadmin_links_color" name="cookieadmin_links_color" value="'.esc_attr($policy[$view]['cookieadmin_links_color']).'" class="cookieadmin-color-input">
686 - </div>
687 - </div>
688 - <div class="cookieadmin-setting-color cookieadmin-vertical">
689 - <label for="cookieadmin_slider_on_bg_color">'.esc_html__('Button Switch On', 'cookieadmin').$cookieadmin_requires_pro.'</label>
690 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
691 - <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']).'">
692 - <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">
693 - </div>
694 - </div>
695 - <div class="cookieadmin-setting-color cookieadmin-vertical">
696 - <label for="cookieadmin_slider_off_bg_color">'.esc_html__('Button Switch Off', 'cookieadmin').$cookieadmin_requires_pro.'</label>
697 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
698 - <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']).'">
699 - <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">
700 - </div>
701 - </div>
702 - </div>
703 -
704 - <span style="margin-top:30px;">
705 -
706 - <input type="submit" name="cookieadmin_save_settings" class="cookieadmin-btn cookieadmin-btn-primary action" value="'.esc_html__('Save Settings', 'cookieadmin').'">
707 -
708 - <input type="button" id="cookieadmin_show_preview" name="cookieadmin_show_preview" class="cookieadmin-btn cookieadmin-btn-secondary" value="'.esc_html__('Show Preview', 'cookieadmin').'">
709 -
710 - </span>
711 -
712 - </div>
713 - </div>
714 - </div>
715 - </div>
716 - ';
717 - wp_nonce_field('cookieadmin_admin_nonce', 'cookieadmin_security');
718 - echo '<br/>
719 - <br/>
720 - </form>
721 - </div>';
722 - self::footer_theme();
723 -
724 - echo $templates;
725 - }
726 -
727 - static function cookieadmin_scan_cookies($url = ''){
728 - global $wpdb;
729 -
730 - $cookieData = \CookieAdmin\Scanner::start_scan($url);
731 - //cookieadmin_r_print($cookieData);
732 -
733 - if(!empty($cookieData) && self::save_raw_scan_results($cookieData)){
734 - wp_send_json_success($cookieData);
735 - }
736 -
737 - wp_send_json(['success' => true,
738 - 'data' => null,
739 - 'message' => __('No cookies found!', 'cookieadmin')]);
740 - }
741 -
742 186 static function cookieadmin_table_exists($table_name) {
743 187 global $wpdb;
744 188
745 189 $query = $wpdb->prepare("SHOW TABLES LIKE %s", $table_name);
@@ -746,265 +190,180 @@
746 190
747 191 return $wpdb->get_var($query) === $table_name;
748 192 }
749 193
750 - static function cookieadmin_save_settings(){
194 + static function scan_notice(){
751 195
752 - global $cookieadmin_lang, $cookieadmin_error, $cookieadmin_msg, $cookieadmin_settings;
753 -
754 - // debug_print_backtrace();die;
196 + $cookieadmin_auto_scan = get_option('cookieadmin_scan');
197 + $current_page = isset($_GET['page']) ? sanitize_text_field(wp_unslash($_GET['page'])) : '';
755 198
756 - check_admin_referer('cookieadmin_admin_nonce', 'cookieadmin_security');
757 -
758 - if(!current_user_can('administrator')){
759 - wp_send_json_error(array('message' => __('Sorry, but you do not have permissions to perform this action', 'cookieadmin')));
199 + if(empty($cookieadmin_auto_scan['status']) || (strpos($current_page, 'cookieadmin') !== 0)){
200 + return false;
760 201 }
202 +
203 + $msg = '';
761 204
762 - $policy = cookieadmin_load_policy();
205 + if($cookieadmin_auto_scan['status'] === 2){
206 +
207 + $count = !empty($cookieadmin_auto_scan['count']) ? $cookieadmin_auto_scan['count'] : 0;
208 + /* translators: %1$s is replaced with a "string" of name of plugins, and %2$s is replaced with "string" which can be "is" or "are" based on the count of the plugin */
209 + $msg = sprintf(__('<br><strong>Cookie Scan is running:</strong> %1$d Cookies found. Please wait for cookies to appear on <a href="%2$s">Scan Cookies Page</a>', 'cookieadmin'), $count, esc_url(admin_url('admin.php?page=cookieadmin-scan-cookies')));
210 + }
763 211
764 - $cookieadmin_consent_type = isset( $_REQUEST['cookieadmin_consent_type'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['cookieadmin_consent_type'] ) ) : '';
765 -
766 - if(!empty($cookieadmin_consent_type)){
212 + if($cookieadmin_auto_scan['status'] === 3 && isset($cookieadmin_auto_scan['success'])){
213 +
214 + if($cookieadmin_auto_scan['success'] === true){
215 + /* translators: %1$s is replaced with a "string" of name of plugins, and %2$s is replaced with "string" which can be "is" or "are" based on the count of the plugin */
216 + $msg = sprintf(__('<br><strong>Cookie Scan completed successfully:</strong> Please visit <a href="%1$s">Scan Cookies</a> to review scan results.', 'cookieadmin'), esc_url(admin_url('admin.php?page=cookieadmin-scan-cookies')));
217 + }
767 218
768 - $laws = array('cookieadmin_gdpr' => '', 'cookieadmin_us' => '');
769 -
770 - $law = array_key_exists($cookieadmin_consent_type, $laws) ? $cookieadmin_consent_type : 'cookieadmin_gdpr';
771 -
772 - if(empty($cookieadmin_error)){
773 - update_option('cookieadmin_law', $law);
219 + if($cookieadmin_auto_scan['success'] === false){
220 + /* translators: %1$s is replaced with a "string" of name of plugins, and %2$s is replaced with "string" which can be "is" or "are" based on the count of the plugin */
221 + $msg = sprintf(__('<br><strong>Cookie Scan failed:</strong> Please <a href="%1$s">Scan Cookies</a> again for compliance. %2$s', 'cookieadmin'), esc_url(admin_url('admin.php?page=cookieadmin-scan-cookies')), esc_html(!empty($cookieadmin_auto_scan['message']) ? $cookieadmin_auto_scan['message'] : ''));
774 222 }
775 223 }
776 224
777 - $cookieadmin_settings['google_consent_mode_v2'] = (isset( $_REQUEST['cookieadmin_google_consent_mode_v2'] ) ? 1 : 0);
778 -
779 - if(empty($cookieadmin_error)){
780 - update_option('cookieadmin_settings', $cookieadmin_settings);
225 + if(empty($msg)){
226 + return;
781 227 }
782 -
783 - if(isset($_REQUEST['page']) && $_REQUEST['page'] === 'cookieadmin-settings'){
784 - // get the concent type from option table, if not saved then return default as 'gdpr'
785 - $law = get_option('cookieadmin_law', 'cookieadmin_gdpr');
786 -
787 - //set preload and consent field for "cookieadmin-settings" page
788 - $setting['preload'] = !empty($_REQUEST['cookieadmin_preload']) ? array_map('sanitize_text_field', wp_unslash($_REQUEST['cookieadmin_preload'])) : [];
789 - $setting['reload_on_consent'] = !empty($_REQUEST['cookieadmin_reload_on_consent']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_reload_on_consent'])) : '';
790 - }else{
791 - // set saved or default preload and consent field for for "cookieadmin-consent" page
792 - $setting['preload'] = !empty($policy[$law]['preload']) ? $policy[$law]['preload'] : [];
793 - $setting['reload_on_consent'] = !empty($policy[$law]['reload_on_consent']) ? $policy[$law]['reload_on_consent'] : '';
794 - }
795 -
796 - $setting['cookieadmin_geo_tgt'] = (!empty($_REQUEST['cookieadmin_geo_tgt'])) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_geo_tgt'])) : 'www';
797 228
798 - $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');
229 + // cookieadmin_logo_svg fn is Internal static SVG. if allowing user input or filters, escape it.
230 + echo '
231 + <div class="notice notice-info is-dismissible" id="cookieadmin-auto-scan-notice">
232 + <p>'.cookieadmin_logo_svg().wp_kses_post($msg). '</p>
233 + </div>';
799 234
800 - $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');
235 + wp_register_script('cookieadmin-scan-notice', '', ['jquery'], '', true);
236 + wp_enqueue_script('cookieadmin-scan-notice');
237 + wp_add_inline_script('cookieadmin-scan-notice', 'jQuery("#cookieadmin-auto-scan-notice").on("click",
238 + function(e){
239 +
240 + let target = jQuery(e.target);
241 + if(!target.hasClass("notice-dismiss")){
242 + return;
243 + }
244 +
245 + var data;
801 246
802 - $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');
803 -
804 - if($setting['cookieadmin_layout'] == 'popup'){
805 - $setting['cookieadmin_modal'] = 'center';
806 - unset($setting['cookieadmin_position']);
807 - }
247 + // Hide it
248 + jQuery("#cookieadmin-auto-scan-notice").remove();
808 249
809 - $setting['cookieadmin_notice_title'] = !empty($_REQUEST['cookieadmin_notice_title']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_notice_title'])) : $policy[$law]['cookieadmin_notice_title'];
810 - $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'] : '#000000');
250 + // Save this preference
251 + jQuery.post("'.admin_url('admin-ajax.php?action=cookieadmin_ajax_handler&cookieadmin_act=close-notice&notice=cookieadmin-scan-notice').'&cookieadmin_security='.wp_create_nonce('cookieadmin_admin_js_nonce').'", data, function(response) {
252 + });
253 +
254 + });');
811 255
812 - $setting['cookieadmin_notice'] = !empty($_REQUEST['cookieadmin_notice']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_notice'])) : $policy[$law]['cookieadmin_notice'];
813 - $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'] : '#000000');
256 + }
257 + static function consent_log_purge_notice(){
814 258
815 - $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');
816 - $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');
259 + $cookieadmin_consent_purge = get_option('cookieadmin_consent_purge', ['status' => 0, 'count' => 0]);
260 +
261 + if(empty($cookieadmin_consent_purge['status'])){
262 + return false;
263 + }
264 +
265 + $msg = '';
266 + $count = empty($cookieadmin_consent_purge['count']) ? 0 : $cookieadmin_consent_purge['count'];
817 267
818 - $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');
819 - $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');
820 - $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');
821 -
822 - $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');
823 - $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');
824 - $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');
825 -
826 - $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');
827 - $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');
828 - $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');
829 -
830 - $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');
831 - $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');
832 - $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');
833 -
834 - $setting['cookieadmin_preference_title'] = !empty($_REQUEST['cookieadmin_preference_title']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_preference_title'])) : $policy[$law]['cookieadmin_preference_title'];
835 - $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'] : '#000000');
836 -
837 - $setting['cookieadmin_preference'] = !empty($_REQUEST['cookieadmin_preference']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_preference'])) : $policy[$law]['cookieadmin_preference'];
838 - $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'] : '#000000');
839 -
840 - $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');
841 - $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');
842 -
843 - $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');
844 - $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');
845 - $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');
846 -
847 - $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');
848 -
849 - $policy[$law] = $setting;
850 -
851 - update_option('cookieadmin_consent_settings', $policy);
852 -
853 - if(empty($cookieadmin_error)){
854 - $cookieadmin_msg = __('Settings saved successfully', 'cookieadmin');
268 + if($cookieadmin_consent_purge['status'] === 2){
269 + /* translators: %1$d: number of consent logs deleted */
270 + $msg = sprintf(__('<br><strong>Consent logs are being deleted :</strong> %1$d logs deleted. Please wait for deletion process to complete.', 'cookieadmin'), $count);
855 271 }
856 - }
857 -
858 -
859 - static function cookieadmin_auto_configure_cookies(){
860 - global $wpdb;
861 272
862 - $table_name = esc_sql($wpdb->prefix . 'cookieadmin_cookies');
863 - $categorized_cookies = [];
864 - $uncategorized_cookies = [];
865 -
866 - $all_cookies = $wpdb->get_results("SELECT cookie_name, category FROM {$table_name}");
867 -
868 - foreach($all_cookies as $cookie){
869 -
870 - if(!empty($cookie->categorized)){
871 - $categorized_cookies[] = $cookie->cookie_name;
872 - }else{
873 - $uncategorized_cookies[] = $cookie->cookie_name;
273 + if($cookieadmin_consent_purge['status'] === 3){
274 + if(isset($cookieadmin_consent_purge['success'])){
275 + if($cookieadmin_consent_purge['success'] === true){
276 + /* translators: %1$d: number of consent logs deleted */
277 + $msg = sprintf(__('<br><strong>Consent logs deleted successfully:</strong> %1$d logs deleted.', 'cookieadmin'), $count);
278 + }
279 +
280 + if($cookieadmin_consent_purge['success'] === false){
281 + /* translators: %1$d: number of consent logs deleted, %2$s: error message*/
282 + $msg = sprintf(__('<br><strong>Consent logs deletion failed:</strong> %1$d logs deleted. Error : %2$s', 'cookieadmin'), $count, esc_html($cookieadmin_consent_purge['message']));
283 + }
874 284 }
875 285 }
876 286
877 - if(!empty($uncategorized_cookies)){
878 -
879 - $uncategorized_cookies = array_flip($uncategorized_cookies);
880 - $categorized_cookies = array_flip($categorized_cookies);
881 -
882 -
883 - $categorizd_cookies = \CookieAdmin\CookieCategorizer::categorize_cookies($uncategorized_cookies, $categorized_cookies);
884 -
885 - $remove_cookies = $categorizd_cookies['remove_cookies'];
886 - unset($categorizd_cookies['remove_cookies']);
887 - if(!empty($remove_cookies)){
888 - $placeholders = implode(',', array_fill(0, count($remove_cookies), '%s'));
889 - $sql = $wpdb->prepare("DELETE FROM {$table_name} WHERE raw_name IN ({$placeholders})", ...$remove_cookies);
890 - $wpdb->query($sql);
891 - }
892 -
893 - foreach($categorizd_cookies as $cookie_data){
894 -
895 - $wpdb->update(
896 - $table_name,
897 - [ 'cookie_name' => $cookie_data['cookie_name'], 'category' => $cookie_data['category'], 'description' => $cookie_data['description'], 'edited' => 1, 'patterns' => $cookie_data['patterns'] ], // Data to update
898 - [ 'raw_name' => $cookie_data['raw_name'] ], // WHERE
899 - [ '%s', '%s', '%s', '%d', '%s' ], // Format for the data
900 - [ '%s' ] // Format for the WHERE clause
901 - );
902 -
903 - }
904 -
905 - $categorized_cookies = $wpdb->get_results("SELECT id, cookie_name, category, expires, description FROM {$table_name}");
906 -
907 - wp_send_json_success($categorized_cookies);
287 + if(empty($msg)){
288 + return;
908 289 }
909 - wp_send_json(['success' => true,
910 - 'data' => null,
911 - 'message' => __('No cookies to categorize!', 'cookieadmin')]);
912 - }
913 -
914 - static function cookieadmin_edit_cookies(){
915 - global $wpdb;
916 290
917 - $table_name = esc_sql($wpdb->prefix . 'cookieadmin_cookies');
291 + // cookieadmin_logo_svg fn is Internal static SVG. if allowing user input or filters, escape it.
292 + echo '
293 + <div class="notice notice-info is-dismissible" id="cookieadmin-consent-purge-notice">
294 + <p>'.cookieadmin_logo_svg().wp_kses_post($msg). '</p>
295 + </div>';
918 296
919 - if(!empty($_REQUEST['cookie_info'])) {
297 + wp_register_script('cookieadmin-consent-purge-notice', '', ['jquery'], '', true);
298 + wp_enqueue_script('cookieadmin-consent-purge-notice');
299 + wp_add_inline_script('cookieadmin-consent-purge-notice', 'jQuery("#cookieadmin-consent-purge-notice").on("click",
300 + function(e){
920 301
921 - $cookie_info = wp_unslash($_REQUEST['cookie_info']);
302 + let target = jQuery(e.target);
303 + if(!target.hasClass("notice-dismiss")){
304 + return;
305 + }
922 306
923 - $resp = $wpdb->update(
924 - $table_name,
925 - [ 'cookie_name' => sanitize_text_field($cookie_info['name']), 'description' => sanitize_text_field($cookie_info['description']), 'expires' => sanitize_text_field($cookie_info['duration']), 'category' => sanitize_text_field($cookie_info['type']), 'edited' => 1], // Data to update
926 - [ 'id' => sanitize_text_field($cookie_info['id']) ], // WHERE
927 - [ '%s', '%s', '%s', '%s', '%d' ], // Format for the data
928 - [ '%d' ] // Format for the WHERE clause
929 - );
307 + var data;
308 +
309 + // Hide it
310 + jQuery("#cookieadmin-consent-purge-notice").remove();
311 +
312 + // Save this preference
313 + jQuery.post("'.admin_url('admin-ajax.php?action=cookieadmin_ajax_handler&cookieadmin_act=close-notice&notice=cookieadmin-consent-purge-notice').'&cookieadmin_security='.wp_create_nonce('cookieadmin_admin_js_nonce').'", data, function(response) {
314 + });
930 315
931 - }elseif( !empty($_REQUEST['cookie_raw_id']) ){
932 -
933 - $cookie_id = (int) sanitize_text_field(wp_unslash($_REQUEST['cookie_raw_id']));
934 -
935 - $resp = $wpdb->delete( $table_name, ['id' => $cookie_id], [ '%s' ] );
936 - }
316 + });');
937 317
938 - if ($wpdb->last_error || $resp === false) {
939 - //error_log('DB Error: ' . $wpdb->last_error); // Log it
940 - wp_send_json(['success' => true,
941 - 'data' => null,
942 - 'message' => __('Error editing cookie, Error: ', 'cookieadmin') . esc_html($wpdb->last_error)]);
943 - }
944 -
945 - wp_send_json_success(__('Cookie updated!', 'cookieadmin'));
946 -
947 318 }
319 +
320 + static function conflict_notice(){
948 321
949 - static function save_raw_scan_results(array $found_cookies){
322 + $conflicting = [
323 + 'complianz-gdpr/complianz-gdpr.php' => 'Complianz',
324 + 'cookie-law-info/cookie-law-info.php' => 'CookieYes',
325 + 'cookiebot/cookiebot.php' => 'Cookiebot',
326 + 'cookie-notice/cookie-notice.php' => 'Cookie Notice',
327 + 'gdpr-cookie-compliance/gdpr-cookie-compliance.php' => 'GDPR Cookie Compliance',
328 + 'borlabs-cookie/borlabs-cookie.php' => 'Borlabs Cookie',
329 + 'wp-gdpr-compliance/wp-gdpr-compliance.php' => 'Cookie Information',
330 + ];
950 331
951 - global $wpdb;
952 -
953 - $table_name = esc_sql($wpdb->prefix . 'cookieadmin_cookies');
332 + if(!function_exists('is_plugin_active')){
333 + require_once ABSPATH . 'wp-admin/includes/plugin.php';
334 + }
954 335
955 - if (empty($found_cookies)) {
956 - return ['inserted' => 0, 'updated' => 0];
336 + $active = [];
337 + foreach($conflicting as $slug => $name){
338 + if(is_plugin_active($slug)){
339 + $active[] = $name;
340 + }
957 341 }
958 342
959 - // Step 1: Fetch all existing cookie names from our database in one efficient query.
960 - $existing_cookies_in_db = $wpdb->get_col("SELECT cookie_name FROM {$table_name}");
961 - // Use array_flip for very fast 'isset' lookups instead of slow 'in_array' in a loop.
962 - $existing_cookies_lookup = !empty($existing_cookies_in_db) ? array_flip($existing_cookies_in_db) : [];
343 + if(empty($active)){
344 + return;
345 + }
963 346
964 - $results = ['inserted' => 0, 'updated' => 0];
347 + $names = implode(', ', $active);
965 348
966 - // Step 2: Loop through each cookie found by the scanner.
967 - foreach ($found_cookies as $cookie_name => $cookie_data) {
349 + echo '<div class="cookieadmin-conflict-notice">
350 + <span class="dashicons dashicons-warning"></span>
351 + <span>'.sprintf(__('Conflicting plugin(s) detected: <b>%s</b>. Please deactivate them to avoid issues with CookieAdmin.', 'cookieadmin'), esc_html($names)).'</span>
352 + </div>';
353 + }
968 354
969 - // Step 3: Check if the cookie exists in our DB.
970 - if (isset($existing_cookies_lookup[$cookie_name])) {
971 -
972 - $wpdb->update(
973 - $table_name,
974 - [ 'scan_timestamp' => time() ], // Data to update
975 - [ 'cookie_name' => $cookie_name ], // WHERE clause
976 - [ '%s' ], // Format for the data
977 - [ '%s' ] // Format for the WHERE clause
978 - );
979 - $results['updated']++;
980 -
981 - } else {
982 -
983 - // ------ INSERT a NEW cookie ------
984 - $data = [
985 - 'cookie_name' => sanitize_text_field($cookie_name),
986 - 'domain' => sanitize_text_field($cookie_data['domain']),
987 - 'path' => sanitize_text_field($cookie_data['path']),
988 - 'expires' => !empty($cookie_data['expires']) ? $cookie_data['expires'] : null,
989 - 'max_age' => $cookie_data['Max-Age'] ? $cookie_data['Max-Age'] : null,
990 - 'samesite' => !empty($cookie_data['samesite']) ? sanitize_text_field($cookie_data['samesite']) : null,
991 - 'secure' => (int)($cookie_data['secure'] ?? 0),
992 - 'httponly' => (int)($cookie_data['httponly'] ?? 0),
993 - 'raw_name' => sanitize_text_field($cookie_name),
994 - 'scan_timestamp' => time(),
995 - ];
996 -
997 - $formats = ['%s', '%s', '%s', '%s', '%d', '%s', '%d', '%d', '%s'];
998 -
999 - if ($wpdb->insert($table_name, $data, $formats)) {
1000 - $results['inserted']++;
1001 - } else {
1002 - //error_log("CookieAdmin: Error inserting cookie data: " . $wpdb->last_error);
1003 - }
1004 - }
355 + static function close_notices(){
356 +
357 + if(empty($_REQUEST['notice'])){
358 + return;
1005 359 }
1006 - return $results;
360 +
361 + $notice = sanitize_text_field(wp_unslash($_REQUEST['notice']));
362 + $notice = str_replace('-notice', '', $notice);
363 + $notice = str_replace('-', '_', $notice);
364 +
365 + update_option($notice, array());
1007 366 }
1008 367
1009 368 static function plugin_update_notice(){
1010 369 if(defined('SOFTACULOUS_PLUGIN_UPDATE_NOTICE')){
@@ -1021,9 +380,9 @@
1021 380 $msg = sprintf(__('New versions of %1$s %2$s available. Updating ensures better performance, security, and access to the latest features.', 'cookieadmin'), '<b>'.esc_html(implode(', ', $to_update_plugins)).'</b>', (count($to_update_plugins) > 1 ? 'are' : 'is')) . ' <a class="button button-primary" href='.esc_url(admin_url('plugins.php?plugin_status=upgrade')).'>Update Now</a>';
1022 381
1023 382 define('SOFTACULOUS_PLUGIN_UPDATE_NOTICE', true); // To make sure other plugins don't return a Notice
1024 383 echo '<div class="notice notice-info is-dismissible" id="cookieadmin-plugin-update-notice">
1025 - <p>'.$msg. '</p>
384 + <p>'.wp_kses_post($msg). '</p>
1026 385 </div>';
1027 386
1028 387 wp_register_script('cookieadmin-update-notice', '', ['jquery'], '', true);
1029 388 wp_enqueue_script('cookieadmin-update-notice');
@@ -1074,14 +433,14 @@
1074 433 if(cookieadmin_is_pro()){
1075 434 return '';
1076 435 }
1077 436
1078 - $msg = ' <sup style="font-size:11px;"><a href="'.COOKIEADMIN_PRO_URL.'" target="_blank" style="text-decoration:none; color:red;"><b>'.__('Pro', 'cookieadmin').'</b></a></sup>';
437 + $msg = ' <a href="'.esc_url(COOKIEADMIN_PRO_URL).'" target="_blank" class="cookieadmin-pro-badge">'.esc_html__('Pro', 'cookieadmin').'</a>';
1079 438
1080 439 if(!empty($return)){
1081 440 return $msg;
1082 441 }else{
1083 - echo $msg;
442 + echo wp_kses_post($msg);
1084 443 }
1085 444
1086 445 }
1087 446 }