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