| @@ -17,8 +17,12 @@ | ||
| 17 | 17 | $cookieadmin_requires_pro = \CookieAdmin\Admin::is_feature_available(1); |
| 18 | 18 | |
| 19 | 19 | \CookieAdmin\Admin::header_theme(__('Settings', 'cookieadmin')); |
| 20 | 20 | |
| 21 | + if(empty($cookieadmin_settings)){ | |
| 22 | + $cookieadmin_settings = get_option('cookieadmin_settings', []); | |
| 23 | + } | |
| 24 | + | |
| 21 | 25 | echo ' |
| 22 | 26 | <div class="cookieadmin_consent-wrap"> |
| 23 | 27 | <form action="" method="post" id="setting_submenu"> |
| 24 | 28 | |
| @@ -67,14 +71,66 @@ | ||
| 67 | 71 | </div> |
| 68 | 72 | </div> |
| 69 | 73 | </div> |
| 70 | 74 | </div>'; |
| 75 | + | |
| 76 | + // Card: Resource blocking | |
| 77 | + echo ' | |
| 78 | + <div class="cookieadmin-card cookieadmin-mt-16"> | |
| 79 | + <div class="cookieadmin-card-header"> | |
| 80 | + <span class="cookieadmin-card-title"><span class="dashicons dashicons-media-document"></span> '.esc_html__('Resource Blocking', 'cookieadmin').'</span> | |
| 81 | + </div> | |
| 82 | + <div class="cookieadmin-card-body"> | |
| 83 | + <div class="cookieadmin-setting"> | |
| 84 | + <label class="cookieadmin-title" for="cookieadmin_block_scripts">'.esc_html__('Block scripts', 'cookieadmin').' | |
| 85 | + <span class="dashicons dashicons-info cookieadmin-tooltip-box" data-tip="'.esc_html__('It blocks the scripts related to the scanned Cookies.', 'cookieadmin').'"></span> | |
| 86 | + </label> | |
| 87 | + <div class="cookieadmin-setting-contents"> | |
| 88 | + <label class="cookieadmin-toggle-wrap"> | |
| 89 | + <input name="cookieadmin_block_scripts" type="checkbox" id="cookieadmin_block_scripts" '.(!empty($cookieadmin_settings['block_scripts']) ? 'checked' : '').'> | |
| 90 | + <div class="cookieadmin-toggle-track"> | |
| 91 | + <div class="cookieadmin-toggle-thumb"></div> | |
| 92 | + </div> | |
| 93 | + </label> | |
| 94 | + </div> | |
| 95 | + </div> | |
| 96 | + <div class="cookieadmin-setting setting-blocking" cookieadmin-pro-only="1"> | |
| 97 | + <label class="cookieadmin-title" for="cookieadmin_content_blocking">'.esc_html__('Content Blocking', 'cookieadmin').' | |
| 98 | + <span class="dashicons dashicons-info cookieadmin-tooltip-box" data-tip="'.esc_html__('Block third-party content which uses iframes to load cookies until user consent is given.', 'cookieadmin').'"></span> | |
| 99 | + </label> | |
| 100 | + <div class="cookieadmin-setting-contents"> | |
| 101 | + <label class="cookieadmin-toggle-wrap">'; | |
| 102 | + if(defined('COOKIEADMIN_PRO_VERSION')){ | |
| 103 | + echo '<input name="cookieadmin_content_blocking" type="checkbox" id="cookieadmin_content_blocking" '.(!empty($cookieadmin_settings['content_blocking']) && cookieadmin_is_pro() ? 'checked' : '').' />'; | |
| 104 | + } else { | |
| 105 | + echo '<input type="checkbox" id="cookieadmin_content_blocking" />'; | |
| 106 | + } | |
| 107 | + | |
| 108 | + echo '<div class="cookieadmin-toggle-track"> | |
| 109 | + <div class="cookieadmin-toggle-thumb"></div> | |
| 110 | + </div> | |
| 111 | + '.wp_kses_post($cookieadmin_requires_pro).' | |
| 112 | + </label> | |
| 113 | + </div> | |
| 114 | + </div> | |
| 71 | 115 | |
| 116 | + <div class="cookieadmin-content-blocking-options" style="display: '.(!empty($cookieadmin_settings['content_blocking']) ? 'block' : 'none').';"> | |
| 117 | + <div class="cookieadmin-cb-services"> | |
| 118 | + <label class="cookieadmin-title"><input type="checkbox" name="cookieadmin_content_blocking_services[]" value="youtube" '.(!empty($cookieadmin_settings['content_blocking_services']) && in_array('youtube', $cookieadmin_settings['content_blocking_services']) ? 'checked' : '').'> '.esc_html__('YouTube', 'cookieadmin').'</label> | |
| 119 | + <label class="cookieadmin-title"><input type="checkbox" name="cookieadmin_content_blocking_services[]" value="vimeo" '.(!empty($cookieadmin_settings['content_blocking_services']) && in_array('vimeo', $cookieadmin_settings['content_blocking_services']) ? 'checked' : '').'> '.esc_html__('Vimeo', 'cookieadmin').'</label> | |
| 120 | + <label class="cookieadmin-title"><input type="checkbox" name="cookieadmin_content_blocking_services[]" value="soundcloud" '.(!empty($cookieadmin_settings['content_blocking_services']) && in_array('soundcloud', $cookieadmin_settings['content_blocking_services']) ? 'checked' : '').'> '.esc_html__('SoundCloud', 'cookieadmin').'</label> | |
| 121 | + <label class="cookieadmin-title"><input type="checkbox" name="cookieadmin_content_blocking_services[]" value="dailymotion" '.(!empty($cookieadmin_settings['content_blocking_services']) && in_array('dailymotion', $cookieadmin_settings['content_blocking_services']) ? 'checked' : '').'> '.esc_html__('Dailymotion', 'cookieadmin').'</label> | |
| 122 | + <label class="cookieadmin-title"><input type="checkbox" name="cookieadmin_content_blocking_services[]" value="maps" '.(!empty($cookieadmin_settings['content_blocking_services']) && in_array('maps', $cookieadmin_settings['content_blocking_services']) ? 'checked' : '').'> '.esc_html__('Google Maps', 'cookieadmin').'</label> | |
| 123 | + </div> | |
| 124 | + </div> | |
| 125 | + </div> | |
| 126 | + </div>'; | |
| 127 | + | |
| 72 | 128 | // Card: Advanced Features (PRO) |
| 73 | 129 | echo ' |
| 74 | 130 | <div class="cookieadmin-card cookieadmin-mt-16" cookieadmin-pro-only="1"> |
| 75 | 131 | <div class="cookieadmin-card-header"> |
| 76 | - <span class="cookieadmin-card-title"><span class="dashicons dashicons-star-filled"></span> '.esc_html__('Advanced Features', 'cookieadmin').wp_kses_post($cookieadmin_requires_pro).'</span> | |
| 132 | + <span class="cookieadmin-card-title"><span class="dashicons dashicons-admin-generic"></span> '.esc_html__('Advanced Features', 'cookieadmin').wp_kses_post($cookieadmin_requires_pro).'</span> | |
| 77 | 133 | </div> |
| 78 | 134 | <div class="cookieadmin-card-body"> |
| 79 | 135 | <div class="cookieadmin-setting"> |
| 80 | 136 | <label class="cookieadmin-title" for="cookieadmin_google_consent_mode_v2">'.esc_html__('Google Consent Mode v2', 'cookieadmin').' |
| @@ -90,8 +146,22 @@ | ||
| 90 | 146 | </div> |
| 91 | 147 | </div> |
| 92 | 148 | |
| 93 | 149 | <div class="cookieadmin-setting"> |
| 150 | + <label class="cookieadmin-title" for="cookieadmin_google_advance_consent_mode">'.esc_html__('Load Google tags before consent', 'cookieadmin').' | |
| 151 | + <span class="dashicons dashicons-info cookieadmin-tooltip-box" data-tip="'.esc_html__('Google tags will fire immediately on the page load before consent.', 'cookieadmin').'"></span> | |
| 152 | + </label> | |
| 153 | + <div class="cookieadmin-setting-contents"> | |
| 154 | + <label class="cookieadmin-toggle-wrap"> | |
| 155 | + <input name="cookieadmin_google_advance_consent_mode" type="checkbox" id="cookieadmin_google_advance_consent_mode" '.(!empty($cookieadmin_settings['cookieadmin_google_advance_consent_mode']) && cookieadmin_is_pro() ? 'checked' : '').'> | |
| 156 | + <div class="cookieadmin-toggle-track"> | |
| 157 | + <div class="cookieadmin-toggle-thumb"></div> | |
| 158 | + </div> | |
| 159 | + </label> | |
| 160 | + </div> | |
| 161 | + </div> | |
| 162 | + | |
| 163 | + <div class="cookieadmin-setting"> | |
| 94 | 164 | <label class="cookieadmin-title" for="cookieadmin_clarity_consent">'.esc_html__('Clarity Consent Mode V2', 'cookieadmin').' |
| 95 | 165 | <span class="dashicons dashicons-info cookieadmin-tooltip-box" data-tip="'.esc_html__('Enable Microsoft Clarity consent mode v2.', 'cookieadmin').'"></span> |
| 96 | 166 | </label> |
| 97 | 167 | <div class="cookieadmin-setting-contents"> |
| @@ -157,32 +227,8 @@ | ||
| 157 | 227 | </div> |
| 158 | 228 | </label> |
| 159 | 229 | </div> |
| 160 | 230 | </div> |
| 161 | - | |
| 162 | - <div class="cookieadmin-setting setting-blocking"> | |
| 163 | - <label class="cookieadmin-title" for="cookieadmin_content_blocking">'.esc_html__('Content Blocking', 'cookieadmin').' | |
| 164 | - <span class="dashicons dashicons-info cookieadmin-tooltip-box" data-tip="'.esc_html__('Block third-party content which uses iframes to load cookies until user consent is given.', 'cookieadmin').'"></span> | |
| 165 | - </label> | |
| 166 | - <div class="cookieadmin-setting-contents"> | |
| 167 | - <label class="cookieadmin-toggle-wrap"> | |
| 168 | - <input name="cookieadmin_content_blocking" type="checkbox" id="cookieadmin_content_blocking" '.(!empty($cookieadmin_settings['content_blocking']) && cookieadmin_is_pro() ? 'checked' : '').'> | |
| 169 | - <div class="cookieadmin-toggle-track"> | |
| 170 | - <div class="cookieadmin-toggle-thumb"></div> | |
| 171 | - </div> | |
| 172 | - </label> | |
| 173 | - </div> | |
| 174 | - </div> | |
| 175 | - | |
| 176 | - <div class="cookieadmin-content-blocking-options" style="display: '.(!empty($cookieadmin_settings['content_blocking']) ? 'block' : 'none').';"> | |
| 177 | - <div class="cookieadmin-cb-services"> | |
| 178 | - <label class="cookieadmin-title"><input type="checkbox" name="cookieadmin_content_blocking_services[]" value="youtube" '.(!empty($cookieadmin_settings['content_blocking_services']) && in_array('youtube', $cookieadmin_settings['content_blocking_services']) ? 'checked' : '').'> '.esc_html__('YouTube', 'cookieadmin').'</label> | |
| 179 | - <label class="cookieadmin-title"><input type="checkbox" name="cookieadmin_content_blocking_services[]" value="vimeo" '.(!empty($cookieadmin_settings['content_blocking_services']) && in_array('vimeo', $cookieadmin_settings['content_blocking_services']) ? 'checked' : '').'> '.esc_html__('Vimeo', 'cookieadmin').'</label> | |
| 180 | - <label class="cookieadmin-title"><input type="checkbox" name="cookieadmin_content_blocking_services[]" value="soundcloud" '.(!empty($cookieadmin_settings['content_blocking_services']) && in_array('soundcloud', $cookieadmin_settings['content_blocking_services']) ? 'checked' : '').'> '.esc_html__('SoundCloud', 'cookieadmin').'</label> | |
| 181 | - <label class="cookieadmin-title"><input type="checkbox" name="cookieadmin_content_blocking_services[]" value="dailymotion" '.(!empty($cookieadmin_settings['content_blocking_services']) && in_array('dailymotion', $cookieadmin_settings['content_blocking_services']) ? 'checked' : '').'> '.esc_html__('Dailymotion', 'cookieadmin').'</label> | |
| 182 | - <label class="cookieadmin-title"><input type="checkbox" name="cookieadmin_content_blocking_services[]" value="maps" '.(!empty($cookieadmin_settings['content_blocking_services']) && in_array('maps', $cookieadmin_settings['content_blocking_services']) ? 'checked' : '').'> '.esc_html__('Google Maps', 'cookieadmin').'</label> | |
| 183 | - </div> | |
| 184 | - </div> | |
| 185 | 231 | </div> |
| 186 | 232 | </div>'; |
| 187 | 233 | |
| 188 | 234 | // Card: Data Management (PRO) |
| @@ -276,8 +322,9 @@ | ||
| 276 | 322 | |
| 277 | 323 | $cookieadmin_settings = get_option('cookieadmin_settings', []); |
| 278 | 324 | |
| 279 | 325 | // Save cookieadmin_settings only on settings page |
| 326 | + $cookieadmin_settings['block_scripts'] = !empty($_REQUEST['cookieadmin_block_scripts']); | |
| 280 | 327 | $cookieadmin_settings['google_consent_mode_v2'] = (isset( $_REQUEST['cookieadmin_google_consent_mode_v2'] ) ? 1 : 0); |
| 281 | 328 | $cookieadmin_settings['hide_powered_by'] = (isset( $_REQUEST['cookieadmin_hide_powered_by'] ) ? 1 : 0); |
| 282 | 329 | $cookieadmin_settings['hide_reconsent'] = (isset( $_REQUEST['cookieadmin_hide_reconsent'] ) ? 1 : 0); |
| 283 | 330 | $cookieadmin_settings['cookieadmin_auto_scan'] = (isset( $_REQUEST['cookieadmin_auto_scan'] ) ? 1 : 0); |
| @@ -291,8 +338,11 @@ | ||
| 291 | 338 | if(!empty($_REQUEST['cookieadmin_content_blocking_services'])){ |
| 292 | 339 | $cookieadmin_settings['content_blocking_services'] = array_map('sanitize_text_field', wp_unslash($_REQUEST['cookieadmin_content_blocking_services'])); |
| 293 | 340 | } |
| 294 | 341 | |
| 342 | + // Google's advance consent mode (Google tags will be loaded on page load is enabled) | |
| 343 | + $cookieadmin_settings['cookieadmin_google_advance_consent_mode'] = (isset( $_REQUEST['cookieadmin_google_advance_consent_mode'] ) ? 1 : 0); | |
| 344 | + | |
| 295 | 345 | if(empty($cookieadmin_error)){ |
| 296 | 346 | update_option('cookieadmin_settings', $cookieadmin_settings); |
| 297 | 347 | } |
| 298 | 348 | |
| @@ -311,9 +361,20 @@ | ||
| 311 | 361 | |
| 312 | 362 | //set preload and consent field for "cookieadmin-settings" page |
| 313 | 363 | $policy[$law]['preload'] = !empty($_REQUEST['cookieadmin_preload']) ? array_map('sanitize_text_field', wp_unslash($_REQUEST['cookieadmin_preload'])) : []; |
| 314 | 364 | $policy[$law]['reload_on_consent'] = !empty($_REQUEST['cookieadmin_reload_on_consent']) ? sanitize_text_field(wp_unslash($_REQUEST['cookieadmin_reload_on_consent'])) : ''; |
| 365 | + | |
| 366 | + // Check for certain fields to be saved only if their values is not the same as default | |
| 367 | + $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'); | |
| 315 | 368 | |
| 369 | + foreach($cookieadmin_check_changes as $c_field){ | |
| 370 | + foreach($policy as $c_law => $c_val){ | |
| 371 | + if(!empty($c_val[$c_field]) && $c_val[$c_field] == $cookieadmin_policies[$c_law][$c_field]){ | |
| 372 | + unset($policy[$c_law][$c_field]); | |
| 373 | + } | |
| 374 | + } | |
| 375 | + } | |
| 376 | + | |
| 316 | 377 | update_option('cookieadmin_consent_settings', $policy); |
| 317 | 378 | |
| 318 | 379 | if(empty($cookieadmin_error)){ |
| 319 | 380 | $cookieadmin_msg = __('Settings saved successfully', 'cookieadmin'); |
| @@ -318,5 +379,5 @@ | ||
| 318 | 379 | if(empty($cookieadmin_error)){ |
| 319 | 380 | $cookieadmin_msg = __('Settings saved successfully', 'cookieadmin'); |
| 320 | 381 | } |
| 321 | 382 | } |
| 322 | -} | |
| 383 | +} | |