%PDF- %PDF-
Direktori : /home/tradesc/www/relax/wp-content/plugins/complianz-gdpr/ |
Current File : /home/tradesc/www/relax/wp-content/plugins/complianz-gdpr/upgrade.php |
<?php defined( 'ABSPATH' ) or die(); add_action( 'init', 'cmplz_check_upgrade', 10, 2 ); /** * Run an upgrade procedure if the version has changed */ function cmplz_check_upgrade() { #only run upgrade check if cron, or if admin. if ( !is_admin() && !wp_doing_cron() ) { return; } $prev_version = get_option( 'cmplz-current-version', false ); $force = isset( $_GET['cmplz_upgrade'] ) && cmplz_user_can_manage(); $new_version = cmplz_version; //strip off everything after '#' if ( strpos( $new_version, '#' ) !== false ) { $new_version = substr( $new_version, 0, strpos( $new_version, '#' ) ); } if ( !$force && $prev_version === $new_version ) { return; } //trigger table upgrades do_action("cmplz_install_tables"); /** * Set a "first version" variable, so we can check if some notices need to be shown */ if ( ! $prev_version ) { update_option( 'cmplz_first_version', $new_version, false ); } /* * change googlemaps into google-maps * */ if ( $prev_version && version_compare( $prev_version, '4.0.0', '<' ) ) { $wizard_settings = get_option( 'complianz_options_wizard' ); if ( isset( $wizard_settings['thirdparty_services_on_site']['googlemaps'] ) && $wizard_settings['thirdparty_services_on_site']['googlemaps'] == 1 ) { unset( $wizard_settings['thirdparty_services_on_site']['googlemaps'] ); $wizard_settings['thirdparty_services_on_site']['google-maps'] = 1; update_option( 'complianz_options_wizard', $wizard_settings ); } } /** * upgrade existing eu and uk settings to separate uk optinstats */ if ( $prev_version && version_compare( $prev_version, '4.0.0', '<' ) ) { if ( cmplz_has_region( 'eu' ) && cmplz_has_region( 'uk' ) ) { $banners = cmplz_get_cookiebanners(); foreach ( $banners as $banner ) { $banner = cmplz_get_cookiebanner( $banner->ID ); $banner->use_categories_optinstats = $banner->use_categories; $banner->save(); } } } /** * migrate to anonymous if anonymous settings are selected */ if ( $prev_version && version_compare( $prev_version, '4.0.4', '<' ) ) { $selected_stat_service = cmplz_get_option( 'compile_statistics' ); if ( $selected_stat_service === 'google-analytics' || $selected_stat_service === 'matomo' || $selected_stat_service === 'google-tag-manager' ) { $service_name = COMPLIANZ::$banner_loader->convert_slug_to_name( $selected_stat_service ); //check if we have ohter types of this service, to prevent double services here. $service_anonymized = new CMPLZ_SERVICE( $service_name . ' (anonymized)' ); $service = new CMPLZ_SERVICE( $service_name ); //check if we have two service types. If so, just delete the anonymized one if ( $service_anonymized->ID && $service->ID ) { $service_anonymized->delete(); } else if ( $service_anonymized->ID && ! $service->ID ) { //just one. If it's the anonymous service, rename, and save it. $service_anonymized->name = $service_name; $service_anonymized->save(); } } } /** * upgrade publish date to more generic unix */ if ( $prev_version && version_compare( $prev_version, '4.2', '<' ) ) { $publish_date = strtotime( get_option( 'cmplz_publish_date' ) ); if ( intval( $publish_date ) > 0 ) { update_option( 'cmplz_publish_date', intval( $publish_date ) ); } } /** * upgrade to new custom and generated document settings */ if ( $prev_version && version_compare( $prev_version, '4.4.0', '<' ) ) { //upgrade cookie policy setting to new field $wizard_settings = get_option( 'complianz_options_wizard' ); if ( isset( $wizard_settings["cookie-policy-type"] ) ) { $value = $wizard_settings["cookie-policy-type"]; unset( $wizard_settings["cookie-policy-type"] ); //upgrade cookie policy custom url if ( $value === 'custom' ) { $url = cmplz_get_option( 'custom-cookie-policy-url' ); update_option( "cmplz_cookie-statement_custom_page", $url ); unset( $wizard_settings["custom-cookie-policy-url"] ); } else { $value = 'generated'; } } else { $value = 'generated'; } $wizard_settings['cookie-statement'] = $value; $wizard_settings['impressum'] = 'none'; //upgrade privacy statement settings $value = $wizard_settings["privacy-statement"]; if ( $value === 'yes' ) { $value = 'generated'; } else { $wp_privacy_policy = get_option( 'wp_page_for_privacy_policy' ); if ( $wp_privacy_policy ) { $value = 'custom'; update_option( "cmplz_privacy-statement_custom_page", $wp_privacy_policy ); } else { $value = 'none'; } } $wizard_settings['privacy-statement'] = $value; //upgrade disclaimer settings $value = $wizard_settings["disclaimer"]; if ( $value === 'yes' ) { $value = 'generated'; } else { $value = 'none'; } $wizard_settings['disclaimer'] = $value; //save the data update_option( 'complianz_options_wizard', $wizard_settings ); } /** * upgrade to new category field */ if ( $prev_version && version_compare( $prev_version, '4.6.0', '<' ) ) { $banners = cmplz_get_cookiebanners(); if ( $banners ) { foreach ( $banners as $banner_item ) { $banner = new CMPLZ_COOKIEBANNER( $banner_item->ID, false ); $banner->banner_version ++; if ( $banner->use_categories ) { $banner->use_categories = 'legacy'; } else { $banner->use_categories = 'no'; } if ( $banner->use_categories_optinstats ) { $banner->use_categories_optinstats = 'legacy'; } else { $banner->use_categories_optinstats = 'no'; } //also set the deny button to banner color, to make sure users start with correct colors $banner->functional_background_color = $banner->colorpalette_background['color']; $banner->functional_border_color = $banner->colorpalette_background['border']; $banner->functional_text_color = $banner->colorpalette_text['color']; $banner->save(); } } } /** * migrate policy id to network option for multisites */ if ( $prev_version && version_compare( $prev_version, '4.6.7', '<' ) ) { if ( is_multisite() ) { update_site_option( 'complianz_active_policy_id', get_option( 'complianz_active_policy_id', 1 ) ); } } /** * migrate odd numbers */ if ( $prev_version && version_compare( $prev_version, '4.6.8', '<' ) ) { $banners = cmplz_get_cookiebanners(); if ( $banners ) { foreach ( $banners as $banner_item ) { $banner = cmplz_get_cookiebanner( $banner_item->ID ); if ( $banner->banner_width % 2 == 1 ) { $banner->banner_width ++; } $banner->save(); } } } if ( $prev_version && version_compare( $prev_version, '4.7.1', '<' ) ) { //upgrade cookie policy setting to new field $wizard_settings = get_option( 'complianz_options_wizard' ); $wizard_settings['block_recaptcha_service'] = 'yes'; update_option( 'complianz_options_wizard', $wizard_settings ); } if ( $prev_version && version_compare( $prev_version, '4.9.6', '<' ) ) { //this branch aims to revoke consent and clear all cookies. We increase the policy id to do this. COMPLIANZ::$banner_loader->upgrade_active_policy_id(); } /** * upgrade to new cookie banner, and 5.0 message option */ if ( $prev_version && version_compare( $prev_version, '5.0.0', '<' ) ) { update_option( 'cmplz_upgraded_to_five', true, false ); //clear notices cache, as the array structure has changed delete_transient( 'complianz_warnings' ); global $wpdb; $banners = cmplz_get_cookiebanners(); if ( $banners ) { foreach ( $banners as $banner_item ) { $banner = new CMPLZ_COOKIEBANNER( $banner_item->ID, false ); $sql = $wpdb->prepare("select * from {$wpdb->prefix}cmplz_cookiebanners where ID = %s", $banner_item->ID); $result = $wpdb->get_row( $sql ); if ( $result ) { //reset to arrays if (!is_array($banner->colorpalette_background)) { $banner->colorpalette_background = array(); } if (!is_array($banner->colorpalette_text)) { $banner->colorpalette_text = array(); } if (!is_array($banner->colorpalette_toggles)) { $banner->colorpalette_toggles = array(); } if (!is_array($banner->colorpalette_button_accept)) { $banner->colorpalette_button_accept = array(); } if (!is_array($banner->colorpalette_button_deny)) { $banner->colorpalette_button_deny = array(); } if (!is_array($banner->colorpalette_button_settings)) { $banner->colorpalette_button_settings = array(); } $banner->colorpalette_background['color'] = empty( $result->popup_background_color ) ? '#f1f1f1' : $result->popup_background_color; $banner->colorpalette_background['border'] = empty( $result->popup_background_color ) ? '#f1f1f1' : $result->popup_background_color; $banner->colorpalette_text['color'] = empty( $result->popup_text_color ) ? '#191e23' : $result->popup_text_color; $banner->colorpalette_text['hyperlink'] = empty( $result->popup_text_color ) ? '#191e23' : $result->popup_text_color; $banner->colorpalette_toggles['background'] = empty( $result->slider_background_color ) ? '#21759b' : $result->slider_background_color; $banner->colorpalette_toggles['bullet'] = empty( $result->slider_bullet_color ) ? '#ffffff' : $result->slider_bullet_color; $banner->colorpalette_toggles['inactive'] = empty( $result->slider_background_color_inactive ) ? '#F56E28' : $result->slider_background_color_inactive; $consenttypes = cmplz_get_used_consenttypes(); $optout_only = false; if ( in_array( 'optout', $consenttypes ) && count( $consenttypes ) === 1 ) { $optout_only = true; } if ( $banner->use_categories === 'no' || $optout_only ) { $banner->colorpalette_button_accept['background'] = empty( $result->button_background_color ) ? '#21759b' : $result->button_background_color; $banner->colorpalette_button_accept['border'] = empty( $result->border_color ) ? '#21759b' : $result->border_color; $banner->colorpalette_button_accept['text'] = empty( $result->button_text_color ) ? '#ffffff' : $result->button_text_color; } else { $banner->colorpalette_button_accept['background'] = empty( $result->accept_all_background_color ) ? '#21759b' : $result->accept_all_background_color; $banner->colorpalette_button_accept['border'] = empty( $result->accept_all_border_color ) ? '#21759b' : $result->accept_all_border_color; $banner->colorpalette_button_accept['text'] = empty( $result->accept_all_text_color ) ? '#ffffff' : $result->accept_all_text_color; } $banner->colorpalette_button_deny['background'] = empty( $result->functional_background_color ) ? '#f1f1f1' : $result->functional_background_color; $banner->colorpalette_button_deny['border'] = empty( $result->functional_border_color ) ? '#f1f1f1' : $result->functional_border_color; $banner->colorpalette_button_deny['text'] = empty( $result->functional_text_color ) ? '#21759b' : $result->functional_text_color; $banner->colorpalette_button_settings['background'] = empty( $result->button_background_color ) ? '#f1f1f1' : $result->button_background_color; $banner->colorpalette_button_settings['border'] = empty( $result->border_color ) ? '#21759b' : $result->border_color; $banner->colorpalette_button_settings['text'] = empty( $result->button_text_color ) ? '#21759b' : $result->button_text_color; if ( $banner->theme === 'edgeless' ) { $banner->buttons_border_radius = array( 'top' => '0', 'right' => '0', 'bottom' => '0', 'left' => '0', 'type' => 'px', ); } $banner->save(); } } } /** * Move custom scripts from 'wizard' to 'custom-scripts' */ //upgrade cookie policy setting to new field $wizard_settings = get_option( 'complianz_options_wizard' ); $custom_scripts = array(); if ( isset( $wizard_settings['statistics_script'] ) ) { $custom_scripts['statistics_script'] = $wizard_settings['statistics_script']; } if ( isset( $wizard_settings['cookie_scripts'] ) ) { $custom_scripts['cookie_scripts'] = $wizard_settings['cookie_scripts']; } if ( isset( $wizard_settings['cookie_scripts_async'] ) ) { $custom_scripts['cookie_scripts_async'] = $wizard_settings['cookie_scripts_async']; } if ( isset( $wizard_settings['thirdparty_scripts'] ) ) { $custom_scripts['thirdparty_scripts'] = $wizard_settings['thirdparty_scripts']; } if ( isset( $wizard_settings['thirdparty_iframes'] ) ) { $custom_scripts['thirdparty_iframes'] = $wizard_settings['thirdparty_iframes']; } unset( $wizard_settings['statistics_script'] ); unset( $wizard_settings['cookie_scripts'] ); unset( $wizard_settings['cookie_scripts_async'] ); unset( $wizard_settings['thirdparty_scripts'] ); unset( $wizard_settings['thirdparty_iframes'] ); update_option( 'complianz_options_custom-scripts', $custom_scripts ); update_option( 'complianz_options_wizard', $wizard_settings ); } if ( $prev_version && version_compare( $prev_version, '5.1.0', '<' ) ) { update_option( 'cmplz_first_version', '5.0.0', false ); } /** * restore dropshadow in TCF banner. */ if ( $prev_version && version_compare( $prev_version, '5.1.2', '<' ) ) { if ( cmplz_tcf_active() ) { $banners = cmplz_get_cookiebanners(); if ( $banners ) { foreach ( $banners as $banner_item ) { $banner = new CMPLZ_COOKIEBANNER( $banner_item->ID, false ); $banner->use_box_shadow = true; $banner->save(); } } } } if ( $prev_version && version_compare( $prev_version, '5.2.0', '<' ) ) { if ( cmplz_tcf_active() ) { $banners = cmplz_get_cookiebanners(); if ( $banners ) { foreach ( $banners as $banner_item ) { $banner = new CMPLZ_COOKIEBANNER( $banner_item->ID, false ); $banner->colorpalette_button_accept = array( 'background' => '#333', 'border' => '#333', 'text' => '#fff', ); $banner->colorpalette_button_settings = array( 'background' => '#fff', 'border' => '#333', 'text' => '#333', ); $banner->save(); } } } } /** * Change metakeys for eu dataleaks from '{metakey}' to '{metakey}-eu' for consistency between dataleaks . */ if ( $prev_version && version_compare( $prev_version, '5.4.0', '<' ) ) { $args = array( 'numberposts' => - 1, 'post_type' => 'cmplz-dataleak', 'tax_query' => array( array( 'taxonomy' => 'cmplz-region', 'field' => 'slug', 'terms' => 'eu', ), ), ); $posts = get_posts( $args ); $meta_keys = array( 'security-incident-occurred', 'type-of-dataloss', 'reach-of-dataloss', 'risk-of-data-loss', 'what-occurred', 'consequences', 'measures', 'measures_by_person_involved', 'conclusion', ); foreach ( $posts as $post ) { foreach ( $meta_keys as $meta_key ) { $value = get_post_meta( $post->ID, $meta_key, true ); if ( $value ) { update_post_meta( $post->ID, $meta_key . '-eu', $value ); } } } $wizard_settings = get_option( 'complianz_options_wizard' ); //upgrade to checkboxes structure. $value_eu = $value_uk = false; if ( isset( $wizard_settings['dpo_or_gdpr'] ) ) { $value_eu = $wizard_settings['dpo_or_gdpr']; } if ( isset( $wizard_settings['dpo_or_uk_gdpr'] ) ) { $value_uk = $wizard_settings['dpo_or_uk_gdpr']; } if ( ! is_array( $value_eu ) ) { $new_value = array( 'dpo' => 0, 'dpo_uk' => 0, 'gdpr_rep' => 0, 'uk_gdpr_rep' => 0, ); if ( $value_eu ) { $new_value[ $value_eu ] = 1; } if ( $value_uk ) { if ( $value_uk === 'dpo' ) { $value_uk = 'dpo_uk'; } $new_value[ $value_uk ] = 1; } //none is not applicable anymore, as it's multischeckbox unset( $new_value['none'] ); $wizard_settings['dpo_or_gdpr'] = $new_value; unset( $wizard_settings['dpo_or_uk_gdpr'] ); if ( isset( $wizard_settings['ca_name_address_accountable_person'] ) ) { $address = preg_split( '#\n(?!s)#', $wizard_settings['ca_name_address_accountable_person'] ); $name = isset( $address[0] ) ? $address[0] : ''; unset( $address[0] ); $address = implode( "\n", $address ); $wizard_settings['ca_name_accountable_person'] = $name; $wizard_settings['ca_address_accountable_person'] = $address; } update_option( 'complianz_options_wizard', $wizard_settings ); } } if ( $prev_version && version_compare( $prev_version, '5.5.0', '<' ) ) { $wizard_settings = get_option( 'complianz_options_wizard' ); $settings_settings = get_option( 'complianz_options_settings' ); if ( isset( $wizard_settings['use_cdb_api'] ) ) { $settings_settings['use_cdb_api'] = $wizard_settings['use_cdb_api']; $settings_settings['use_cdb_links'] = $wizard_settings['use_cdb_links']; } unset( $wizard_settings['use_cdb_api'] ); unset( $wizard_settings['use_cdb_links'] ); update_option( 'complianz_options_wizard', $wizard_settings ); update_option( 'complianz_options_settings', $settings_settings ); } if ( $prev_version && version_compare( $prev_version, '5.5.0', '<' ) ) { $wizard_settings = get_option( 'complianz_options_wizard' ); $share_data_us = $share_data_eu = 2; if ( isset($wizard_settings['share_data_other_us']) ) { $share_data_us = intval($wizard_settings['share_data_other_us']); } if ( isset($wizard_settings['share_data_other']) ) { $share_data_eu = intval($wizard_settings['share_data_other']); } //share data other parties: indien een van beide "yes", nieuwe yes. Indien een van beide limited, nieuwe "limited". anders no. if ($share_data_us===1 || $share_data_eu ===1) { $share_data = 1; } else if ($share_data_us===3 || $share_data_eu ===3){ $share_data = 3; } else { $share_data = 2; } $wizard_settings['share_data_other'] = $share_data; $us_processors = isset($wizard_settings['processor_us'] ) ? $wizard_settings['processor_us'] : array(); $eu_processors = isset($wizard_settings['processor']) ? $wizard_settings['processor'] : array(); foreach ( $us_processors as $us_processor ) { //check if it's already in the list $key = array_search($us_processor['name'], array_column($eu_processors, 'name')); if ( $key !== false ) unset($us_processors[ $key ]); } //now add the remaining values to the EU list $eu_processors = array_merge($eu_processors, $us_processors); $wizard_settings['processor'] = $eu_processors; $us_thirdparties = isset($wizard_settings['thirdparty_us'] ) ? $wizard_settings['thirdparty_us'] : array(); $eu_thirdparties = isset($wizard_settings['thirdparty']) ? $wizard_settings['thirdparty'] : array(); foreach ( $us_thirdparties as $us_thirdparty ) { //check if it's already in the list $key = array_search($us_thirdparty['name'], array_column($eu_thirdparties, 'name')); if ( $key !== false ) unset($us_thirdparties[ $key ]); } //now add the remaining values to the EU list $eu_thirdparties = array_merge($eu_thirdparties, $us_thirdparties); $wizard_settings['thirdparty'] = $eu_thirdparties; unset($wizard_settings['thirdparty_us']); unset($wizard_settings['processor_us']); update_option( 'complianz_options_wizard', $wizard_settings ); } if ( $prev_version && version_compare( $prev_version, '6.0.0', '<' ) ) { $custom_scripts = get_option( 'complianz_options_custom-scripts' ); $scripts['add_script'] = []; $scripts['block_script'] = []; $scripts['whitelist_script'] = []; if ( ! empty( $custom_scripts['cookie_scripts'] ) ) { $scripts['add_script'][] = [ 'name' => 'Scripts', 'editor' => $custom_scripts['cookie_scripts'], 'async' => '0', 'category' => 'marketing', 'enable_placeholder' => '0', 'placeholder_class' => '', 'placeholder' => '', 'enable_dependency' => '0', 'dependency' => '', 'enable' => '1', ]; } if ( ! empty( $custom_scripts['cookie_scripts_async'] ) ) { $scripts['add_script'][] = [ 'name' => 'Async scripts', 'editor' => $custom_scripts['cookie_scripts_async'], 'async' => '1', 'category' => 'marketing', 'enable_placeholder' => '0', 'placeholder_class' => '', 'placeholder' => '', 'enable_dependency' => '0', 'dependency' => '', 'enable' => '1', ]; } if ( ! empty( $custom_scripts['statistics_script'] ) ) { $scripts['add_script'][] = [ 'name' => 'Statistics scripts', 'editor' => $custom_scripts['statistics_script'], 'async' => '0', 'category' => 'statistics', 'enable_placeholder' => '0', 'placeholder_class' => '', 'placeholder' => '', 'enable_dependency' => '0', 'dependency' => '', 'enable' => '1', ]; } if ( ! empty( $custom_scripts['thirdparty_scripts'] ) ) { $scripts['block_script'][] = [ 'name' => 'Third party scripts', 'urls' => explode( ',', $custom_scripts['thirdparty_scripts'] ), 'category' => 'marketing', 'enable_placeholder' => '0', 'placeholder_class' => '', 'placeholder' => '', 'enable' => '1', ]; } if ( ! empty( $custom_scripts['thirdparty_iframes'] ) ) { $scripts['block_script'][] = [ 'name' => 'Third party iframes', 'urls' => explode( ',', $custom_scripts['thirdparty_iframes'] ), 'category' => 'marketing', 'enable_placeholder' => '0', 'placeholder_class' => '', 'placeholder' => '', 'enable' => '1', ]; } update_option( 'complianz_options_custom-scripts', $scripts ); $banners = cmplz_get_cookiebanners(); if ( $banners ) { foreach ( $banners as $banner_item ) { $banner = new CMPLZ_COOKIEBANNER( $banner_item->ID ); switch ( $banner->use_categories ) { case 'no': $banner->use_categories = 'no'; break; case 'legacy': case 'visible': $banner->use_categories = 'save-preferences'; break; default: $banner->use_categories = 'view-preferences'; } switch ( $banner->position ) { case 'top': $banner->position = 'bottom'; break; case 'bottom': case 'bottom-left': case 'bottom-right': break; default: $banner->position = 'center'; } switch ( $banner->checkbox_style ) { case 'classic': $banner->checkbox_style = 'classic'; break; default: $banner->checkbox_style = 'slider'; } if ( !is_serialized($banner->border_width) ) { $banner->border_width = array( 'top' => 0, 'right' => 0, 'bottom' => 0, 'left' => 0, ); } if ( !isset($banner->border_width['top']) ) $banner->border_width['top'] = 0; if ( !isset($banner->border_width['right']) ) $banner->border_width['right'] = 0; if ( !isset($banner->border_width['bottom']) ) $banner->border_width['bottom'] = 0; if ( !isset($banner->border_width['left']) ) $banner->border_width['left'] = 0; if (!is_serialized($banner_item->dismiss)) { $banner->revoke = array( 'text' => $banner_item->revoke, 'show' => ! $banner_item->hide_revoke, ); } if (!is_serialized($banner_item->header) ) { if ( strlen($banner_item->header)<4 ) { $banner->header = array( 'text' => '', 'show' => false, ); } else { $banner->header = array( 'text' => $banner_item->header, 'show' => true, ); } } if (!is_serialized($banner_item->accept_informational)) { $banner->accept_informational = array( 'text' => $banner_item->accept_informational, 'show' => true, ); } if (!is_serialized($banner_item->category_prefs)) { $banner->category_prefs = array( 'text' => $banner_item->category_prefs, 'show' => true, ); } if (!is_serialized($banner_item->category_stats)) { $banner->category_stats = array( 'text' => $banner_item->category_stats, 'show' => true, ); } if (!is_serialized($banner_item->category_all)) { $banner->category_all = array( 'text' => $banner_item->category_all, 'show' => true, ); } $banner->use_box_shadow = true; $banner->use_logo = 'hide'; $banner->close_button = false; $banner->save(); } } $wizard_settings = get_option( 'complianz_options_wizard' ); if ( isset( $wizard_settings['compile_statistics'] ) && $wizard_settings['compile_statistics'] === 'yes-anonymous' ) { $wizard_settings['compile_statistics'] = 'yes'; update_option( 'complianz_options_wizard', $wizard_settings ); } } if ( $prev_version && version_compare( $prev_version, '6.0.0', '>=' ) ) { $warning_id = 'upgraded_to_6'; $dismissed_warnings = get_option( 'cmplz_dismissed_warnings', array() ); if ( !in_array($warning_id, $dismissed_warnings) ) { $dismissed_warnings[] = $warning_id; update_option('cmplz_dismissed_warnings', $dismissed_warnings ); delete_transient('complianz_warnings'); delete_transient('complianz_warnings_admin_notices'); } } if ( $prev_version && version_compare( $prev_version, '6.0.2', '<' ) ) { $banners = cmplz_get_cookiebanners(); if ( $banners ) { foreach ( $banners as $banner_item ) { $banner = new CMPLZ_COOKIEBANNER( $banner_item->ID ); if ( $banner->banner_width == 476 ) { $banner->banner_width = 526; $banner->save(); } } } } if ( $prev_version && version_compare( $prev_version, '6.0.8', '<' ) ) { $banners = cmplz_get_cookiebanners(); if ( $banners ) { foreach ( $banners as $banner_item ) { $banner = new CMPLZ_COOKIEBANNER( $banner_item->ID ); if ( $banner->use_categories === 'hidden' ) { $banner->use_categories = 'view-preferences'; $banner->save(); } } } } if ( $prev_version && version_compare( $prev_version, '6.1.0', '<' ) ) { $banners = cmplz_get_cookiebanners(); if ( $banners ) { foreach ( $banners as $banner_item ) { $banner = new CMPLZ_COOKIEBANNER( $banner_item->ID ); $banner->legal_documents = true; $banner->save(); } } } if ( $prev_version && version_compare( $prev_version, '6.1.4.1', '<' ) ) { $wizard_settings = get_option( 'complianz_options_wizard' ); if ( isset( $wizard_settings['create_banner_elementor'] ) ) { if ($wizard_settings['create_banner_elementor']==='yes' ) { update_option('cmplz_elementor_banner_dropped', true); } $wizard_settings['create_banner_elementor'] = 'no'; update_option( 'complianz_options_wizard', $wizard_settings ); $post_id = get_option('cmplz_elementor_autogenerated' ); $args = array( 'post_status' => 'draft', 'ID' => $post_id, ); wp_update_post($args); } } if ( $prev_version && version_compare( $prev_version, '6.2.2', '<' ) ) { $wizard_settings = get_option( 'complianz_options_wizard' ); if ( isset( $wizard_settings['data_request_forms'] ) ) { $wizard_settings['datarequest'] = $wizard_settings['data_request_forms']; unset($wizard_settings['data_request_forms']); update_option( 'complianz_options_wizard', $wizard_settings ); } } // 6.3 United States Upgrade if ( $prev_version && version_compare( $prev_version, '6.3.0', '<' ) ) { $wizard_settings = get_option( 'complianz_options_wizard' ); if ( isset( $wizard_settings['california'] ) && $wizard_settings['california'] === 'yes' ) { unset( $wizard_settings['california'] ); $wizard_settings['us_states']['cal'] = 1; } $mapping_array = [ '1' => [ 'first-lastname', 'address' ], '2' => [ 'marital-status' ], '5' => [ 'date-of-birth' ], '6' => [ 'accountname-alias' ], '7' => [ 'sex' ], '3' => [ 'email' ], '15' => [ 'phone' ], '8' => [ 'ip' ], '4' => [ 'financial-information' ], '10' => [ 'medical' ], '11' => [ 'internet' ], '9' => [ 'geo' ], '12' => [ 'photos' ], '13' => [ 'social-media' ], '14' => [ 'criminal' ], ]; foreach ( COMPLIANZ::$config->purposes as $key => $label ) { if ( !isset($wizard_settings[$key . '_retain_data']) ) { $wizard_settings[$key . '_retain_data'] = '1'; } if (isset($wizard_settings[$key . '_data_purpose']) ) { $values = $wizard_settings[$key . '_data_purpose']; foreach ($values as $value => $enabled) { $enabled = $enabled==='1'; if ( $enabled && isset($mapping_array[ $value ])) { $new_values = $mapping_array[ $value ]; foreach ($new_values as $new_value ) { $wizard_settings[$key . '_data_purpose_us'][$new_value] = 1; } } } unset($wizard_settings[$key . '_data_purpose']); } if ( isset($wizard_settings[$key . '_data_purpose_us'] ) ) { $values = $wizard_settings[$key . '_data_purpose_us']; foreach ($values as $value => $enabled) { $enabled = $enabled==='1'; if ($enabled && $value === 'any-other') { unset($wizard_settings[$key . '_data_purpose_us'][$value]); } } } } update_option( 'complianz_options_wizard', $wizard_settings ); $banners = cmplz_get_cookiebanners(); if ( $banners ) { foreach ( $banners as $banner_item ) { $banner = new CMPLZ_COOKIEBANNER( $banner_item->ID ); $revoke = $banner_item->revoke; if ( is_serialized( $revoke ) ) { $revoke = unserialize( $revoke ); } if ( isset( $revoke['text'] ) ) { $banner->revoke = $revoke['text']; } if ( isset( $revoke['show'] ) ) { if ( $revoke['show'] == '1' ) { $banner->manage_consent_options = 'hover-hide-mobile'; } else { $banner->manage_consent_options = 'hide-everywhere'; } } $banner->save(); } } } if ( $prev_version && version_compare( $prev_version, '6.3.2', '<' ) ) { //upgrade statistics a/b testing $general_settings = get_option( 'complianz_options_settings' ); if ( isset( $general_settings['a_b_testing'] ) && $general_settings['a_b_testing'] ) { $general_settings['a_b_testing_buttons'] = true; } update_option( 'complianz_options_settings', $general_settings ); } if ( $prev_version && version_compare( $prev_version, '6.3.7', '<' ) ) { $wizard_settings = get_option( 'complianz_options_wizard', [] ); $wizard_settings['enable_cookie_banner']='yes'; $wizard_settings['enable_cookie_blocker']='yes'; update_option( 'complianz_options_wizard', $wizard_settings ); $settings = get_option( 'complianz_options_settings', [] ); $settings['safe_mode'] = $settings['disable_cookie_block'] ?? false; if ( isset($settings['disable_cookie_block']) ) { unset($settings['disable_cookie_block']); } update_option( 'complianz_options_settings', $settings ); } // regenerate css // $banners = cmplz_get_cookiebanners(); // if ( $banners ) { // foreach ( $banners as $banner_item ) { // $banner = new CMPLZ_COOKIEBANNER( $banner_item->ID ); // $banner->save(); // } // } //ensure new capability if ( $prev_version && version_compare( $prev_version, '6.4.1', '<' ) ) { cmplz_add_manage_privacy_capability(); } if ( $force || ( $prev_version && version_compare( $prev_version, '7.0.0', '<' ) ) ) { set_transient('cmplz_redirect_to_settings_page', true, HOUR_IN_SECONDS ); //create new options array $options = get_option( 'cmplz_options', [] ); if ( ! is_array( $options ) ) { $options = []; } $default_id = cmplz_get_default_banner_id(); $banner = new CMPLZ_COOKIEBANNER( $default_id ); if ( $banner->disable_cookiebanner ) { cmplz_update_option_no_hooks( 'enable_cookie_banner', 'no' ); } $license = get_site_option( 'cmplz_license_key' ); if ( $license && !is_multisite() ) { $options[ 'license' ] = $license; } $migrate_js_enabled = false; $old_settings_array = [ 'complianz_options_settings', 'complianz_options_wizard' ]; $wiz = get_option('complianz_options_settings'); $use_country = $wiz['use_country'] ?? false; foreach ( $old_settings_array as $old_setting ) { $settings = get_option( $old_setting, [] ); foreach ( $settings as $id => $value ) { //if type is multicheckbox, change [key1 = 1, key2=1] structure to [key1, key2] $id = strtolower($id); $field = cmplz_get_field( $id ); //tcf fields are not loaded yet, because the upgrade is not completed, so iab_enabled will always return false. //as a workaround we check if the id starts with tcf_ if ( strpos($id, 'tcf_') !== false ){ $field = $id==='tcf_lspact' ? ['type'=>'radio'] : ['type'=>'multicheckbox']; } if ( $field ) { $type = $field['type']; //regions is default radio, but multicheckbox when use_country is enabled if ($id === 'regions' && $use_country) { $type = 'multicheckbox'; } if ($type === 'multicheckbox' && is_array( $value )) { $value = array_filter( $value, static function ( $item ) {return $item == 1;} ); $value = array_keys( $value ); } if ($id === 'which_personal_data_secure') { $new = []; if ( isset($value['1']) || isset($value['16']) ) { $new[] = '1'; } if ( isset($value['2']) || isset($value['4'])) { $new[] = '2'; } if ( isset($value['3']) || isset($value['15']) ) { $new[] = '3'; } if ( isset($value['6']) ) { $new[] = '5'; } if ( isset($value['5']) ) { $new[] = '7'; } if ( isset($value['7']) ) { $new[] = '8'; } if ( isset($value['8']) || isset($value['9']) || isset($value['10']) || isset($value['11']) || isset($value['14']) || isset($value['17']) ) { $new[] = '4'; } $value = $new; } $options[ $id ] = $value; } if ($id === 'enable_migrate_js' && $value) { $migrate_js_enabled = true; } } } if ( !empty($options) ){ update_option( 'cmplz_options', $options ); } if ( $migrate_js_enabled ) { $dismissed_warnings = get_option( 'cmplz_dismissed_warnings', array() ); if ( ! in_array( 'migrate_js', $dismissed_warnings ) ) { $dismissed_warnings[] = 'migrate_js'; update_option('cmplz_dismissed_warnings', $dismissed_warnings, false ); } } //set an activated time, which is used in the cookie scan and geo ip downloads update_option('cmplz_activation_time', strtotime('-1 week'), false); } //disable tcf for free users if ( $prev_version && version_compare( $prev_version, '7.0.3', '<' ) ) { $options = get_option( 'cmplz_options', [] ); if ( !defined('cmplz_premium') ) { $options['uses_ad_cookies_personalized'] = 'no'; update_option( 'cmplz_options', $options ); } } #regenerate cookie policy snapshot. update_option('cmplz_generate_new_cookiepolicy_snapshot', true, false); //always clear warnings cache on update delete_transient('complianz_warnings'); delete_transient('complianz_warnings_admin_notices'); do_action( 'cmplz_upgrade', $prev_version ); update_option( 'cmplz-current-version', $new_version ); }