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/scan.php +93 -60 1.1.7 → 1.2.6 View file →
@@ -54,8 +54,13 @@
54 54
55 55 if(empty($data->description)){
56 56 $data->description = 'Not Available';
57 57 }
58 +
59 + $patterns = !empty($data->patterns) ? $data->patterns : '';
60 + if(!empty($patterns)){
61 + $patterns = strtr($patterns, ['[' => '', ']' => '', '"' => '']);
62 + }
58 63
59 64 $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>';
60 65
61 66 $categorized_cookies[$data->id]['id'] = $data->id;
@@ -62,8 +67,9 @@
62 67 $categorized_cookies[$data->id]['cookie_name'] = $data->cookie_name;
63 68 $categorized_cookies[$data->id]['description'] = $data->description;
64 69 $categorized_cookies[$data->id]['category'] = $data->category;
65 70 $categorized_cookies[$data->id]['expires'] = $expires;
71 + $categorized_cookies[$data->id]['patterns'] = $patterns;
66 72
67 73 }
68 74
69 75 wp_register_script('cookieadmin_categorized_cookies', '', array('jquery'), COOKIEADMIN_VERSION, true);
@@ -74,62 +80,60 @@
74 80 $no_cookies_hidden = '<tr class="cookieadmin-empty-row" hidden><td colspan=4>'.esc_html__('No Cookies Found!', 'cookieadmin').'</td></tr>';
75 81
76 82 echo '
77 83 <div class="cookieadmin_consent-wrap">
78 - <form action="" method="post">
79 - <div class="cookieadmin_consent-contents">
80 - <div class="cookieadmin_consent_settings">
81 - <div class="cookieadmin-setting cookieadmin-manager-cookie-scan">
82 - <div class="cookieadmin-scan-cookie-info">
83 - <label class="cookieadmin-title">'.esc_html__('Scanned Cookies', 'cookieadmin').'</label>
84 - <p class="cookieadmin-desc">'.esc_html__('Scanned cookies will be automatically categorised and displayed here. You can add, edit and delete cookies as per your needs.', 'cookieadmin').'</p>
85 - </div>
86 - <div class="cookieadmin-setting-contents cookieadmin-buttons-div">
87 - <div class="cookieadmin-setting-contents cookieadmin-add-cookie-div">
88 - <input type="button" class="cookieadmin-btn cookieadmin-btn-primary cookieadmin-add-cookie" value="'.esc_html__('Add Cookie', 'cookieadmin').'" cookieadmin-pro-only="1"></input>
89 - '.wp_kses_post($cookieadmin_requires_pro).'
90 - </div>
91 - <div class="cookieadmin-setting-contents cookieadmin-cookie-scan'.( !empty($cookieadmin_requires_pro) ? ' cookieadmin-tooltip-box' : '').'" data-tip="'.esc_html__('Basic scan might miss some cookies.', 'cookieadmin').'">'.
92 - ( !empty($cookieadmin_requires_pro) ? '
93 - <input type="button" class="cookieadmin-btn cookieadmin-btn-primary cookieadmin-scan" value="'.esc_html__('Scan', 'cookieadmin').'"></input> ' : '').'
94 - <input type="button" class="cookieadmin-btn cookieadmin-btn-primary cookieadmin-scan" value="'.esc_html__('Full Scan', 'cookieadmin').'" cookieadmin-pro-only="1">
95 - '.wp_kses_post($cookieadmin_requires_pro).'
96 - </div>
97 - </div>
98 - <div class="cookieadmin-manager-result">
99 - <table class="cookieadmin-table cookieadmin-cookie-categorized">
100 - <thead>
101 - <tr>
102 - <th width="30%">'.esc_html__('Name', 'cookieadmin').'</th>
103 - <th width="50%">'.esc_html__('Description', 'cookieadmin').'</th>
104 - <th width="10%">'.esc_html__('Expiry', 'cookieadmin').'</th>
105 - <th width="10%">'.esc_html__('Action', 'cookieadmin').'</th>
106 - </tr>
107 - </thead>
108 - <tbody id="necessary_tbody">
109 - <tr><td colspan=4>'.esc_html__('Necessary Cookies', 'cookieadmin').'</td></tr>
110 - '.( !empty($categorized['Necessary']) ? $no_cookies_hidden . wp_kses_post($categorized['Necessary']) : $no_cookies ).'
111 - </tbody>
112 - <tbody id="functional_tbody">
113 - <tr><td colspan=4>'.esc_html__('Functional Cookies', 'cookieadmin').'</td></tr>
114 - '.( !empty($categorized['Functional']) ? $no_cookies_hidden . wp_kses_post($categorized['Functional']) : $no_cookies ).'
115 - </tbody>
116 - <tbody id="analytics_tbody">
117 - <tr><td colspan=4>'.esc_html__('Analytical Cookies', 'cookieadmin').'</td></tr>
118 - '.( !empty($categorized['Analytics']) ? $no_cookies_hidden . wp_kses_post($categorized['Analytics']) :$no_cookies ).'
119 - </tbody>
120 - <tbody id="marketing_tbody">
121 - <tr><td colspan=4>'.esc_html__('Marketing Cookies', 'cookieadmin').'</td></tr>
122 - '.( !empty($categorized['Marketing']) ? $no_cookies_hidden . wp_kses_post($categorized['Marketing']) : $no_cookies ).'
123 - </tbody>
124 - <tbody id="unknown_tbody">
125 - <tr><td colspan=4>'.esc_html__('Unknown Cookies', 'cookieadmin').'</td></tr>
126 - '.( !empty($categorized['Unknown']) ? $no_cookies_hidden . wp_kses_post($categorized['Unknown']) : $no_cookies ).'
127 - </tbody>
128 - </table>
129 - </div>
84 + <form action="" method="post">';
85 + do_action('cookieadmin_before_scan_results');
86 +
87 + echo '<div class="cookieadmin-card">
88 + <div class="cookieadmin-card-header">
89 + <div>
90 + <span class="cookieadmin-card-title"><span class="dashicons dashicons-list-view"></span> '.esc_html__('Scanned Cookies', 'cookieadmin').'</span>
91 + <p class="cookieadmin-desc">'.esc_html__('Scanned cookies will be automatically categorised and displayed here. You can add, edit and delete cookies as per your needs.', 'cookieadmin').'</p>
130 92 </div>
93 + <div class="cookieadmin-toolbar-actions">
94 + <input type="button" class="cookieadmin-btn cookieadmin-btn-secondary cookieadmin-add-cookie" value="'.esc_html__('Add Cookie', 'cookieadmin').'" cookieadmin-pro-only="1"></input>
95 + '.wp_kses_post($cookieadmin_requires_pro).
96 + ( !empty($cookieadmin_requires_pro) ? '
97 + <input type="button" class="cookieadmin-btn cookieadmin-btn-primary cookieadmin-scan" value="'.esc_html__('Scan', 'cookieadmin').'"></input> ' : '').'
98 + <input type="button" class="cookieadmin-btn cookieadmin-btn-primary cookieadmin-scan" value="'.esc_html__('Full Scan', 'cookieadmin').'" cookieadmin-pro-only="1">
99 + '.wp_kses_post($cookieadmin_requires_pro).'
100 + </div>
131 101 </div>
102 + <div class="cookieadmin-card-body">
103 + <div class="cookieadmin-manager-result">
104 + <table class="cookieadmin-table cookieadmin-cookie-categorized">
105 + <thead>
106 + <tr>
107 + <th width="30%">'.esc_html__('Name', 'cookieadmin').'</th>
108 + <th width="50%">'.esc_html__('Description', 'cookieadmin').'</th>
109 + <th width="10%">'.esc_html__('Expiry', 'cookieadmin').'</th>
110 + <th width="10%">'.esc_html__('Action', 'cookieadmin').'</th>
111 + </tr>
112 + </thead>
113 + <tbody id="necessary_tbody">
114 + <tr><td colspan=4>'.esc_html__('Necessary Cookies', 'cookieadmin').'</td></tr>
115 + '.( !empty($categorized['Necessary']) ? $no_cookies_hidden . wp_kses_post($categorized['Necessary']) : $no_cookies ).'
116 + </tbody>
117 + <tbody id="functional_tbody">
118 + <tr><td colspan=4>'.esc_html__('Functional Cookies', 'cookieadmin').'</td></tr>
119 + '.( !empty($categorized['Functional']) ? $no_cookies_hidden . wp_kses_post($categorized['Functional']) : $no_cookies ).'
120 + </tbody>
121 + <tbody id="analytics_tbody">
122 + <tr><td colspan=4>'.esc_html__('Analytical Cookies', 'cookieadmin').'</td></tr>
123 + '.( !empty($categorized['Analytics']) ? $no_cookies_hidden . wp_kses_post($categorized['Analytics']) :$no_cookies ).'
124 + </tbody>
125 + <tbody id="marketing_tbody">
126 + <tr><td colspan=4>'.esc_html__('Marketing Cookies', 'cookieadmin').'</td></tr>
127 + '.( !empty($categorized['Marketing']) ? $no_cookies_hidden . wp_kses_post($categorized['Marketing']) : $no_cookies ).'
128 + </tbody>
129 + <tbody id="unknown_tbody">
130 + <tr><td colspan=4>'.esc_html__('Unknown Cookies', 'cookieadmin').'</td></tr>
131 + '.( !empty($categorized['Unknown']) ? $no_cookies_hidden . wp_kses_post($categorized['Unknown']) : $no_cookies ).'
132 + </tbody>
133 + </table>
134 + </div>
135 + </div>
132 136 </div>';
133 137
134 138 wp_nonce_field('cookieadmin_admin_nonce', 'cookieadmin_security');
135 139
@@ -174,10 +178,19 @@
174 178
175 179 <div class="cookieadmin_form-group">
176 180 <label for="duration">'.esc_html__('Duration', 'cookieadmin').'</label>
177 181 <input type="number" min=0 id="cookieadmin-dialog-cookie-duration" Placeholder="'.esc_html__('Set 0 for Session or expiry in days', 'cookieadmin').'">
178 - </div>
179 - </div>
182 + </div>';
183 +
184 + if(empty($cookieadmin_requires_pro)){
185 + echo '<div class="cookieadmin_form-group">
186 + <label for="patterns">'.esc_html__('Scripts patterns', 'cookieadmin').'</label>
187 + <span>'.__('If scripts has "src" attribute then paste the src or add comma separated patterns to match the scripts. Try choosing log patterns to block only targeted script', 'cookieadmin').'</span>
188 + <br /><span><strong>'.__('Note: ', 'cookieadmin').'</strong>'.__('Wildcards (*, ?, ^, % etc) are not allowed', 'cookieadmin').'</span>
189 + <textarea id="cookieadmin-dialog-cookie-patterns" Placeholder="'.esc_attr__('https://connect.facebook.net/en_US/fbevents.js OR fbq.push, window.facebookSignals', 'cookieadmin').'"></textarea>
190 + </div>';
191 + }
192 + echo '</div>
180 193 <div class="cookieadmin_modal-footer">
181 194 <span id="cookieadmin-message"></span>
182 195 <button class="cookieadmin-btn cookieadmin-btn-primary" id="cookieadmin_dialog_save_btn" form="edit-cookie-form">'.esc_html__('Save', 'cookieadmin').'</button>
183 196 </div>
@@ -226,9 +239,9 @@
226 239
227 240 if(!method_exists('\CookieAdminPro\Admin', 'cookieadmin_get_site_urls')){
228 241 $urls = [home_url()];
229 242 } else {
230 - $urls = \CookieAdminPro\Admin::cookieadmin_get_site_urls($urls, 1);
243 + $urls = \CookieAdminPro\Admin::cookieadmin_get_site_urls($urls);
231 244 }
232 245
233 246 $cookieData = apply_filters('cookieadmin_pro_scan_cookies', $urls);
234 247
@@ -451,11 +464,13 @@
451 464 );
452 465 }
453 466
454 467 $cookie_info = map_deep(wp_unslash($_REQUEST['cookie_info']), 'sanitize_text_field');
468 + // $scan_timestamp = $wpdb->get_col($wpdb->prepare("SELECT scan_timestamp FROM {$table_name} WHERE id = %d", $cookie_info['id']));
455 469
456 - $scan_timestamp = $wpdb->get_col($wpdb->prepare("SELECT scan_timestamp FROM {$table_name} WHERE id = %d", $cookie_info['id']));
457 -
470 + $scanned_cookies = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$table_name} WHERE id = %d", $cookie_info['id']));
471 + $scan_timestamp = !empty($scanned_cookies->scan_timestamp) ? $scanned_cookies->scan_timestamp : 0;
472 +
458 473 if(empty($scan_timestamp)){
459 474 wp_send_json(['success' => false,
460 475 'data' => null,
461 476 'message' => __('Error : Invalid cookie record', 'cookieadmin')]
@@ -461,16 +476,34 @@
461 476 'message' => __('Error : Invalid cookie record', 'cookieadmin')]
462 477 );
463 478 }
464 479
465 - $calculated_expiry_seconds = ($cookie_info['duration'] * 86400) + $scan_timestamp[0];
480 + $calculated_expiry_seconds = ($cookie_info['duration'] * 86400) + $scan_timestamp;
466 481 $calculated_expiry = date('Y-m-d H:i:s', $calculated_expiry_seconds);
482 +
483 + // Update the additional patterns into the saved patterns
484 + $patterns = '[]';
485 + if(!empty($cookie_info['patterns'])){
486 + $script_patterns = explode(',', $cookie_info['patterns']);
487 + if(!empty($script_patterns) && is_array($script_patterns)){
488 + foreach($script_patterns as $pat){
489 + if(strlen(str_replace(['*', '?', '^', '%'], '', $pat)) < strlen($pat)){
490 + continue;
491 + }
492 + // do not ad comma if the saved pattern is empty
493 + $comma = ($patterns === '[]') ? '' : ', ';
494 + $patterns = str_replace(']', $comma . '"' .(string) trim($pat).'"]', $patterns);
495 + }
496 + }
497 + }else{
498 + $patterns = !empty($scanned_cookies->patterns) ? $scanned_cookies->patterns : '[]';
499 + }
467 500
468 501 $resp = $wpdb->update(
469 502 $table_name,
470 - [ 'cookie_name' => $cookie_info['name'], 'description' => $cookie_info['description'], 'expires' => $calculated_expiry, 'category' => $cookie_info['type'], 'edited' => 1], // Data to update
503 + [ 'cookie_name' => $cookie_info['name'], 'description' => $cookie_info['description'], 'expires' => $calculated_expiry, 'category' => $cookie_info['type'], 'patterns' => $patterns, 'edited' => 1], // Data to update
471 504 [ 'id' => $cookie_info['id'] ], // WHERE
472 - [ '%s', '%s', '%s', '%s', '%d' ], // Format for the data
505 + [ '%s', '%s', '%s', '%s', '%s', '%d' ], // Format for the data
473 506 [ '%d' ] // Format for the WHERE clause
474 507 );
475 508
476 509 if ($wpdb->last_error || $resp === false) {