????JFIF??x?x????'
| Server IP : 79.136.114.73 / Your IP : 216.73.216.48 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/www.astacus.se/wp-content/themes/x/framework/functions/global/admin/ |
Upload File : |
<?php
// =============================================================================
// FUNCTIONS/GLOBAL/ADMIN/MIGRATION.PHP
// -----------------------------------------------------------------------------
// Handles theme migration.
// =============================================================================
// =============================================================================
// TABLE OF CONTENTS
// -----------------------------------------------------------------------------
// 01. Version Migration
// 02. Version Migration Notice
// 03. Theme Migration
// 04. Term Splitting Migration (WordPress 4.2 Breaking Change)
// =============================================================================
// Version Migration
// =============================================================================
function x_version_migration() {
$prior = get_option( 'x_version', false );
//
// Store the version on first install
//
if ( false === $prior ) {
update_option( 'x_version', X_VERSION );
update_option( 'x_dismiss_update_notice', true );
return;
}
if ( version_compare( $prior, X_VERSION, '<' ) ) {
//
// If $prior is less than 2.2.0.
//
if ( version_compare( $prior, '2.2.0', '<' ) ) {
$mods = get_theme_mods();
foreach( $mods as $key => $value ) {
update_option( $key, $value );
}
}
//
// If $prior is less than 3.1.0.
//
if ( version_compare( $prior, '3.1.0', '<' ) ) {
$stack = get_option( 'x_stack' );
$design = ( $stack == 'integrity' ) ? '_' . get_option( 'x_integrity_design' ) : '';
$stack_safe = ( $stack == 'icon' ) ? 'integrity' : $stack;
$updated = array(
'x_layout_site' => get_option( 'x_' . $stack . '_layout_site' ),
'x_layout_site_max_width' => get_option( 'x_' . $stack . '_sizing_site_max_width' ),
'x_layout_site_width' => get_option( 'x_' . $stack . '_sizing_site_width' ),
'x_layout_content' => get_option( 'x_' . $stack . '_layout_content' ),
'x_layout_content_width' => get_option( 'x_' . $stack_safe . '_sizing_content_width' ),
'x_layout_sidebar_width' => get_option( 'x_icon_sidebar_width' ),
'x_design_bg_color' => get_option( 'x_' . $stack . $design . '_bg_color' ),
'x_design_bg_image_pattern' => get_option( 'x_' . $stack . $design . '_bg_image_pattern' ),
'x_design_bg_image_full' => get_option( 'x_' . $stack . $design . '_bg_image_full' ),
'x_design_bg_image_full_fade' => get_option( 'x_' . $stack . $design . '_bg_image_full_fade' )
);
foreach ( $updated as $key => $value ) {
update_option( $key, $value );
}
}
//
// If $prior is less than 4.0.0.
//
if ( version_compare( $prior, '4.0.0', '<' ) ) {
$updated = array(
'x_pre_v4' => true
);
foreach ( $updated as $key => $value ) {
update_option( $key, $value );
}
}
//
// If $prior is less than 4.0.4.
//
if ( version_compare( $prior, '4.0.4', '<' ) ) {
$stack = get_option( 'x_stack' );
$navbar_font_size = get_option( 'x_navbar_font_size', 12 );
if ( $stack == 'integrity' ) {
$link_spacing = round( intval( $navbar_font_size ) * 1.429 );
$link_letter_spacing = 2;
} else if ( $stack == 'renew' ) {
$link_spacing = intval( $navbar_font_size );
$link_letter_spacing = 1;
} else if ( $stack == 'icon' ) {
$link_spacing = 5;
$link_letter_spacing = 1;
} else if ( $stack == 'ethos' ) {
$link_spacing = get_option( 'x_ethos_navbar_desktop_link_side_padding' );
$link_letter_spacing = 1;
}
$updated = array(
'x_navbar_adjust_links_top_spacing' => $link_spacing,
'x_navbar_letter_spacing' => $link_letter_spacing
);
foreach ( $updated as $key => $value ) {
update_option( $key, $value );
}
}
//
// If $prior is less than 4.2.0.
//
if ( version_compare( $prior, '4.2.0', '<' ) ) {
$stack = get_option( 'x_stack' );
$design = get_option( 'x_integrity_design' );
$h_base = ( intval( get_option( 'x_body_font_size', 14 ) ) + intval( get_option( 'x_content_font_size', 14 ) ) ) / 2;
$h1_font_size = $h_base * 4;
$h2_font_size = $h_base * 2.857;
$h3_font_size = $h_base * 2.285;
$h4_font_size = $h_base * 1.714;
$h5_font_size = $h_base * 1.5;
$h6_font_size = $h_base * 1;
if ( $stack == 'integrity' && $design == 'dark' ) {
$logo_font_color = '#ffffff';
$headings_font_color = '#ffffff';
$body_font_color = '#666666';
} else if ( $stack == 'renew' ) {
$logo_font_color = '#ffffff';
$headings_font_color = '#2c3e50';
$body_font_color = '#28323f';
} else if ( $stack == 'icon' ) {
$logo_font_color = '#566471';
$headings_font_color = '#566471';
$body_font_color = '#566471';
} else if ( $stack == 'ethos' ) {
$logo_font_color = '#ffffff';
$headings_font_color = '#333333';
$body_font_color = '#7a7a7a';
} else {
$logo_font_color = '#272727';
$headings_font_color = '#272727';
$body_font_color = '#7a7a7a';
}
$logo_font_color = ( get_option( 'x_logo_font_color_enable' ) == '1' ) ? get_option( 'x_logo_font_color' ) : $logo_font_color;
$headings_font_color = ( get_option( 'x_headings_font_color_enable' ) == '1' ) ? get_option( 'x_headings_font_color' ) : $headings_font_color;
$body_font_color = ( get_option( 'x_body_font_color_enable' ) == '1' ) ? get_option( 'x_body_font_color' ) : $body_font_color;
$px_to_em_letter_spacing_logo = round( intval( get_option( 'x_logo_letter_spacing', 1 ) ) / intval( get_option( 'x_logo_font_size', 54 ) ), 3 );
$px_to_em_letter_spacing_navbar = round( intval( get_option( 'x_navbar_letter_spacing', 1 ) ) / intval( get_option( 'x_navbar_font_size', 12 ) ), 3 );
$px_to_em_letter_spacing_h1 = round( intval( get_option( 'x_headings_letter_spacing', 1 ) ) / $h1_font_size, 3 );
$px_to_em_letter_spacing_h2 = round( intval( get_option( 'x_headings_letter_spacing', 1 ) ) / $h2_font_size, 3 );
$px_to_em_letter_spacing_h3 = round( intval( get_option( 'x_headings_letter_spacing', 1 ) ) / $h3_font_size, 3 );
$px_to_em_letter_spacing_h4 = round( intval( get_option( 'x_headings_letter_spacing', 1 ) ) / $h4_font_size, 3 );
$px_to_em_letter_spacing_h5 = round( intval( get_option( 'x_headings_letter_spacing', 1 ) ) / $h5_font_size, 3 );
$px_to_em_letter_spacing_h6 = round( intval( get_option( 'x_headings_letter_spacing', 1 ) ) / $h6_font_size, 3 );
$updated = array(
'x_google_fonts_subsets' => get_option( 'x_custom_font_subsets' ),
'x_google_fonts_subset_cyrillic' => get_option( 'x_custom_font_subset_cyrillic' ),
'x_google_fonts_subset_greek' => get_option( 'x_custom_font_subset_greek' ),
'x_google_fonts_subset_vietnamese' => get_option( 'x_custom_font_subset_vietnamese' ),
'x_logo_font_color' => $logo_font_color,
'x_logo_letter_spacing' => $px_to_em_letter_spacing_logo,
'x_navbar_letter_spacing' => $px_to_em_letter_spacing_navbar,
'x_headings_font_color' => $headings_font_color,
'x_h1_letter_spacing' => $px_to_em_letter_spacing_h1,
'x_h2_letter_spacing' => $px_to_em_letter_spacing_h2,
'x_h3_letter_spacing' => $px_to_em_letter_spacing_h3,
'x_h4_letter_spacing' => $px_to_em_letter_spacing_h4,
'x_h5_letter_spacing' => $px_to_em_letter_spacing_h5,
'x_h6_letter_spacing' => $px_to_em_letter_spacing_h6,
'x_body_font_color' => $body_font_color
);
foreach ( $updated as $key => $value ) {
update_option( $key, $value );
}
}
//
// Update stored version number.
//
update_option( 'x_version', X_VERSION );
//
// Turn on the version migration notice.
//
delete_option( 'x_dismiss_update_notice' );
//
// Enable validation reminder
//
delete_option( 'x_dismiss_validation_notice' );
//
// Bust caches.
//
x_bust_google_fonts_cache();
}
}
add_action( 'admin_init', 'x_version_migration' );
// Version Migration Notice
// =============================================================================
//
// 1. Output notice.
// 2. Dismiss notice.
//
function x_version_migration_notice() { // 1
if ( false === get_option( 'x_dismiss_update_notice', false ) ) {
x_tco()->admin_notice( array(
'message' => __( 'Congratulations, you've successfully updated X! Be sure to <a href="//theme.co/changelog/" target="_blank">check out the release notes and changelog</a> to see all that has changed, especially if you're utilizing any additional plugins or have made modifications to your website via a child theme.', '__x__' ),
'dismissible' => true,
'ajax_dismiss' => 'x_dismiss_update_notice'
) );
}
}
add_action( 'admin_notices', 'x_version_migration_notice' );
function x_version_migration_notice_dismiss() { // 2
update_option( 'x_dismiss_update_notice', true );
wp_send_json_success();
}
add_action( 'wp_ajax_x_dismiss_update_notice', 'x_version_migration_notice_dismiss' );
// Theme Migration
// =============================================================================
function x_theme_migration( $new_name, $new_theme ) {
if ( $new_theme == 'X' || $new_theme->get( 'Template' ) == 'x' ) {
return false;
}
include_once( ABSPATH . '/wp-admin/includes/plugin.php' );
$plugins = get_plugins();
$x_plugins = array();
foreach ( (array) $plugins as $plugin => $headers ) {
if ( ! empty( $headers['X Plugin'] ) ) {
$x_plugins[] = $plugin;
}
}
deactivate_plugins( $x_plugins );
}
add_action( 'switch_theme', 'x_theme_migration', 10, 2 );
// Term Splitting Migration (WordPress 4.2 Breaking Change)
// =============================================================================
function x_split_shared_term_migration( $term_id, $new_term_id, $term_taxonomy_id, $taxonomy ) {
//
// Ethos filterable index categories.
//
if ( $taxonomy == 'category' ) {
$setting = array_map( 'trim', explode( ',', get_option( 'x_ethos_filterable_index_categories' ) ) );
foreach ( $setting as $index => $old_term ) {
if ( $old_term == (string) $term_id ) {
$setting[$index] = (string) $new_term_id;
}
}
update_option( 'x_ethos_filterable_index_categories', implode( ', ', $setting ) );
}
//
// Portfolio categories.
//
if ( $taxonomy == 'portfolio-category' ) {
$post_ids = get_posts( array(
'fields' => 'ids',
'meta_key' => '_x_portfolio_category_filters',
'meta_value' => '',
'meta_compare' => '!='
) );
foreach ( $post_ids as $post_id ) {
$post_terms = get_post_meta( $post_id, '_x_portfolio_category_filters', true );
if ( is_array( $post_terms ) ) {
foreach ( $post_terms as $index => $old_term ) {
if ( $term_id == $old_term) {
$post_terms[$index] = $new_term_id;
}
}
}
update_post_meta( $post_id, '_x_portfolio_category_filters', $post_terms );
}
}
}
add_action( 'split_shared_term', 'x_split_shared_term_migration' );