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 +205 -873 1.1.1 → 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,37 +58,68 @@
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');
86 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');
115 +
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');
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 +
87 122 if(!defined('SITEPAD')){
88 123 add_submenu_page('cookieadmin', __('License', 'cookieadmin'), __('License', 'cookieadmin'), $capability, 'cookieadmin-license', '\CookieAdminPro\License::cookieadmin_show_license');
89 124 }
90 125 }else if(!defined('SITEPAD')){
@@ -96,662 +131,59 @@
96 131 // cookieadmin header
97 132 static function header_theme($title = 'Dashboard'){
98 133
99 134 global $cookieadmin_lang, $cookieadmin_error, $cookieadmin_msg;
100 -
135 +
136 + self::conflict_notice();
137 +
101 138 echo '
102 - <div class="cookieadmin-metabox-holder columns-2">
103 - <div class="cookieadmin-postbox-container">
104 - <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">
105 142 <div class="cookieadmin-icon">
106 143 <img class="cookieadmin-logo" src="'.esc_attr(COOKIEADMIN_PLUGIN_URL).'assets/images/cookieadmin-logo.png" alt="CookieAdmin Logo">
107 144 </div>
145 + <span class="cookieadmin-header-version">v'.esc_html(COOKIEADMIN_VERSION).'</span>
108 146 </div>
109 - <h2>'.esc_html($title).'</h2>';
110 -
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 +
111 155 if(!empty($cookieadmin_error)){
112 - 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>';
113 157 }
114 158
115 159 if(!empty($cookieadmin_msg)){
116 - 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>';
117 161 }
162 +
163 + echo '<div class="cookieadmin-postbox-container">';
118 164 }
119 165
120 166 // cookieadmin footer
121 167 static function footer_theme($no_twitter = 0){
122 168 global $cookieadmin_lang, $cookieadmin_error, $cookieadmin_msg;
123 -
169 +
170 + echo '</div>';
171 +
124 172 if(!defined('SITEPAD')){
125 - echo '</div>
126 - <div class="cookieadmin-footer">';
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>';
127 175
128 - if(empty($no_twitter)){
129 -
130 - echo '<br/><div class="cookieadmin-twitter">
131 - <span>'.esc_html__('Share with your followers', 'cookieadmin').'</span><br /><br />
132 - <form method="get" action="https://twitter.com/intent/tweet" id="tweet" onsubmit="return cookieadmin_dotweet(this);">
133 - <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>
134 - <br />
135 - <input type="submit" value="Tweet!" class="cookieadmin-btn cookieadmin-btn-secondary" onsubmit="return false;" id="twitter-btn" style="margin-top:7px;"/>
136 - </form>
137 - </div>
138 - <br/>
139 - <hr>';
140 -
141 - }
142 -
143 - 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>. ';
144 -
145 176 if(defined('COOKIEADMIN_PREMIUM')){
146 - echo 'Or email us at <a href="mailto:[email protected]">[email protected]</a>';
177 + echo ' &middot; <a href="mailto:[email protected]">'.esc_html__('Email support', 'cookieadmin').'</a>';
147 178 }
148 -
149 - echo '</div>
150 - </div>';
151 - }
152 - }
153 -
154 - static function dashboard_page(){
155 -
156 - global $cookieadmin_lang, $cookieadmin_error, $cookieadmin_msg, $cookieadmin_settings;
157 -
158 - self::header_theme(__('Dashboard', 'cookieadmin'));
159 -
160 - $view = get_option('cookieadmin_law', 'cookieadmin_gdpr');
161 -
162 - echo '
163 - <div class="cookieadmin_consent-wrap">
164 - <div class="cookieadmin-admin-row">
165 - <div class="cookieadmin-stats-block cookieadmin-is-block-25">
166 - <div class="cookieadmin-stats-name">'.esc_html__('Consent Banner', 'cookieadmin').'</div>
167 - <div class="cookieadmin-stats-number cookieadmin-green">'.esc_html__('Enabled', 'cookieadmin').'</div>
168 - </div>
169 -
170 - <div class="cookieadmin-stats-block cookieadmin-is-block-25">
171 - <div class="cookieadmin-stats-name">'.esc_html__('Consent Type', 'cookieadmin').'&nbsp;
172 - <div class="cookieadmin-block-link"><a href="'.esc_url(admin_url('admin.php?page=cookieadmin-consent')).'">['.esc_html__('Edit', 'cookieadmin').']</a></div>
173 - </div>
174 - <div class="cookieadmin-stats-number cookieadmin-uppercase">'.(!empty($view) && $view == 'cookieadmin_us' ? esc_html__('US State Laws', 'cookieadmin') : esc_html__('GDPR', 'cookieadmin')).'</div>
175 - </div>
176 -
177 - <div class="cookieadmin-stats-block cookieadmin-is-block-25">
178 - <div class="cookieadmin-stats-name">'.esc_html__('Google Consent Mode v2', 'cookieadmin').'&nbsp;
179 - <div class="cookieadmin-block-link"><a href="'.esc_url(admin_url('admin.php?page=cookieadmin-settings')).'">['.esc_html__('Edit', 'cookieadmin').']</a></div>
180 - </div>
181 - '.(!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>').'
182 - </div>
183 -
184 - <div style="width:25%">
185 -
186 - </div>
187 - </div>
188 - </div>';
189 -
190 - self::footer_theme();
191 - }
192 179
193 - static function settings_page(){
194 -
195 - global $cookieadmin_lang, $cookieadmin_error, $cookieadmin_msg, $cookieadmin_settings;
196 -
197 - self::header_theme(__('Settings', 'cookieadmin'));
198 -
199 - $view = get_option('cookieadmin_law', 'cookieadmin_gdpr');
200 - $policy = cookieadmin_load_policy();
201 - $policy['set'] = $view;
202 - $policy['admin_url'] = admin_url('admin-ajax.php');
203 - $policy['cookieadmin_nonce'] = wp_create_nonce('cookieadmin_admin_js_nonce');
204 -
205 - $cookieadmin_requires_pro = self::is_feature_available(1);
206 -
207 - echo '
208 - <div class="cookieadmin_consent-wrap">
209 - <form action="" method="post" id="setting_submenu">
210 -
211 - <div class="cookieadmin_consent-contents">
212 - <div class="cookieadmin_consent_settings">
213 - <div class="cookieadmin-contents cookieadmin-settings">
214 - <div class="cookieadmin-setting setting-prior">
215 - <label class="cookieadmin-title">'.esc_html__('Load Cookies prior to consent', 'cookieadmin').'</label>
216 - <div class="cookieadmin-setting-contents">
217 -
218 - <input name="cookieadmin_preload[]" type="checkbox" id="necessary_preload" value="necessary" checked disabled>
219 - <label class="cookieadmin-input" for="necessary_preload">'.esc_html__('Necessary', 'cookieadmin').'</label>
220 -
221 - <input name="cookieadmin_preload[]" type="checkbox" id="functional_preload" value="functional" '.(!empty($policy[$view]['preload']) && in_array("functional", $policy[$view]['preload']) ? 'checked' : '').'>
222 - <label class="cookieadmin-input" for="functional_preload">'.esc_html__('Functional', 'cookieadmin').'</label>
223 -
224 - <input name="cookieadmin_preload[]" type="checkbox" id="analytics_preload" value="analytics" '.(!empty($policy[$view]['preload']) && in_array("analytics", $policy[$view]['preload']) ? 'checked' : '').'>
225 - <label class="cookieadmin-input" for="analytics_preload">'.esc_html__('Analytical', 'cookieadmin').'</label>
226 -
227 - <input name="cookieadmin_preload[]" type="checkbox" id="marketing_preload" value="marketing" '.(!empty($policy[$view]['preload']) && in_array("marketing", $policy[$view]['preload']) ? 'checked' : '').'>
228 - <label for="marketing_preload">'.esc_html__('Advertisement', 'cookieadmin').'</label>
229 - </div>
230 - </div>
231 -
232 - <div class="cookieadmin-setting setting-reload">
233 - <label class="cookieadmin-title" for="cookieadmin_reload_on_consent">'.esc_html__('Reload page on consent', 'cookieadmin').'</label>
234 - <div class="cookieadmin-setting-contents">
235 - <label class="cookieadmin_toggle">
236 - <input name="cookieadmin_reload_on_consent" type="checkbox" id="cookieadmin_reload_on_consent" '.(!empty($policy[$view]['reload_on_consent']) ? 'checked' : '').'>
237 - <span class="cookieadmin_slider"></span>
238 - </label>
239 - </div>
240 - </div>
241 -
242 - <div class="coookieadmin-contents cookieadmin-settings" cookieadmin-pro-only="1">
243 - <div class="cookieadmin-setting">
244 - <label class="cookieadmin-title" for="cookieadmin_google_consent_mode_v2">'.esc_html__('Google Consent Mode v2', 'cookieadmin').wp_kses_post($cookieadmin_requires_pro).'</label>
245 - <div class="cookieadmin-setting-contents">
246 - <label class="cookieadmin_toggle">
247 - <input name="cookieadmin_google_consent_mode_v2" type="checkbox" id="cookieadmin_google_consent_mode_v2" '.(!empty($cookieadmin_settings['google_consent_mode_v2']) && cookieadmin_is_pro() ? 'checked' : '').'>
248 - <span class="cookieadmin_slider"></span>
249 - </label>
250 - </div>
251 - </div>
252 -
253 - <div class="cookieadmin-setting setting-poweredby">
254 - <label class="cookieadmin-title" for="cookieadmin_hide_powered_by">'.esc_html__('Hide Powered by Link', 'cookieadmin').wp_kses_post($cookieadmin_requires_pro).'</label>
255 - <div class="cookieadmin-setting-contents">
256 - <label class="cookieadmin_toggle">
257 - <input name="cookieadmin_hide_powered_by" type="checkbox" id="cookieadmin_hide_powered_by" '.(!empty($cookieadmin_settings['hide_powered_by']) && cookieadmin_is_pro() ? 'checked' : '').'>
258 - <span class="cookieadmin_slider"></span>
259 - </label>
260 - </div>
261 - </div>
262 -
263 - <div class="cookieadmin-setting setting-reconsent">
264 - <label class="cookieadmin-title" for="cookieadmin_hide_reconsent">'.esc_html__('Hide Re-consent Icon', 'cookieadmin').wp_kses_post($cookieadmin_requires_pro).'</label>
265 - <div class="cookieadmin-setting-contents">
266 - <label class="cookieadmin_toggle">
267 - <input name="cookieadmin_hide_reconsent" type="checkbox" id="cookieadmin_hide_reconsent" '.(!empty($cookieadmin_settings['hide_reconsent']) && cookieadmin_is_pro() ? 'checked' : '').'>
268 - <span class="cookieadmin_slider"></span>
269 - </label>
270 - </div>
271 - </div>
272 - </div>
273 -
274 - <div class="cookieadmin-setting">
275 - <div class="cookieadmin-setting-contents">
276 - <span><input type="submit" name="cookieadmin_save_settings" class="cookieadmin-btn cookieadmin-btn-primary action" value="'.esc_html__('Save Settings', 'cookieadmin').'"></span>
277 - </div>
278 - </div>
279 - </div>
280 - </div>';
281 -
282 - wp_nonce_field('cookieadmin_admin_nonce', 'cookieadmin_security');
283 - echo '
284 - <br/>
285 - <br/>
286 - </div>
287 - </form>
288 - </div>';
289 -
290 - self::footer_theme();
291 - }
292 -
293 - static function scan_cookies_page(){
294 - global $cookieadmin_lang, $cookieadmin_error, $cookieadmin_msg, $wpdb;
295 -
296 - self::header_theme(__('Scan Cookies', 'cookieadmin'));
297 -
298 - $table_name = esc_sql($wpdb->prefix . 'cookieadmin_cookies');
299 - $scanned = $wpdb->get_results("SELECT * FROM {$table_name} limit 1");
300 -
301 - $cookies_scanned = '';
302 - $categorized = [];
303 - $categorized_cookies = [];
304 -
305 - if(!empty($scanned)){
306 -
307 - $is_categorized = $wpdb->get_var("SELECT * FROM {$table_name} WHERE category IS NOT NULL LIMIT 1");
308 -
309 - $scanned_cookies = $wpdb->get_results("SELECT * FROM {$table_name}");
310 -
311 - if(empty($is_categorized)){
312 -
313 - foreach($scanned_cookies as $row => $data){
314 - $exp = 'Session';
315 - $data->expires = strtotime($data->expires);
316 - if(!empty($data->expires) && ($data->expires > 0)){
317 - $exp = round(($data->expires - time()) / 86400);
318 - if($exp < 1 && !empty($data->max_age)){
319 - $exp = $data->max_age . ' '.__('days', 'cookieadmin');
320 - }
321 - }
322 -
323 - $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>';
324 -
325 - }
326 - }
327 - else{
328 -
329 - foreach($scanned_cookies as $row => $data){
330 -
331 - $exp = 'Session';
332 - if (!empty($data->expires) && is_string($data->expires)) {
333 - $timestamp = strtotime($data->expires);
334 - if ($timestamp && $timestamp > 0) {
335 - $exp = round(($timestamp - time()) / 86400);
336 - if ($exp < 1 && !empty($data->max_age)) {
337 - $exp = $data->max_age;
338 - }
339 - $exp .= ' '.__('days', 'cookieadmin');
340 - }
341 - }
342 -
343 - if(empty($data->category)){
344 - $data->category = 'Unknown';
345 - }
346 -
347 - if(!isset($categorized[$data->category])){
348 - $categorized[$data->category] = '';
349 - }
350 -
351 - if(empty($data->description)){
352 - $data->description = 'Not Available';
353 - }
354 -
355 - $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>';
356 -
357 - $categorized_cookies[$data->id]['id'] = $data->id;
358 - $categorized_cookies[$data->id]['cookie_name'] = $data->cookie_name;
359 - $categorized_cookies[$data->id]['description'] = $data->description;
360 - $categorized_cookies[$data->id]['category'] = $data->category;
361 - $categorized_cookies[$data->id]['expires'] = $exp;
362 -
363 - }
364 -
365 - $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>';
366 - }
367 - }else{
368 -
369 - $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>';
370 -
180 + echo '</div>';
371 181 }
372 -
373 - wp_register_script('cookieadmin_categorized_cookies', '', array('jquery'), COOKIEADMIN_VERSION, true);
374 - wp_enqueue_script('cookieadmin_categorized_cookies');
375 - wp_localize_script('cookieadmin_categorized_cookies', 'categorized_cookies', $categorized_cookies);
376 -
377 - echo '
378 - <div class="cookieadmin_consent-wrap">
379 - <form action="" method="post">
380 - <div class="cookieadmin_consent-contents">
381 - <div class="cookieadmin_consent_settings">
382 - <div class="cookieadmin-setting cookieadmin-manager-cookie-scan">
383 - <label class="cookieadmin-title">'.esc_html__('Scanned Cookies', 'cookieadmin').'</label>
384 - <div class="cookieadmin-setting-contents cookieadmin-cookie-scan">
385 - <input type="button" class="cookieadmin-btn cookieadmin-btn-primary cookieadmin-scan" value="Scan Cookies">
386 - </div>
387 - <div class="cookieadmin-manager-result">
388 - <table class="cookieadmin-table cookieadmin-cookie-categorized">
389 - <thead>
390 - <tr>
391 - <th width="30%">'.esc_html__('Name', 'cookieadmin').'</th>
392 - <th width="50%">'.esc_html__('Description', 'cookieadmin').'</th>
393 - <th width="10%">'.esc_html__('Expiry', 'cookieadmin').'</th>
394 - <th width="10%">'.esc_html__('Action', 'cookieadmin').'</th>
395 - </tr>
396 - </thead>
397 - <tbody id="necessary_tbody">
398 - <tr><td colspan=4>'.esc_html__('Necessary Cookies', 'cookieadmin').'</td></tr>
399 - '.( !empty($categorized['Necessary']) ? wp_kses_post($categorized['Necessary']) : '<tr class="cookieadmin-empty-row"><td colspan=4>'.esc_html__('No Cookies Found!', 'cookieadmin').'</td></tr>' ).'
400 - </tbody>
401 - <tbody id="functional_tbody">
402 - <tr><td colspan=4>'.esc_html__('Functional Cookies', 'cookieadmin').'</td></tr>
403 - '.( !empty($categorized['Functional']) ? wp_kses_post($categorized['Functional']) : '<tr class="cookieadmin-empty-row"><td colspan=4>'.esc_html__('No Cookies Found!', 'cookieadmin').'</td></tr>' ).'
404 - </tbody>
405 - <tbody id="analytics_tbody">
406 - <tr><td colspan=4>'.esc_html__('Analytical Cookies', 'cookieadmin').'</td></tr>
407 - '.( !empty($categorized['Analytics']) ? wp_kses_post($categorized['Analytics']) : '<tr class="cookieadmin-empty-row"><td colspan=4>'.esc_html__('No Cookies Found!', 'cookieadmin').'</td></tr>' ).'
408 - </tbody>
409 - <tbody id="marketing_tbody">
410 - <tr><td colspan=4>'.esc_html__('Marketing Cookies', 'cookieadmin').'</td></tr>
411 - '.( !empty($categorized['Marketing']) ? wp_kses_post($categorized['Marketing']) : '<tr class="cookieadmin-empty-row"><td colspan=4>'.esc_html__('No Cookies Found!', 'cookieadmin').'</td></tr>' ).'
412 - </tbody>
413 - <tbody id="unknown_tbody">
414 - <tr><td colspan=4>'.esc_html__('Unknown Cookies', 'cookieadmin').'</td></tr>
415 - '.( !empty($categorized['Unknown']) ? wp_kses_post($categorized['Unknown']) : '<tr class="cookieadmin-empty-row"><td colspan=4>'.esc_html__('No Cookies Found!', 'cookieadmin').'</td></tr>' ).'
416 - </tbody>
417 - </table>
418 - </div>
419 - </div>
420 - </div>
421 - </div>';
422 -
423 - wp_nonce_field('cookieadmin_admin_nonce', 'cookieadmin_security');
424 -
425 - echo '
426 - </div>
427 - </form>
428 - <br/>';
429 -
430 - self::footer_theme();
431 -
432 - echo '
433 - <!-- Modal Overlay -->
434 - <div class="cookieadmin_modal-overlay" id="edit-cookie-modal" hidden>
435 - <div class="cookieadmin_modal-container">
436 - <div class="cookieadmin_modal-header">
437 - <h2>'.esc_html__('Edit Cookie', 'cookieadmin').'</h2>
438 - <button class="cookieadmin_dialog_modal_close_btn">&times;</button>
439 - </div>
440 182
441 - <div class="cookieadmin_modal-body">
442 - <div class="cookieadmin_form-group">
443 - <label for="cookieadmin-dialog-cookie-category">'.esc_html__('Category', 'cookieadmin').'</label>
444 - <select id="cookieadmin-dialog-cookie-category">
445 - <option value="Unknown">'.esc_html__('Unknown', 'cookieadmin').'</option>
446 - <option value="Necessary">'.esc_html__('Necessary', 'cookieadmin').'</option>
447 - <option value="Functional">'.esc_html__('Functional', 'cookieadmin').'</option>
448 - <option value="Analytics">'.esc_html__('Analytical', 'cookieadmin').'</option>
449 - <option value="Marketing">'.esc_html__('Marketing', 'cookieadmin').'</option>
450 - </select>
451 - </div>
452 -
453 - <div class="cookieadmin_form-group">
454 - <label for="cookie_id">'.esc_html__('Cookie Name/ID', 'cookieadmin').'</label>
455 - <input type="text" id="cookieadmin-dialog-cookie-name" Placeholder="'.esc_html__('Enter Cookie Name or id', 'cookieadmin').'">
456 - </div>
457 -
458 - <div class="cookieadmin_form-group">
459 - <label for="description">'.esc_html__('Description', 'cookieadmin').'</label>
460 - <textarea id="cookieadmin-dialog-cookie-desc" Placeholder="'.esc_html__('Enter Cookie description here', 'cookieadmin').'"></textarea>
461 - </div>
462 -
463 - <div class="cookieadmin_form-group">
464 - <label for="duration">'.esc_html__('Duration', 'cookieadmin').'</label>
465 - <input type="text" id="cookieadmin-dialog-cookie-duration" Placeholder="'.esc_html__('30 days', 'cookieadmin').'">
466 - </div>
467 -
468 - <div class="cookieadmin_modal-footer" style="background-color:#ffffff;">
469 - <button class="cookieadmin-btn cookieadmin-btn-primary" id="cookieadmin_dialog_save_btn" form="edit-cookie-form">'.esc_html__('Save', 'cookieadmin').'</button>
470 - </div>
471 - </div>
472 - </div>
473 - </div>';
183 + echo '</div>';
474 184 }
475 185
476 - static function consent_form_page(){
477 -
478 - global $cookieadmin_lang, $cookieadmin_error, $cookieadmin_msg;
479 -
480 - self::header_theme(__('Consent Form', 'cookieadmin'));
481 -
482 - $view = get_option('cookieadmin_law', 'cookieadmin_gdpr');
483 - $policy = cookieadmin_load_policy();
484 -
485 - $templates = implode("", cookieadmin_load_consent_template($policy[$view], $view));
486 -
487 - $policy['set'] = $view;
488 - $policy['admin_url'] = admin_url('admin-ajax.php');
489 - $policy['cookieadmin_nonce'] = wp_create_nonce('cookieadmin_admin_js_nonce');
490 -
491 - $cookieadmin_requires_pro = self::is_feature_available(1);
492 -
493 - echo '
494 - <div class="cookieadmin_consent-wrap">
495 - <form action="" method="post" id="consent_submenu">
496 -
497 - <div class="cookieadmin_consent-contents">
498 - <div class="cookieadmin_consent_settings">
499 - <div class="cookieadmin-contents cookieadmin_consent">
500 -
501 - <div class="cookieadmin-setting">
502 - <label class="cookieadmin-title" for="cookieadmin_consent_type">'.esc_html__('Consent Type', 'cookieadmin').'</label>
503 - <div class="cookieadmin-setting-contents">
504 - <select name="cookieadmin_consent_type" id="cookieadmin_consent_type">
505 - <option name="cookieadmin_gdpr" id="cookieadmin_gdpr" value="cookieadmin_gdpr">'.esc_html__('GDPR', 'cookieadmin').'</option>
506 - <option name="cookieadmin_us" id="cookieadmin_us" value="cookieadmin_us">'.esc_html__('US State Laws', 'cookieadmin').'</option>
507 - </select>
508 - </div>
509 - </div>
510 -
511 - <div class="cookieadmin-setting cookieadmin_consent-expiry">
512 - <label class="cookieadmin-title" for="cookieadmin_consent_expiry">'.esc_html__('Consent Expiry', 'cookieadmin').'</label>
513 - <div class="cookieadmin-setting-contents">
514 - <input type="number" name="cookieadmin_days" id="cookieadmin_consent_expiry" style="max-width:70px;" value="'.esc_attr($policy[$view]['cookieadmin_days']).'">
515 - </div>
516 - </div>
517 -
518 - <div class="cookieadmin-setting consent-layout">
519 - <label class="cookieadmin-title">'.esc_html__('Notice Type', 'cookieadmin').'</label>
520 - <div class="cookieadmin-setting-contents">
521 - <input name="cookieadmin_layout" type="radio" id="cookieadmin_layout_box" value="box">
522 - <label class="cookieadmin-input" for="cookieadmin_layout_box">'.esc_html__('Box', 'cookieadmin').'</label>
523 - <input name="cookieadmin_layout" type="radio" id="cookieadmin_layout_footer" value="footer">
524 - <label class="cookieadmin-input" for="cookieadmin_layout_footer">'.esc_html__('Footer', 'cookieadmin').'</label>
525 - <input name="cookieadmin_layout" type="radio" id="cookieadmin_layout_popup" value="popup">
526 - <label for="cookieadmin_layout_popup">'.esc_html__('Popup', 'cookieadmin').'</label>
527 - </div>
528 - </div>
529 -
530 - <div class="cookieadmin-setting consent-position">
531 - <label class="cookieadmin-title">'.esc_html__('Notice Position', 'cookieadmin').'</label>
532 - <div class="cookieadmin-setting-contents">
533 - <input class="cookieadmin_box_layout" id="cookieadmin_position_bottom_left" name="cookieadmin_position" type="radio" value="bottom_left" checked>
534 - <label class="cookieadmin_box_layout cookieadmin-input" for="cookieadmin_position_bottom_left">'.esc_html__('Bottom Left', 'cookieadmin').'</label>
535 - <input class="cookieadmin_box_layout" id="cookieadmin_position_bottom_right" name="cookieadmin_position" type="radio" value="bottom_right">
536 - <label class="cookieadmin_box_layout cookieadmin-input" for="cookieadmin_position_bottom_right">'.esc_html__('Bottom Right', 'cookieadmin').'</label>
537 - <input class="cookieadmin_box_layout" id="cookieadmin_position_top_left" name="cookieadmin_position" type="radio" value="top_left">
538 - <label class="cookieadmin_box_layout cookieadmin-input" for="cookieadmin_position_top_left">'.esc_html__('Top Left', 'cookieadmin').'</label>
539 - <input class="cookieadmin_box_layout" id="cookieadmin_position_top_right" name="cookieadmin_position" type="radio" value="top_right">
540 - <label class="cookieadmin_box_layout cookieadmin-input" for="cookieadmin_position_top_right">'.esc_html__('Top Right', 'cookieadmin').'</label>
541 - <input class="cookieadmin_foter_layout" id="cookieadmin_position_top" name="cookieadmin_position" type="radio" value="top" style="display:none;">
542 - <label class="cookieadmin_foter_layout cookieadmin-input" for="cookieadmin_position_top" style="display:none;">'.esc_html__('Top', 'cookieadmin').'</label>
543 - <input class="cookieadmin_foter_layout" id="cookieadmin_position_bottom" name="cookieadmin_position" type="radio" value="bottom" style="display:none;">
544 - <label class="cookieadmin_foter_layout" for="cookieadmin_position_bottom" style="display:none;">'.esc_html__('Bottom', 'cookieadmin').'</label>
545 - </div>
546 - </div>
547 -
548 - <div class="cookieadmin-setting consent-modal-layout">
549 - <label class="cookieadmin-title">'.esc_html__('Preference Position', 'cookieadmin').'</label>
550 - <div class="cookieadmin-setting-contents">
551 - <input id="cookieadmin_modal_center" name="cookieadmin_modal" type="radio" value="center" checked>
552 - <label class="cookieadmin-input" for="cookieadmin_modal_center">'.esc_html__('Center', 'cookieadmin').'</label>
553 - <input id="cookieadmin_modal_side" name="cookieadmin_modal" type="radio" value="side">
554 - <label class="cookieadmin-input" for="cookieadmin_modal_side">'.esc_html__('Side', 'cookieadmin').'</label>
555 - <input id="cookieadmin_modal_down" name="cookieadmin_modal" type="radio" value="down">
556 - <label for="cookieadmin_modal_down">'.esc_html__('Draw down', 'cookieadmin').'</label>
557 - </div>
558 - </div>
559 -
560 - <div class="cookieadmin-setting consent-notice">
561 - <label class="cookieadmin-title">'.esc_html__('Notice Section', 'cookieadmin').'</label>
562 - <div class="cookieadmin-setting-contents cookieadmin-vertical">
563 - <label for="cookieadmin_notice_title_layout">'.esc_html__('Title', 'cookieadmin').'</label>
564 - <input type="text" id="cookieadmin_notice_title_layout" name="cookieadmin_notice_title" style="width: 270px;" value="'.esc_attr($policy[$view]['cookieadmin_notice_title']).'">
565 - <label for="cookieadmin_notice_layout" style="margin-top:20px;">'.esc_html__('Notice', 'cookieadmin').'</label>
566 - <textarea rows="5vh" cols="100vw" id="cookieadmin_notice_layout" name="cookieadmin_notice">'.esc_html($policy[$view]['cookieadmin_notice']).'</textarea>
567 - <div class="cookieadmin-setting-colors cookieadmin-setting-contents cookieadmin-horizontal">
568 - <div class="cookieadmin-setting-color cookieadmin-vertical" >
569 - <label for="cookieadmin_notice_title_color">'.esc_html__('Title', 'cookieadmin').'</label>
570 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
571 - <input type="color" id="cookieadmin_notice_title_color_box" name="cookieadmin_notice_title_color_box" value="'.esc_attr($policy[$view]['cookieadmin_notice_title_color']).'">
572 - <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">
573 - </div>
574 - </div>
575 - <div class="cookieadmin-setting-color cookieadmin-vertical">
576 - <label for="cookieadmin_notice_color">'.esc_html__('Content', 'cookieadmin').'</label>
577 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
578 - <input type="color" id="cookieadmin_notice_color_box" name="cookieadmin_notice_color_box" value="'.esc_attr($policy[$view]['cookieadmin_notice_color']).'">
579 - <input type="text" id="cookieadmin_notice_color" name="cookieadmin_notice_color" value="'.esc_attr($policy[$view]['cookieadmin_notice_color']).'" class="cookieadmin-color-input">
580 - </div>
581 - </div>
582 - <div class="cookieadmin-setting-color cookieadmin-vertical">
583 - <label for="cookieadmin_consent_inside_bg_color">'.esc_html__('Background', 'cookieadmin').'</label>
584 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
585 - <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']).'">
586 - <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">
587 - </div>
588 - </div>
589 - <div class="cookieadmin-setting-color cookieadmin-vertical">
590 - <label for="cookieadmin_consent_inside_border_color">'.esc_html__('Border', 'cookieadmin').'</label>
591 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
592 - <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']).'">
593 - <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">
594 - </div>
595 - </div>
596 - </div>
597 - </div>
598 - </div>
599 - </div>
600 - <div class="cookieadmin-setting">
601 - <label class="cookieadmin-title">'.esc_html__('Buttons', 'cookieadmin').'</label>
602 - <div class="cookieadmin-buttons cookieadmin-setting-contents cookieadmin-horizontal">
603 - <div class="cookieadmin-button cookieadmin-vertical">
604 - <input id="cookieadmin_customize_btn" name="cookieadmin_customize_btn" style="max-width:130px;text-align:center;" value="'.esc_attr($policy[$view]['cookieadmin_customize_btn']).'">
605 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
606 - <input type="color" id="cookieadmin_customize_btn_color_box" name="cookieadmin_customize_btn_color_box" value="'.esc_attr($policy[$view]['cookieadmin_customize_btn_color']).'">
607 - <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">
608 - </div>
609 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
610 - <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']).'">
611 - <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">
612 - </div>
613 - </div>
614 - <div class="cookieadmin-button cookieadmin-vertical">
615 - <input id="cookieadmin_reject_btn" name="cookieadmin_reject_btn" style="max-width:130px;text-align:center;" value="'.esc_attr($policy[$view]['cookieadmin_reject_btn']).'">
616 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
617 - <input type="color" id="cookieadmin_reject_btn_color_box" name="cookieadmin_reject_btn_color_box" value="'.esc_attr($policy[$view]['cookieadmin_reject_btn_color']).'">
618 - <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">
619 - </div>
620 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
621 - <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']).'">
622 - <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">
623 - </div>
624 - </div>
625 - <div class="cookieadmin-button cookieadmin-vertical">
626 - <input id="cookieadmin_accept_btn" name="cookieadmin_accept_btn" style="max-width:130px;text-align:center;" value="'.esc_attr($policy[$view]['cookieadmin_accept_btn']).'">
627 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
628 - <input type="color" id="cookieadmin_accept_btn_color_box" name="cookieadmin_accept_btn_color_box" value="'.esc_attr($policy[$view]['cookieadmin_accept_btn_color']).'">
629 - <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">
630 - </div>
631 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
632 - <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']).'">
633 - <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">
634 - </div>
635 - </div>
636 - <div class="cookieadmin-button cookieadmin-vertical">
637 - <input id="cookieadmin_save_btn" name="cookieadmin_save_btn" style="max-width:130px;text-align:center;" value="'.esc_attr($policy[$view]['cookieadmin_save_btn']).'">
638 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
639 - <input type="color" id="cookieadmin_save_btn_color_box" name="cookieadmin_save_btn_color_box" value="'.esc_attr($policy[$view]['cookieadmin_save_btn_color']).'">
640 - <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">
641 - </div>
642 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
643 - <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']).'">
644 - <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">
645 - </div>
646 - </div>
647 - </div>
648 - </div>
649 - <div class="cookieadmin-setting consent-preference">
650 - <label class="cookieadmin-title">'.esc_html__('Preference Section', 'cookieadmin').'</label>
651 - <div class="cookieadmin-setting-contents cookieadmin-vertical">
652 - <label for="cookieadmin_preference_title_layout">'.esc_html__('Title', 'cookieadmin').'</label>
653 - <input type="text" id="cookieadmin_preference_title_layout" name="cookieadmin_preference_title" style="width: 270px;" value="'.esc_html($policy[$view]['cookieadmin_preference_title']).'">
654 - <label for="cookieadmin_preference_layout" style="margin-top:20px;">'.esc_html__('Privacy Notice', 'cookieadmin').'</label>
655 - <textarea rows="8vh" cols="100vw" id="cookieadmin_preference_layout" name="cookieadmin_preference">'.esc_html($policy[$view]['cookieadmin_preference']).'</textarea>
656 - <div class="cookieadmin-setting-colors cookieadmin-setting-contents cookieadmin-setting-color cookieadmin-horizontal">
657 - <div class="cookieadmin-setting-color cookieadmin-vertical">
658 - <label for="cookieadmin_preference_title_color">'.esc_html__('Title', 'cookieadmin').'</label>
659 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
660 - <input type="color" id="cookieadmin_preference_title_color_box" name="cookieadmin_preference_title_color_box" value="'.esc_attr($policy[$view]['cookieadmin_preference_title_color']).'">
661 - <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">
662 - </div>
663 - </div>
664 - <div class="cookieadmin-setting-color cookieadmin-vertical">
665 - <label for="cookieadmin_details_wrapper_color">'.esc_html__('Content', 'cookieadmin').'</label>
666 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
667 - <input type="color" id="cookieadmin_details_wrapper_color_box" name="cookieadmin_details_wrapper_color_box" value="'.esc_attr($policy[$view]['cookieadmin_details_wrapper_color']).'">
668 - <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">
669 - </div>
670 - </div>
671 - <div class="cookieadmin-setting-color cookieadmin-vertical">
672 - <label for="cookieadmin_cookie_modal_bg_color">'.esc_html__('Background', 'cookieadmin').'</label>
673 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
674 - <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']).'">
675 - <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">
676 - </div>
677 - </div>
678 - <div class="cookieadmin-setting-color cookieadmin-vertical">
679 - <label for="cookieadmin_cookie_modal_border_color">'.esc_html__('Border', 'cookieadmin').'</label>
680 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
681 - <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']).'">
682 - <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">
683 - </div>
684 - </div>
685 - </div>
686 -
687 - <div class="cookieadmin-setting-colors cookieadmin-setting-contents cookieadmin-setting-color cookieadmin-horizontal" cookieadmin-pro-only="1">
688 - <div class="cookieadmin-setting-color cookieadmin-vertical">
689 - <label for="cookieadmin_links_color">'.esc_html__('Links', 'cookieadmin').wp_kses_post($cookieadmin_requires_pro).'</label>
690 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
691 - <input type="color" id="cookieadmin_links_color_box" name="cookieadmin_links_color_box" value="'.esc_attr($policy[$view]['cookieadmin_links_color']).'">
692 - <input type="text" id="cookieadmin_links_color" name="cookieadmin_links_color" value="'.esc_attr($policy[$view]['cookieadmin_links_color']).'" class="cookieadmin-color-input">
693 - </div>
694 - </div>
695 - <div class="cookieadmin-setting-color cookieadmin-vertical">
696 - <label for="cookieadmin_slider_on_bg_color">'.esc_html__('Button Switch On', 'cookieadmin').wp_kses_post($cookieadmin_requires_pro).'</label>
697 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
698 - <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']).'">
699 - <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">
700 - </div>
701 - </div>
702 - <div class="cookieadmin-setting-color cookieadmin-vertical">
703 - <label for="cookieadmin_slider_off_bg_color">'.esc_html__('Button Switch Off', 'cookieadmin').wp_kses_post($cookieadmin_requires_pro).'</label>
704 - <div class="cookieadmin-color-holder cookieadmin-horizontal">
705 - <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']).'">
706 - <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">
707 - </div>
708 - </div>
709 - </div>
710 -
711 - <span style="margin-top:30px;">
712 -
713 - <input type="submit" name="cookieadmin_save_settings" class="cookieadmin-btn cookieadmin-btn-primary action" value="'.esc_html__('Save Settings', 'cookieadmin').'">
714 -
715 - <input type="button" id="cookieadmin_show_preview" name="cookieadmin_show_preview" class="cookieadmin-btn cookieadmin-btn-secondary" value="'.esc_html__('Show Preview', 'cookieadmin').'">
716 -
717 - </span>
718 -
719 - </div>
720 - </div>
721 - </div>
722 - </div>
723 - ';
724 - wp_nonce_field('cookieadmin_admin_nonce', 'cookieadmin_security');
725 - echo '<br/>
726 - <br/>
727 - </form>
728 - </div>';
729 - self::footer_theme();
730 -
731 - $allowed_tags = cookieadmin_kses_allowed_html();
732 - echo wp_kses($templates, $allowed_tags);
733 - }
734 -
735 - static function cookieadmin_scan_cookies($url = ''){
736 - global $wpdb;
737 -
738 - $urls = array(get_site_url());
739 -
740 - if(cookieadmin_is_pro()){
741 - $cookieData = apply_filters('cookieadmin_pro_scan_cookies', $urls);
742 - }else{
743 - $cookieData = \CookieAdmin\Scanner::start_scan($urls);
744 - }
745 - // cookieadmin_r_print($cookieData);
746 -
747 - if(!empty($cookieData) && self::save_raw_scan_results($cookieData)){
748 - self::cookieadmin_auto_configure_cookies();
749 - }
750 -
751 - wp_send_json_error(array('message' =>__('No cookies found!', 'cookieadmin')));
752 - }
753 -
754 186 static function cookieadmin_table_exists($table_name) {
755 187 global $wpdb;
756 188
757 189 $query = $wpdb->prepare("SHOW TABLES LIKE %s", $table_name);
@@ -758,280 +190,180 @@
758 190
759 191 return $wpdb->get_var($query) === $table_name;
760 192 }
761 193
762 - static function cookieadmin_save_settings(){
194 + static function scan_notice(){
763 195
764 - global $cookieadmin_lang, $cookieadmin_error, $cookieadmin_msg, $cookieadmin_settings, $cookieadmin_policies;
765 -
766 - // 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'])) : '';
767 198
768 - check_admin_referer('cookieadmin_admin_nonce', 'cookieadmin_security');
769 -
770 - if(!current_user_can('administrator')){
771 - 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;
772 201 }
202 +
203 + $msg = '';
773 204
774 - $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 + }
775 211
776 - $cookieadmin_consent_type = isset( $_REQUEST['cookieadmin_consent_type'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['cookieadmin_consent_type'] ) ) : '';
777 -
778 - if(!empty($cookieadmin_consent_type)){
779 -
780 - $laws = array('cookieadmin_gdpr' => '', 'cookieadmin_us' => '');
781 -
782 - $law = array_key_exists($cookieadmin_consent_type, $laws) ? $cookieadmin_consent_type : 'cookieadmin_gdpr';
783 -
784 - if(empty($cookieadmin_error)){
785 - update_option('cookieadmin_law', $law);
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')));
786 217 }
787 - }
788 -
789 - if(isset($_REQUEST['page']) && $_REQUEST['page'] === 'cookieadmin-settings'){
790 218
791 - // Save cookieadmin_settings only on settings page
792 - $cookieadmin_settings['google_consent_mode_v2'] = (isset( $_REQUEST['cookieadmin_google_consent_mode_v2'] ) ? 1 : 0);
793 - $cookieadmin_settings['hide_powered_by'] = (isset( $_REQUEST['cookieadmin_hide_powered_by'] ) ? 1 : 0);
794 - $cookieadmin_settings['hide_reconsent'] = (isset( $_REQUEST['cookieadmin_hide_reconsent'] ) ? 1 : 0);
795 -
796 - if(empty($cookieadmin_error)){
797 - update_option('cookieadmin_settings', $cookieadmin_settings);
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'] : ''));
798 222 }
799 -
800 - // get the consent type from option table, if not saved then return default as 'gdpr'
801 - $law = get_option('cookieadmin_law', 'cookieadmin_gdpr');
802 -
803 - //set preload and consent field for "cookieadmin-settings" page
804 - $setting['preload'] = !empty($_REQUEST['cookieadmin_preload']) ? array_map('sanitize_text_field', wp_unslash($_REQUEST['cookieadmin_preload'])) : [];
805 - $setting['reload_on_consent'] = !empty($_REQUEST['cookieadmin_reload_on_consent']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_reload_on_consent'])) : '';
806 - }else{
807 - // set saved or default preload and consent field for for "cookieadmin-consent" page
808 - $setting['preload'] = !empty($policy[$law]['preload']) ? $policy[$law]['preload'] : [];
809 - $setting['reload_on_consent'] = !empty($policy[$law]['reload_on_consent']) ? $policy[$law]['reload_on_consent'] : '';
810 223 }
811 -
812 - $setting['cookieadmin_geo_tgt'] = (!empty($_REQUEST['cookieadmin_geo_tgt'])) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_geo_tgt'])) : 'www';
813 224
814 - $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');
225 + if(empty($msg)){
226 + return;
227 + }
815 228
816 - $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');
817 -
818 - $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');
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>';
819 234
820 - if($setting['cookieadmin_layout'] == 'popup'){
821 - $setting['cookieadmin_modal'] = 'center';
822 - unset($setting['cookieadmin_position']);
823 - }
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;
824 246
825 - $setting['cookieadmin_notice_title'] = !empty($_REQUEST['cookieadmin_notice_title']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_notice_title'])) : $policy[$law]['cookieadmin_notice_title'];
826 - $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');
827 -
828 - $setting['cookieadmin_notice'] = !empty($_REQUEST['cookieadmin_notice']) ? wp_kses(wp_unslash($_REQUEST['cookieadmin_notice']), cookieadmin_kses_allowed_html()) : $policy[$law]['cookieadmin_notice'];
829 - $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');
830 -
831 - $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');
832 - $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');
833 -
834 - $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');
835 - $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');
836 - $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');
837 -
838 - $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');
839 - $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');
840 - $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');
247 + // Hide it
248 + jQuery("#cookieadmin-auto-scan-notice").remove();
841 249
842 - $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');
843 - $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');
844 - $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');
845 -
846 - $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');
847 - $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');
848 - $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');
849 -
850 - $setting['cookieadmin_preference_title'] = !empty($_REQUEST['cookieadmin_preference_title']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_preference_title'])) : $policy[$law]['cookieadmin_preference_title'];
851 - $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');
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 + });');
852 255
853 - $setting['cookieadmin_preference'] = !empty($_REQUEST['cookieadmin_preference']) ? wp_kses(wp_unslash($_REQUEST['cookieadmin_preference']), cookieadmin_kses_allowed_html()) : $policy[$law]['cookieadmin_preference'];
854 - $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');
256 + }
257 + static function consent_log_purge_notice(){
855 258
856 - $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');
857 - $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');
858 -
859 - $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');
860 - $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');
861 - $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');
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'];
862 267
863 - $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');
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);
271 + }
864 272
865 - $policy[$law] = $setting;
866 -
867 - // Check for certain fields to be saved only if their values is not the same as default
868 - $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');
869 -
870 - foreach($cookieadmin_check_changes as $c_field){
871 - foreach($policy as $c_law => $c_val){
872 - if(!empty($c_val[$c_field]) && $c_val[$c_field] == $cookieadmin_policies[$c_law][$c_field]){
873 - unset($policy[$c_law][$c_field]);
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);
874 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 + }
875 284 }
876 285 }
877 286
878 - update_option('cookieadmin_consent_settings', $policy);
879 -
880 - if(empty($cookieadmin_error)){
881 - $cookieadmin_msg = __('Settings saved successfully', 'cookieadmin');
287 + if(empty($msg)){
288 + return;
882 289 }
883 - }
884 -
885 -
886 - static function cookieadmin_auto_configure_cookies(){
887 - global $wpdb;
888 290
889 - $table_name = esc_sql($wpdb->prefix . 'cookieadmin_cookies');
890 - $categorized_cookies = [];
891 - $uncategorized_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>';
892 296
893 - $all_cookies = $wpdb->get_results("SELECT cookie_name, category FROM {$table_name}");
894 -
895 - foreach($all_cookies as $cookie){
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){
896 301
897 - if(!empty($cookie->categorized)){
898 - $categorized_cookies[] = $cookie->cookie_name;
899 - }else{
900 - $uncategorized_cookies[] = $cookie->cookie_name;
302 + let target = jQuery(e.target);
303 + if(!target.hasClass("notice-dismiss")){
304 + return;
901 305 }
902 - }
903 -
904 - if(!empty($uncategorized_cookies)){
905 306
906 - $uncategorized_cookies = array_flip($uncategorized_cookies);
907 - $categorized_cookies = array_flip($categorized_cookies);
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 + });
908 315
909 -
910 - $categorizd_cookies = \CookieAdmin\CookieCategorizer::categorize_cookies($uncategorized_cookies, $categorized_cookies);
911 -
912 - $remove_cookies = $categorizd_cookies['remove_cookies'];
913 - unset($categorizd_cookies['remove_cookies']);
914 - if(!empty($remove_cookies)){
915 - $placeholders = implode(',', array_fill(0, count($remove_cookies), '%s'));
916 - $sql = $wpdb->prepare("DELETE FROM {$table_name} WHERE raw_name IN ({$placeholders})", ...$remove_cookies);
917 - $wpdb->query($sql);
918 - }
919 -
920 - foreach($categorizd_cookies as $cookie_data){
921 -
922 - $wpdb->update(
923 - $table_name,
924 - [ 'cookie_name' => $cookie_data['cookie_name'], 'category' => $cookie_data['category'], 'description' => $cookie_data['description'], 'edited' => 1, 'patterns' => $cookie_data['patterns'] ], // Data to update
925 - [ 'raw_name' => $cookie_data['raw_name'] ], // WHERE
926 - [ '%s', '%s', '%s', '%d', '%s' ], // Format for the data
927 - [ '%s' ] // Format for the WHERE clause
928 - );
929 -
930 - }
931 -
932 - $categorized_cookies = $wpdb->get_results("SELECT id, cookie_name, category, expires, description FROM {$table_name}");
933 -
934 - wp_send_json_success($categorized_cookies);
935 - }
936 - wp_send_json(['success' => true,
937 - 'data' => null,
938 - 'message' => __('No cookies to categorize!', 'cookieadmin')]);
316 + });');
317 +
939 318 }
940 319
941 - static function cookieadmin_edit_cookies(){
942 - global $wpdb;
943 -
944 - $table_name = esc_sql($wpdb->prefix . 'cookieadmin_cookies');
945 -
946 - if(!empty($_REQUEST['cookie_info'])) {
947 -
948 - $cookie_info = wp_unslash($_REQUEST['cookie_info']);
949 -
950 - $resp = $wpdb->update(
951 - $table_name,
952 - [ '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
953 - [ 'id' => sanitize_text_field($cookie_info['id']) ], // WHERE
954 - [ '%s', '%s', '%s', '%s', '%d' ], // Format for the data
955 - [ '%d' ] // Format for the WHERE clause
956 - );
957 -
958 - }elseif( !empty($_REQUEST['cookie_raw_id']) ){
959 -
960 - $cookie_id = (int) sanitize_text_field(wp_unslash($_REQUEST['cookie_raw_id']));
961 -
962 - $resp = $wpdb->delete( $table_name, ['id' => $cookie_id], [ '%s' ] );
963 - }
964 -
965 - if ($wpdb->last_error || $resp === false) {
966 - //error_log('DB Error: ' . $wpdb->last_error); // Log it
967 - wp_send_json(['success' => true,
968 - 'data' => null,
969 - 'message' => __('Error editing cookie, Error: ', 'cookieadmin') . esc_html($wpdb->last_error)]);
970 - }
971 -
972 - wp_send_json_success(__('Cookie updated!', 'cookieadmin'));
973 -
974 - }
320 + static function conflict_notice(){
975 321
976 - 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 + ];
977 331
978 - global $wpdb;
979 -
980 - $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 + }
981 335
982 - if (empty($found_cookies)) {
983 - return ['inserted' => 0, 'updated' => 0];
336 + $active = [];
337 + foreach($conflicting as $slug => $name){
338 + if(is_plugin_active($slug)){
339 + $active[] = $name;
340 + }
984 341 }
985 342
986 - // Step 1: Fetch all existing cookie names from our database in one efficient query.
987 - $existing_cookies_in_db = $wpdb->get_col("SELECT cookie_name FROM {$table_name}");
988 - // Use array_flip for very fast 'isset' lookups instead of slow 'in_array' in a loop.
989 - $existing_cookies_lookup = !empty($existing_cookies_in_db) ? array_flip($existing_cookies_in_db) : [];
343 + if(empty($active)){
344 + return;
345 + }
990 346
991 - $results = ['inserted' => 0, 'updated' => 0];
347 + $names = implode(', ', $active);
992 348
993 - // Step 2: Loop through each cookie found by the scanner.
994 - 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 + }
995 354
996 - // Step 3: Check if the cookie exists in our DB.
997 - if (isset($existing_cookies_lookup[$cookie_name])) {
998 -
999 - $wpdb->update(
1000 - $table_name,
1001 - [ 'scan_timestamp' => time() ], // Data to update
1002 - [ 'cookie_name' => $cookie_name ], // WHERE clause
1003 - [ '%s' ], // Format for the data
1004 - [ '%s' ] // Format for the WHERE clause
1005 - );
1006 - $results['updated']++;
1007 -
1008 - } else {
1009 -
1010 - // ------ INSERT a NEW cookie ------
1011 - $data = [
1012 - 'cookie_name' => sanitize_text_field($cookie_name),
1013 - 'domain' => sanitize_text_field($cookie_data['domain']),
1014 - 'path' => sanitize_text_field($cookie_data['path']),
1015 - 'expires' => !empty($cookie_data['expires']) ? $cookie_data['expires'] : null,
1016 - 'max_age' => $cookie_data['Max-Age'] ? $cookie_data['Max-Age'] : null,
1017 - 'samesite' => !empty($cookie_data['samesite']) ? sanitize_text_field($cookie_data['samesite']) : null,
1018 - 'secure' => (int)($cookie_data['secure'] ?? 0),
1019 - 'httponly' => (int)($cookie_data['httponly'] ?? 0),
1020 - 'raw_name' => sanitize_text_field($cookie_name),
1021 - 'scan_timestamp' => time(),
1022 - ];
1023 -
1024 - $formats = ['%s', '%s', '%s', '%s', '%d', '%s', '%d', '%d', '%s'];
1025 -
1026 - if ($wpdb->insert($table_name, $data, $formats)) {
1027 - $results['inserted']++;
1028 - } else {
1029 - //error_log("CookieAdmin: Error inserting cookie data: " . $wpdb->last_error);
1030 - }
1031 - }
355 + static function close_notices(){
356 +
357 + if(empty($_REQUEST['notice'])){
358 + return;
1032 359 }
1033 - 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());
1034 366 }
1035 367
1036 368 static function plugin_update_notice(){
1037 369 if(defined('SOFTACULOUS_PLUGIN_UPDATE_NOTICE')){
@@ -1101,9 +433,9 @@
1101 433 if(cookieadmin_is_pro()){
1102 434 return '';
1103 435 }
1104 436
1105 - $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>';
1106 438
1107 439 if(!empty($return)){
1108 440 return $msg;
1109 441 }else{