芝麻web文件管理V1.00
编辑当前文件:/home2/sdektunc/timucuy.com/wp-content/themes/customizr/core/class-fire-init_retro_compat.php
old_socials ); /* * old socials were in the form * array( 'tc_twitter' => array( .., default=>'[url]' ,..) ) * need to be ported in the form * array( 'tc_twitter' => '[url]' ) * before parse them in the options. */ $_social_options = array(); foreach ( $_old_filtered_socials as $social => $attrs ) { if ( isset( $attrs['default'] ) ) { $_social_options[$social] = $attrs['default']; } } //merge options with the defaults socials $_options = wp_parse_args( $_options, $_social_options ); $_new_socials = array(); $_index = 0; /* * rss needs a special treatment for old users, it was a default * If it doesn't exist in the options we have to set it with the default value * if it exists but is null it will be skipped */ foreach ( $_old_filtered_socials as $_old_social_id => $attributes ) { if ( !empty( $_options[ $_old_social_id ] ) ) { //build new attributes $_title = isset( $attributes[ 'link_title' ] ) ? esc_attr( $attributes[ 'link_title' ] ) : ''; $_social_icon = str_replace( array( 'tc_email', 'tc_'), array( 'fa-envelope', 'fa-' ), $_old_social_id ); // email needs a special treatment $_social_link = esc_url_raw( 'tc_email' == $_old_social_id ? sprintf( 'mailto:%s', $_options[ $_old_social_id ] ) : $_options[ $_old_social_id ] ); if ( empty( $_social_link ) ) { continue; } //create module array_push( $_new_socials, array( 'id' => "czr_social_module_{$_index}", 'title' => $_title, 'social-icon' => $_social_icon, 'social-link' => $_social_link, 'social-target' => 1, ) ); $_index++; } } if ( !empty( $_new_socials ) ) { $theme_options[ 'tc_social_links' ] = $_new_socials; } //save the state in the options $theme_options[ '__moved_opts' ] = isset( $theme_options[ '__moved_opts' ] ) && is_array( $theme_options[ '__moved_opts' ] ) ? $theme_options[ '__moved_opts' ] : array(); $theme_options[ '__moved_opts' ][] = 'old_socials'; return $theme_options; } /* * returns array() the new set of options or empty if there's nothing to move */ function czr_fn_maybe_move_old_css_to_wp_embed( $theme_options ) { $_options = $theme_options; /* * When Memcached is active transients (object cached) might be not persistent * we cannot really rely on them :/ */ //nothing to do if already moved if ( isset( $_options[ '__moved_opts' ] ) && in_array( 'custom_css', $_options[ '__moved_opts' ] ) ) { return array(); } /* * FROM * https://make.wordpress.org/core/2016/11/26/extending-the-custom-css-editor/ */ if ( function_exists( 'wp_update_custom_css_post' ) ) { // Migrate any existing theme CSS to the core option added in WordPress 4.7. $css = array_key_exists( 'tc_custom_css', $_options ) ? html_entity_decode( esc_html( $_options['tc_custom_css'] ) ) : ''; if ( $css ) { $core_css = wp_get_custom_css(); // Preserve any CSS already added to the core option. //avoid duplications $core_css = str_replace( $css, '', $core_css ); $return = wp_update_custom_css_post( $core_css . "\n" . $css ); } //save the state in the options $theme_options[ '__moved_opts' ] = isset( $theme_options[ '__moved_opts' ] ) && is_array( $theme_options[ '__moved_opts' ] ) ? $theme_options[ '__moved_opts' ] : array(); $theme_options[ '__moved_opts' ][] = 'custom_css'; return $theme_options; } return array(); } /* * returns array() the new set of options or empty if there's nothing to move */ function czr_fn_maybe_move_classic_skin_to_modern( $theme_options ) { //nothing to do if already moved if ( isset( $theme_options[ '__moved_opts' ] ) && in_array( 'classic_skin', $theme_options[ '__moved_opts' ] ) ) { return array(); } /* * If classic skin not set or new skin color set just flag the classic skin ported and return the modified theme_options * so that, next time, we don't do what follows */ $_classic_skin_is_set = isset( $theme_options[ 'tc_skin' ] ) && !empty( $theme_options[ 'tc_skin' ] ); $_new_skin_is_set = isset( $theme_options[ 'tc_skin_color' ] ) && !empty( $theme_options[ 'tc_skin_color' ] ); if ( !$_classic_skin_is_set || $_new_skin_is_set ) { //save the state in the options $theme_options[ '__moved_opts' ] = isset( $theme_options[ '__moved_opts' ] ) && is_array( $theme_options[ '__moved_opts' ] ) ? $theme_options[ '__moved_opts' ] : array(); $theme_options[ '__moved_opts' ][] = 'classic_skin'; return $theme_options; } //get skin color from classic skin value, which is in the form color_name.css $_color_map = CZR___::$instance->skin_classic_color_map; $_active_skin = $theme_options[ 'tc_skin' ]; //mapped skin case if ( ( false != $_active_skin && isset( $_color_map[$_active_skin][0] ) ) ) { $_skin_color = $_color_map[$_active_skin][0]; } //treat custom skin color case: in the form custom-skin-{hex}.css else { $match = 0; $_skin_color = preg_replace( '|^custom\-skin\-((?:[A-Fa-f0-9]{3}){1,2})\.css$|', '$1', $_active_skin, 1, $match ); $_skin_color = $match ? "{#$_skin_color}" : false; } if ( $_skin_color ) { $theme_options[ 'tc_skin_color' ] = "$_skin_color"; } /* * Whether or not the skin color match is found we did what we had to * so flag it and return $theme_options */ //save the state in the options $theme_options[ '__moved_opts' ] = isset( $theme_options[ '__moved_opts' ] ) && is_array( $theme_options[ '__moved_opts' ] ) ? $theme_options[ '__moved_opts' ] : array(); $theme_options[ '__moved_opts' ][] = 'classic_skin'; return $theme_options; } /* * In the classic Customizr style we have only one option that controls the sticky header behavior 'tc_sticky_header' (boolean) * In the modern Customizr style this option is splitted in two 'tc_header_desktop_sticky', 'tc_header_mobile_sticky' * These modern options define the sticky behavior as an array of the type: * array( * 'no_stick', * 'stick_up' (default), * 'stick_always' * ) * We'll move the classic option following this map * //tc_sticky_header (bool) => 'tc_header_desktop_sticky' (string) | 'tc_header_mobile_sticky' (string) * 0 (false) => 'no_stick' | 'no_stick' * 1 (true) => 'stick_up' | 'sticky_up' */ /* * returns array() the new set of options or empty if there's nothing to move */ function czr_fn_maybe_move_classic_sticky_header_to_modern( $theme_options ) { /* * When Memcached is active transients (object cached) might be not persistent * we cannot really rely on them :/ */ //nothing to do if new user //if ( czr_fn_user_started_before_version( '3.4.39', '1.2.40' ) ) // return array(); //nothing to do if already moved if ( isset( $theme_options[ '__moved_opts' ] ) && in_array( 'classic_sticky_header', $theme_options[ '__moved_opts' ] ) ) { return array(); } if ( isset( $theme_options[ 'tc_sticky_header' ] ) ) { $_classic_sticky_header = $theme_options[ 'tc_sticky_header' ]; //let's now port the classic option to the modern if classic sticky option set and modern not set if ( $_classic_sticky_header ) { if ( !isset( $theme_options[ 'tc_header_desktop_sticky' ] ) ) $theme_options[ 'tc_header_desktop_sticky' ] = 'stick_up'; if ( !isset( $theme_options[ 'tc_header_mobile_sticky' ] ) ) $theme_options[ 'tc_header_mobile_sticky' ] = 'stick_up'; } else { if ( !isset( $theme_options[ 'tc_header_desktop_sticky' ] ) ) $theme_options[ 'tc_header_desktop_sticky' ] = 'no_stick'; if ( !isset( $theme_options[ 'tc_header_mobile_sticky' ] ) ) $theme_options[ 'tc_header_mobile_sticky' ] = 'no_stick'; } } //In any case let's mark the porting done //save the state in the options $theme_options[ '__moved_opts' ] = isset( $theme_options[ '__moved_opts' ] ) && is_array( $theme_options[ '__moved_opts' ] ) ? $theme_options[ '__moved_opts' ] : array(); $theme_options[ '__moved_opts' ][] = 'classic_sticky_header'; return $theme_options; } /* * In the classic Customizr style we have only one option that controls the wc cart displaying in the header 'tc_woocommerce_header_cart' (bool) * In the modern Customizr style this option is splitted in two 'tc_header_desktop_wc_cart' (string), 'tc_header_mobile_wc_cart' (bool) * 'tc_header_desktop_wc_cart' is an array of the type: * array( * 'none', * 'topbar' (default), * 'navbar' * ) * We'll move the classic option following this map * //'tc_woocommerce_header_cart' (bool) => 'tc_header_desktop_wc_cart' (string) | 'tc_header_mobile_wc_cart' (bool) * 0 (false) => 'none' | 0 (false) * 1 (true) => 'topbar' | 1 (true) */ /* * returns array() the new set of options or empty if there's nothing to move */ function czr_fn_maybe_move_classic_header_wccart_to_modern( $theme_options ) { /* * When Memcached is active transients (object cached) might be not persistent * we cannot really rely on them :/ */ //nothing to do if new user //if ( czr_fn_user_started_before_version( '3.4.39', '1.2.40' ) ) // return array(); //nothing to do if already moved if ( isset( $theme_options[ '__moved_opts' ] ) && in_array( 'classic_header_wccart', $theme_options[ '__moved_opts' ] ) ) { return array(); } if ( isset( $theme_options[ 'tc_woocommerce_header_cart' ]) ) { $_classic_header_wc_cart = $theme_options[ 'tc_woocommerce_header_cart' ]; //let's now port the classic option to the modern if classic wccart option set and modern not set if ( !isset( $theme_options[ 'tc_header_desktop_wc_cart' ] ) ) $theme_options[ 'tc_header_desktop_wc_cart' ] = $_classic_header_wc_cart ? 'topbar' : 'none'; if ( !isset( $theme_options[ 'tc_header_mobile_wc_cart' ] ) ) $theme_options[ 'tc_header_mobile_wc_cart' ] = $_classic_header_wc_cart; } //In any case let's mark the porting done //save the state in the options $theme_options[ '__moved_opts' ] = isset( $theme_options[ '__moved_opts' ] ) && is_array( $theme_options[ '__moved_opts' ] ) ? $theme_options[ '__moved_opts' ] : array(); $theme_options[ '__moved_opts' ][] = 'classic_header_wccart'; return $theme_options; } /* * In the classic Customizr style we have only one option that controls the tagline displaying in the header 'tc_show_tagline' (bool) * In the modern Customizr style this option is splitted in two 'tc_header_desktop_tagline' (string), 'tc_header_mobile_tagline' (bool) * 'tc_header_desktop_wc_cart' is an array of the type: * array( * 'none', * 'topbar', * 'brand_below' (default), * 'brand_next' * ) * We'll move the classic option following this map * //'tc_show_tagline' (bool) => 'tc_header_desktop_tagline' (string) | 'tc_header_mobile_tagline' (bool) * 0 (false) => 'none' | 0 (false) * 1 (true) => 'brand_below' | 1 (true) */ /* * returns array() the new set of options or empty if there's nothing to move */ function czr_fn_maybe_move_classic_header_tagline_to_modern( $theme_options ) { /* * When Memcached is active transients (object cached) might be not persistent * we cannot really rely on them :/ */ //nothing to do if new user //if ( czr_fn_user_started_before_version( '3.4.39', '1.2.40' ) ) // return array(); //nothing to do if already moved if ( isset( $theme_options[ '__moved_opts' ] ) && in_array( 'classic_header_tagline', $theme_options[ '__moved_opts' ] ) ) { return array(); } if ( isset( $theme_options[ 'tc_show_tagline' ] ) ) { $_classic_header_tagline = $theme_options[ 'tc_show_tagline' ]; //let's now port the classic option to the modern if classic wccart option set and modern not set if ( !isset( $theme_options[ 'tc_header_desktop_tagline' ] ) ) $theme_options[ 'tc_header_desktop_tagline' ] = $_classic_header_tagline ? 'brand_below' : 'none'; if ( !isset( $theme_options[ 'tc_header_mobile_tagline' ] ) ) $theme_options[ 'tc_header_mobile_tagline' ] = $_classic_header_tagline; } //In any case let's mark the porting done //save the state in the options $theme_options[ '__moved_opts' ] = isset( $theme_options[ '__moved_opts' ] ) && is_array( $theme_options[ '__moved_opts' ] ) ? $theme_options[ '__moved_opts' ] : array(); $theme_options[ '__moved_opts' ][] = 'classic_header_tagline'; return $theme_options; } /* * Before v.4.0.12(2.0.17) 'tc_header_mobile_search' was a boolean that expressed * whether or not displaying the search in the mobile header. * Its default value was 1 (true) which meant displaying the mobile search in the mobile menu. * * Since v.4.0.12(2.0.17) it's a multichoice expressing where to display the search in mobiles * 'none' => do not display * 'navbar' => in the navbar next to the (wc_cart) menu button * 'menu' => inside the collapsing mobile menu * * We'll move the old option following this map * 0 (false) => 'none' * 1 (true) => 'menu' */ /* * returns array() the new set of options or empty if there's nothing to move */ function czr_fn_maybe_move_old_header_mobile_search_to_new( $theme_options ) { //nothing to do if already moved if ( isset( $theme_options[ '__moved_opts' ] ) && in_array( 'header_mobile_search', $theme_options[ '__moved_opts' ] ) ) { return array(); } if ( isset( $theme_options[ 'tc_header_mobile_search' ] ) ) { $_old_header_mobile_search = $theme_options[ 'tc_header_mobile_search' ]; $theme_options[ 'tc_header_mobile_search' ] = 0 === $_old_header_mobile_search ? 'none' : 'menu'; } //In any case let's mark the porting done //save the state in the options $theme_options[ '__moved_opts' ] = isset( $theme_options[ '__moved_opts' ] ) && is_array( $theme_options[ '__moved_opts' ] ) ? $theme_options[ '__moved_opts' ] : array(); $theme_options[ '__moved_opts' ][] = 'header_mobile_search'; return $theme_options; } /* * Before v.4.0.17(2.0.24) 'tc_header_desktop_topbar' was a boolean that expressed * whether or not displaying the search in the desktop header. * Its default value was 0 (false) which meant NOT displaying the mobile search in the dektop header. * * Since v.4.0.17(2.0.24) it's a multichoice expressing where to display the topbar in different devices * 'none' => do not display * 'desktop' => in the desktop header * 'mobile' => in the mobile header * 'desktop_mobile' => both in desktop and mobile header * * We'll move the old option to the new 'tc_header_show_topbar' following this map * 0 (false) => 'none' * 1 (true) => 'desktop_mobile' */ /* * returns array() the new set of options or empty if there's nothing to move */ function czr_fn_maybe_move_old_header_topbar_to_new( $theme_options ) { //nothing to do if already moved if ( isset( $theme_options[ '__moved_opts' ] ) && in_array( 'header_topbar', $theme_options[ '__moved_opts' ] ) ) { return array(); } if ( isset( $theme_options[ 'tc_header_desktop_topbar' ] ) ) { $_old_header_desktop_topbar = $theme_options[ 'tc_header_desktop_topbar' ]; $theme_options[ 'tc_header_show_topbar' ] = 0 === $_old_header_desktop_topbar ? 'none' : 'desktop_mobile'; } //In any case let's mark the porting done //save the state in the options $theme_options[ '__moved_opts' ] = isset( $theme_options[ '__moved_opts' ] ) && is_array( $theme_options[ '__moved_opts' ] ) ? $theme_options[ '__moved_opts' ] : array(); $theme_options[ '__moved_opts' ][] = 'header_topbar'; return $theme_options; } /* * Before v.4.0.17(2.0.24) 'tc_social_in_header' was a boolean that expressed * whether or not displaying the search in the desktop topbar. * Its default value was 1 (true) which meant displaying the mobile search in the dektop topbar. * * Since v.4.0.17(2.0.24) it's a multichoice expressing where to display the topbar in different devices * 'none' => do not display * 'desktop' => in the desktop topbar * 'mobile' => in the mobile topbar * 'desktop_mobile' => both in desktop and mobile topbar * * We'll move the old option to the new 'tc_header_show_socials' following this map * 0 (false) => 'none' * 1 (true) => 'desktop_mobile' */ /* * returns array() the new set of options or empty if there's nothing to move */ function czr_fn_maybe_move_old_header_socials_to_new( $theme_options ) { //nothing to do if already moved if ( isset( $theme_options[ '__moved_opts' ] ) && in_array( 'header_socials', $theme_options[ '__moved_opts' ] ) ) { return array(); } if ( isset( $theme_options[ 'tc_social_in_header' ] ) ) { $_old_header_desktop_socials = $theme_options[ 'tc_social_in_header' ]; $theme_options[ 'tc_header_show_socials' ] = 0 === $_old_header_desktop_socials ? 'none' : 'desktop_mobile'; } //In any case let's mark the porting done //save the state in the options $theme_options[ '__moved_opts' ] = isset( $theme_options[ '__moved_opts' ] ) && is_array( $theme_options[ '__moved_opts' ] ) ? $theme_options[ '__moved_opts' ] : array(); $theme_options[ '__moved_opts' ][] = 'header_socials'; return $theme_options; }