From 69c17f9c1942fd0d6a5ea941636e87723b8a6fe2 Mon Sep 17 00:00:00 2001 From: Zach van Rijn Date: Wed, 21 Jul 2021 16:19:29 -0500 Subject: dos2unix on all .php files, begin paring down admin page and site branding. --- inc/theme-update/astra-update-functions.php | 6264 ++++++++++---------- inc/theme-update/class-astra-pb-compatibility.php | 372 +- .../class-astra-theme-background-updater.php | 800 +-- inc/theme-update/class-astra-theme-update.php | 1968 +++--- .../class-astra-theme-wp-background-process.php | 136 +- 5 files changed, 4770 insertions(+), 4770 deletions(-) (limited to 'inc/theme-update') diff --git a/inc/theme-update/astra-update-functions.php b/inc/theme-update/astra-update-functions.php index 5bb286d..0d21d26 100644 --- a/inc/theme-update/astra-update-functions.php +++ b/inc/theme-update/astra-update-functions.php @@ -1,3132 +1,3132 @@ - array( - 'top' => $btn_vertical_padding, - 'right' => $btn_horizontal_padding, - 'bottom' => $btn_vertical_padding, - 'left' => $btn_horizontal_padding, - ), - 'tablet' => array( - 'top' => '', - 'right' => '', - 'bottom' => '', - 'left' => '', - ), - 'mobile' => array( - 'top' => '', - 'right' => '', - 'bottom' => '', - 'left' => '', - ), - 'desktop-unit' => 'px', - 'tablet-unit' => 'px', - 'mobile-unit' => 'px', - ); - - update_option( 'astra-settings', $theme_options ); - } -} - -/** - * Migrate option data from button url to the new link param. - * - * @since 2.3.0 - * - * @return void - */ -function astra_header_button_new_options() { - - $theme_options = get_option( 'astra-settings', array() ); - - $btn_url = isset( $theme_options['header-main-rt-section-button-link'] ) ? $theme_options['header-main-rt-section-button-link'] : 'https://www.wpastra.com'; - $theme_options['header-main-rt-section-button-link-option'] = array( - 'url' => $btn_url, - 'new_tab' => false, - 'link_rel' => '', - ); - - update_option( 'astra-settings', $theme_options ); -} - -/** - * For existing users, do not provide Elementor Default Color Typo settings compatibility by default. - * - * @since 2.3.3 - * - * @return void - */ -function astra_elementor_default_color_typo_comp() { - - $theme_options = get_option( 'astra-settings', array() ); - - // Set flag to not load button specific CSS. - if ( ! isset( $theme_options['ele-default-color-typo-setting-comp'] ) ) { - $theme_options['ele-default-color-typo-setting-comp'] = false; - update_option( 'astra-settings', $theme_options ); - } - -} - -/** - * For existing users, change the separator from html entity to css entity. - * - * @since 2.3.4 - * - * @return void - */ -function astra_breadcrumb_separator_fix() { - - $theme_options = get_option( 'astra-settings', array() ); - - // Check if the saved database value for Breadcrumb Separator is "»", then change it to '\00bb'. - if ( isset( $theme_options['breadcrumb-separator'] ) && '»' === $theme_options['breadcrumb-separator'] ) { - $theme_options['breadcrumb-separator'] = '\00bb'; - update_option( 'astra-settings', $theme_options ); - } -} - -/** - * Check if we need to change the default value for tablet breakpoint. - * - * @since 2.4.0 - * @return void - */ -function astra_update_theme_tablet_breakpoint() { - - $theme_options = get_option( 'astra-settings' ); - - if ( ! isset( $theme_options['can-update-theme-tablet-breakpoint'] ) ) { - // Set a flag to check if we need to change the theme tablet breakpoint value. - $theme_options['can-update-theme-tablet-breakpoint'] = false; - } - - update_option( 'astra-settings', $theme_options ); -} - -/** - * Migrate option data from site layout background option to its desktop counterpart. - * - * @since 2.4.0 - * - * @return void - */ -function astra_responsive_base_background_option() { - - $theme_options = get_option( 'astra-settings', array() ); - - if ( false === get_option( 'site-layout-outside-bg-obj-responsive', false ) && isset( $theme_options['site-layout-outside-bg-obj'] ) ) { - - $theme_options['site-layout-outside-bg-obj-responsive']['desktop'] = $theme_options['site-layout-outside-bg-obj']; - $theme_options['site-layout-outside-bg-obj-responsive']['tablet'] = array( - 'background-color' => '', - 'background-image' => '', - 'background-repeat' => 'repeat', - 'background-position' => 'center center', - 'background-size' => 'auto', - 'background-attachment' => 'scroll', - ); - $theme_options['site-layout-outside-bg-obj-responsive']['mobile'] = array( - 'background-color' => '', - 'background-image' => '', - 'background-repeat' => 'repeat', - 'background-position' => 'center center', - 'background-size' => 'auto', - 'background-attachment' => 'scroll', - ); - } - - update_option( 'astra-settings', $theme_options ); -} - -/** - * Do not apply new wide/full image CSS for existing users. - * - * @since 2.4.4 - * - * @return void - */ -function astra_gtn_full_wide_image_group_css() { - - $theme_options = get_option( 'astra-settings', array() ); - - // Set flag to not load button specific CSS. - if ( ! isset( $theme_options['gtn-full-wide-image-grp-css'] ) ) { - $theme_options['gtn-full-wide-image-grp-css'] = false; - update_option( 'astra-settings', $theme_options ); - } -} - -/** - * Do not apply new wide/full Group and Cover block CSS for existing users. - * - * @since 2.5.0 - * - * @return void - */ -function astra_gtn_full_wide_group_cover_css() { - $theme_options = get_option( 'astra-settings', array() ); - - if ( ! isset( $theme_options['gtn-full-wide-grp-cover-css'] ) ) { - $theme_options['gtn-full-wide-grp-cover-css'] = false; - update_option( 'astra-settings', $theme_options ); - } -} - - -/** - * Do not apply the global border width and border color setting for the existng users. - * - * @since 2.5.0 - * - * @return void - */ -function astra_global_button_woo_css() { - $theme_options = get_option( 'astra-settings', array() ); - - // Set flag to not load button specific CSS. - if ( ! isset( $theme_options['global-btn-woo-css'] ) ) { - $theme_options['global-btn-woo-css'] = false; - update_option( 'astra-settings', $theme_options ); - } -} - -/** - * Migrate Footer Widget param to array. - * - * @since 2.5.2 - * - * @return void - */ -function astra_footer_widget_bg() { - $theme_options = get_option( 'astra-settings', array() ); - - // Check if Footer Backgound array is already set or not. If not then set it as array. - if ( isset( $theme_options['footer-adv-bg-obj'] ) && ! is_array( $theme_options['footer-adv-bg-obj'] ) ) { - $theme_options['footer-adv-bg-obj'] = array( - 'background-color' => '', - 'background-image' => '', - 'background-repeat' => 'repeat', - 'background-position' => 'center center', - 'background-size' => 'auto', - 'background-attachment' => 'scroll', - ); - update_option( 'astra-settings', $theme_options ); - } -} - -/** - * Check if we need to load icons as font or SVG. - * - * @since 3.3.0 - * @return void - */ -function astra_icons_svg_compatibility() { - - $theme_options = get_option( 'astra-settings' ); - - if ( ! isset( $theme_options['can-update-astra-icons-svg'] ) ) { - // Set a flag to check if we need to add icons as SVG. - $theme_options['can-update-astra-icons-svg'] = false; - update_option( 'astra-settings', $theme_options ); - } -} - -/** - * Migrate Background control options to new array. - * - * @since 3.0.0 - * - * @return void - */ -function astra_bg_control_migration() { - - $db_options = array( - 'footer-adv-bg-obj', - 'footer-bg-obj', - 'sidebar-bg-obj', - ); - - $theme_options = get_option( 'astra-settings', array() ); - - foreach ( $db_options as $option_name ) { - - if ( ! ( isset( $theme_options[ $option_name ]['background-type'] ) && isset( $theme_options[ $option_name ]['background-media'] ) ) && isset( $theme_options[ $option_name ] ) ) { - - if ( ! empty( $theme_options[ $option_name ]['background-image'] ) ) { - $theme_options[ $option_name ]['background-type'] = 'image'; - $theme_options[ $option_name ]['background-media'] = attachment_url_to_postid( $theme_options[ $option_name ]['background-image'] ); - } else { - $theme_options[ $option_name ]['background-type'] = ''; - $theme_options[ $option_name ]['background-media'] = ''; - } - - error_log( sprintf( 'Astra: Migrating Background Option - %s', $option_name ) ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log - update_option( 'astra-settings', $theme_options ); - } - } -} - -/** - * Migrate Background Responsive options to new array. - * - * @since 3.0.0 - * - * @return void - */ -function astra_bg_responsive_control_migration() { - - $db_options = array( - 'site-layout-outside-bg-obj-responsive', - 'content-bg-obj-responsive', - 'header-bg-obj-responsive', - 'primary-menu-bg-obj-responsive', - 'above-header-bg-obj-responsive', - 'above-header-menu-bg-obj-responsive', - 'below-header-bg-obj-responsive', - 'below-header-menu-bg-obj-responsive', - ); - - $theme_options = get_option( 'astra-settings', array() ); - - foreach ( $db_options as $option_name ) { - - if ( ! ( isset( $theme_options[ $option_name ]['desktop']['background-type'] ) && isset( $theme_options[ $option_name ]['desktop']['background-media'] ) ) && isset( $theme_options[ $option_name ] ) ) { - - if ( ! empty( $theme_options[ $option_name ]['desktop']['background-image'] ) ) { - $theme_options[ $option_name ]['desktop']['background-type'] = 'image'; - $theme_options[ $option_name ]['desktop']['background-media'] = attachment_url_to_postid( $theme_options[ $option_name ]['desktop']['background-image'] ); - } else { - $theme_options[ $option_name ]['desktop']['background-type'] = ''; - $theme_options[ $option_name ]['desktop']['background-media'] = ''; - } - - if ( ! empty( $theme_options[ $option_name ]['tablet']['background-image'] ) ) { - $theme_options[ $option_name ]['tablet']['background-type'] = 'image'; - $theme_options[ $option_name ]['tablet']['background-media'] = attachment_url_to_postid( $theme_options[ $option_name ]['tablet']['background-image'] ); - } else { - $theme_options[ $option_name ]['tablet']['background-type'] = ''; - $theme_options[ $option_name ]['tablet']['background-media'] = ''; - } - - if ( ! empty( $theme_options[ $option_name ]['mobile']['background-image'] ) ) { - $theme_options[ $option_name ]['mobile']['background-type'] = 'image'; - $theme_options[ $option_name ]['mobile']['background-media'] = attachment_url_to_postid( $theme_options[ $option_name ]['mobile']['background-image'] ); - } else { - $theme_options[ $option_name ]['mobile']['background-type'] = ''; - $theme_options[ $option_name ]['mobile']['background-media'] = ''; - } - - error_log( sprintf( 'Astra: Migrating Background Response Option - %s', $option_name ) ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log - update_option( 'astra-settings', $theme_options ); - } - } -} - -/** - * Do not apply new Group, Column and Media & Text block CSS for existing users. - * - * @since 3.0.0 - * - * @return void - */ -function astra_gutenberg_core_blocks_design_compatibility() { - $theme_options = get_option( 'astra-settings', array() ); - - if ( ! isset( $theme_options['guntenberg-core-blocks-comp-css'] ) ) { - $theme_options['guntenberg-core-blocks-comp-css'] = false; - update_option( 'astra-settings', $theme_options ); - } -} - -/** - * Header Footer builder - Migration compatibility. - * - * @since 3.0.0 - * - * @return void - */ -function astra_header_builder_compatibility() { - $theme_options = get_option( 'astra-settings', array() ); - - // Set flag to not load button specific CSS. - if ( ! isset( $theme_options['is-header-footer-builder'] ) ) { - $theme_options['is-header-footer-builder'] = false; - update_option( 'astra-settings', $theme_options ); - } - if ( ! isset( $theme_options['header-footer-builder-notice'] ) ) { - $theme_options['header-footer-builder-notice'] = false; - update_option( 'astra-settings', $theme_options ); - } -} - -/** - * Clears assets cache and regenerates new assets files. - * - * @since 3.0.1 - * - * @return void - */ -function astra_clear_assets_cache() { - if ( is_callable( 'Astra_Minify::refresh_assets' ) ) { - Astra_Minify::refresh_assets(); - } -} - -/** - * Header Footer builder - Migration of options. - * - * @since 3.0.0 - * - * @return void - */ -function astra_header_builder_migration() { - - /** - * All theme options. - */ - $theme_options = get_option( 'astra-settings', array() ); - - // WordPress sidebar_widgets option. - $widget_options = get_option( 'sidebars_widgets', array() ); - - $used_elements = array(); - - $options = array( - 'theme_options' => $theme_options, - 'used_elements' => $used_elements, - 'widget_options' => $widget_options, - ); - - $options = astra_primary_header_builder_migration( $options['theme_options'], $options['used_elements'], $options['widget_options'] ); - - $options = astra_below_header_builder_migration( $options['theme_options'], $options['used_elements'], $options['widget_options'] ); - - $options = astra_above_header_builder_migration( $options['theme_options'], $options['used_elements'], $options['widget_options'] ); - - $options = astra_footer_builder_migration( $options['theme_options'], $options['used_elements'], $options['widget_options'] ); - - $options = astra_footer_widgets_migration( $options['theme_options'], $options['used_elements'], $options['widget_options'] ); - - $options = astra_primary_menu_builder_migration( $options['theme_options'], $options['used_elements'], $options['widget_options'] ); - - $options = astra_sticky_header_builder_migration( $options['theme_options'], $options['used_elements'], $options['widget_options'] ); - - $theme_options = $options['theme_options']; - $widget_options = $options['widget_options']; - - $theme_options['v3-option-migration'] = true; - - update_option( 'astra-settings', $theme_options ); - update_option( 'sidebars_widgets', $widget_options ); - -} - -/** - * Header Footer builder - Migration of Sticky Header. - * - * @since 3.0.0 - * @param array $theme_options Theme options. - * @param array $used_elements Used Elements array. - * @param array $widget_options Widget options. - * @return array - */ -function astra_sticky_header_builder_migration( $theme_options, $used_elements, $widget_options ) { - - // Menu. - $is_menu_in_primary = false; - $is_menu_in_above = false; - $is_menu_in_below = false; - - if ( isset( $theme_options['header-desktop-items']['primary'] ) ) { - foreach ( $theme_options['header-desktop-items']['primary'] as $zone ) { - if ( false !== array_search( 'menu-1', $zone ) ) { - $is_menu_in_primary = true; - } - } - } - - if ( isset( $theme_options['header-desktop-items']['above'] ) ) { - foreach ( $theme_options['header-desktop-items']['above'] as $zone ) { - if ( false !== array_search( 'menu-1', $zone ) ) { - $is_menu_in_above = true; - } - } - } - - if ( isset( $theme_options['header-desktop-items']['below'] ) ) { - foreach ( $theme_options['header-desktop-items']['below'] as $zone ) { - if ( false !== array_search( 'menu-1', $zone ) ) { - $is_menu_in_below = true; - } - } - } - - if ( $is_menu_in_primary ) { - - // Menu. - // Normal. - if ( isset( $theme_options['sticky-header-menu-color-responsive'] ) ) { - $theme_options['sticky-header-menu1-color-responsive'] = $theme_options['sticky-header-menu-color-responsive']; - } - - if ( isset( $theme_options['sticky-header-menu-bg-color-responsive'] ) ) { - $theme_options['sticky-header-menu1-bg-obj-responsive'] = $theme_options['sticky-header-menu-bg-color-responsive']; - } - - - // Hover. - if ( isset( $theme_options['sticky-header-menu-h-color-responsive'] ) ) { - $theme_options['sticky-header-menu1-h-color-responsive'] = $theme_options['sticky-header-menu-h-color-responsive']; - } - - if ( isset( $theme_options['sticky-header-menu-h-a-bg-color-responsive'] ) ) { - $theme_options['sticky-header-menu1-h-bg-color-responsive'] = $theme_options['sticky-header-menu-h-a-bg-color-responsive']; - } - - - // Active. - if ( isset( $theme_options['sticky-header-menu-h-color-responsive'] ) ) { - $theme_options['sticky-header-menu1-a-color-responsive'] = $theme_options['sticky-header-menu-h-color-responsive']; - } - - if ( isset( $theme_options['sticky-header-menu-h-a-bg-color-responsive'] ) ) { - $theme_options['sticky-header-menu1-a-bg-color-responsive'] = $theme_options['sticky-header-menu-h-a-bg-color-responsive']; - } - - - // Submenu. - - // Normal. - if ( isset( $theme_options['sticky-header-submenu-color-responsive'] ) ) { - $theme_options['sticky-header-menu1-submenu-color-responsive'] = $theme_options['sticky-header-submenu-color-responsive']; - } - - if ( isset( $theme_options['sticky-header-submenu-bg-color-responsive'] ) ) { - $theme_options['sticky-header-menu1-submenu-bg-color-responsive'] = $theme_options['sticky-header-submenu-bg-color-responsive']; - } - - - // Hover. - if ( isset( $theme_options['sticky-header-submenu-h-color-responsive'] ) ) { - $theme_options['sticky-header-menu1-submenu-h-color-responsive'] = $theme_options['sticky-header-submenu-h-color-responsive']; - } - - if ( isset( $theme_options['sticky-header-submenu-h-a-bg-color-responsive'] ) ) { - $theme_options['sticky-header-menu1-submenu-h-bg-color-responsive'] = $theme_options['sticky-header-submenu-h-a-bg-color-responsive']; - } - - - // Active. - if ( isset( $theme_options['sticky-header-submenu-h-color-responsive'] ) ) { - $theme_options['sticky-header-menu1-submenu-a-color-responsive'] = $theme_options['sticky-header-submenu-h-color-responsive']; - } - - if ( isset( $theme_options['sticky-header-submenu-h-a-bg-color-responsive'] ) ) { - $theme_options['sticky-header-menu1-submenu-a-bg-color-responsive'] = $theme_options['sticky-header-submenu-h-a-bg-color-responsive']; - } - - - // Mega menu. - - // Normal. - if ( isset( $theme_options['sticky-primary-header-megamenu-heading-color'] ) ) { - $theme_options['sticky-header-menu1-header-megamenu-heading-color'] = $theme_options['sticky-primary-header-megamenu-heading-color']; - } - - - // Hover. - if ( isset( $theme_options['sticky-primary-header-megamenu-heading-h-color'] ) ) { - $theme_options['sticky-header-menu1-header-megamenu-heading-h-color'] = $theme_options['sticky-primary-header-megamenu-heading-h-color']; - } - } - - if ( $is_menu_in_above ) { - - // Menu. - - // Normal. - if ( isset( $theme_options['sticky-above-header-menu-color-responsive'] ) ) { - $theme_options['sticky-header-menu3-color-responsive'] = $theme_options['sticky-above-header-menu-color-responsive']; - } - - if ( isset( $theme_options['sticky-above-header-menu-bg-color-responsive'] ) ) { - $theme_options['sticky-header-menu3-bg-obj-responsive'] = $theme_options['sticky-above-header-menu-bg-color-responsive']; - } - - - // Hover. - if ( isset( $theme_options['sticky-above-header-menu-h-color-responsive'] ) ) { - $theme_options['sticky-header-menu3-h-color-responsive'] = $theme_options['sticky-above-header-menu-h-color-responsive']; - } - - if ( isset( $theme_options['sticky-above-header-menu-h-a-bg-color-responsive'] ) ) { - $theme_options['sticky-header-menu3-h-bg-color-responsive'] = $theme_options['sticky-above-header-menu-h-a-bg-color-responsive']; - } - - - // Active. - if ( isset( $theme_options['sticky-above-header-menu-h-color-responsive'] ) ) { - $theme_options['sticky-header-menu3-a-color-responsive'] = $theme_options['sticky-above-header-menu-h-color-responsive']; - } - - if ( isset( $theme_options['sticky-above-header-menu-h-a-bg-color-responsive'] ) ) { - $theme_options['sticky-header-menu3-a-bg-color-responsive'] = $theme_options['sticky-above-header-menu-h-a-bg-color-responsive']; - } - - - // Submenu. - - // Normal. - if ( isset( $theme_options['sticky-above-header-submenu-color-responsive'] ) ) { - $theme_options['sticky-header-menu3-submenu-color-responsive'] = $theme_options['sticky-above-header-submenu-color-responsive']; - } - - if ( isset( $theme_options['sticky-above-header-submenu-bg-color-responsive'] ) ) { - $theme_options['sticky-header-menu3-submenu-bg-obj-responsive'] = $theme_options['sticky-above-header-submenu-bg-color-responsive']; - } - - - // Hover. - if ( isset( $theme_options['sticky-above-header-submenu-h-color-responsive'] ) ) { - $theme_options['sticky-header-menu3-submenu-h-color-responsive'] = $theme_options['sticky-above-header-submenu-h-color-responsive']; - } - - if ( isset( $theme_options['sticky-above-header-submenu-h-a-bg-color-responsive'] ) ) { - $theme_options['sticky-header-menu3-submenu-h-bg-color-responsive'] = $theme_options['sticky-above-header-submenu-h-a-bg-color-responsive']; - } - - - // Active. - if ( isset( $theme_options['sticky-above-header-submenu-h-color-responsive'] ) ) { - $theme_options['sticky-header-menu3-submenu-a-color-responsive'] = $theme_options['sticky-above-header-submenu-h-color-responsive']; - } - - if ( isset( $theme_options['sticky-above-header-submenu-h-a-bg-color-responsive'] ) ) { - $theme_options['sticky-header-menu3-submenu-a-bg-color-responsive'] = $theme_options['sticky-above-header-submenu-h-a-bg-color-responsive']; - } - - - // Mega menu. - - // Normal. - if ( isset( $theme_options['sticky-above-header-megamenu-heading-color'] ) ) { - $theme_options['sticky-header-menu3-header-megamenu-heading-color'] = $theme_options['sticky-above-header-megamenu-heading-color']; - } - - - // Hover. - if ( isset( $theme_options['sticky-above-header-megamenu-heading-h-color'] ) ) { - $theme_options['sticky-header-menu3-header-megamenu-heading-h-color'] = $theme_options['sticky-above-header-megamenu-heading-h-color']; - } - } - - if ( $is_menu_in_below ) { - - // Menu. - - // Normal. - if ( isset( $theme_options['sticky-below-header-menu-color-responsive'] ) ) { - $theme_options['sticky-header-menu2-color-responsive'] = $theme_options['sticky-below-header-menu-color-responsive']; - } - - if ( isset( $theme_options['sticky-below-header-menu-bg-color-responsive'] ) ) { - $theme_options['sticky-header-menu2-bg-obj-responsive'] = $theme_options['sticky-below-header-menu-bg-color-responsive']; - } - - - // Hover. - if ( isset( $theme_options['sticky-below-header-menu-h-color-responsive'] ) ) { - $theme_options['sticky-header-menu2-h-color-responsive'] = $theme_options['sticky-below-header-menu-h-color-responsive']; - } - - if ( isset( $theme_options['sticky-below-header-menu-h-a-bg-color-responsive'] ) ) { - $theme_options['sticky-header-menu2-h-bg-color-responsive'] = $theme_options['sticky-below-header-menu-h-a-bg-color-responsive']; - } - - - // Active. - if ( isset( $theme_options['sticky-below-header-menu-h-color-responsive'] ) ) { - $theme_options['sticky-header-menu2-a-color-responsive'] = $theme_options['sticky-below-header-menu-h-color-responsive']; - } - - if ( isset( $theme_options['sticky-below-header-menu-h-a-bg-color-responsive'] ) ) { - $theme_options['sticky-header-menu2-a-bg-color-responsive'] = $theme_options['sticky-below-header-menu-h-a-bg-color-responsive']; - } - - - // Submenu. - - // Normal. - if ( isset( $theme_options['sticky-below-header-submenu-color-responsive'] ) ) { - $theme_options['sticky-header-menu2-submenu-color-responsive'] = $theme_options['sticky-below-header-submenu-color-responsive']; - } - - if ( isset( $theme_options['sticky-below-header-submenu-bg-color-responsive'] ) ) { - $theme_options['sticky-header-menu2-submenu-bg-obj-responsive'] = $theme_options['sticky-below-header-submenu-bg-color-responsive']; - } - - - // Hover. - if ( isset( $theme_options['sticky-below-header-submenu-h-color-responsive'] ) ) { - $theme_options['sticky-header-menu2-submenu-h-color-responsive'] = $theme_options['sticky-below-header-submenu-h-color-responsive']; - } - - if ( isset( $theme_options['sticky-below-header-submenu-h-a-bg-color-responsive'] ) ) { - $theme_options['sticky-header-menu2-submenu-h-bg-color-responsive'] = $theme_options['sticky-below-header-submenu-h-a-bg-color-responsive']; - } - - - // Active. - if ( isset( $theme_options['sticky-below-header-submenu-h-color-responsive'] ) ) { - $theme_options['sticky-header-menu2-submenu-a-color-responsive'] = $theme_options['sticky-below-header-submenu-h-color-responsive']; - } - - if ( isset( $theme_options['sticky-below-header-submenu-h-a-bg-color-responsive'] ) ) { - $theme_options['sticky-header-menu2-submenu-a-bg-color-responsive'] = $theme_options['sticky-below-header-submenu-h-a-bg-color-responsive']; - } - - - // Mega menu. - - // Normal. - if ( isset( $theme_options['sticky-below-header-megamenu-heading-color'] ) ) { - $theme_options['sticky-header-menu2-header-megamenu-heading-color'] = $theme_options['sticky-below-header-megamenu-heading-color']; - } - - - // Hover. - if ( isset( $theme_options['sticky-below-header-megamenu-heading-h-color'] ) ) { - $theme_options['sticky-header-menu2-header-megamenu-heading-h-color'] = $theme_options['sticky-below-header-megamenu-heading-h-color']; - } - } - - // Sticky Site Title. - - // Normal. - if ( isset( $theme_options['sticky-header-color-site-title-responsive']['desktop'] ) ) { - $theme_options['sticky-header-builder-site-title-color'] = $theme_options['sticky-header-color-site-title-responsive']['desktop']; - } - - - // Hover. - if ( isset( $theme_options['sticky-header-color-h-site-title-responsive']['desktop'] ) ) { - $theme_options['sticky-header-builder-site-title-h-color'] = $theme_options['sticky-header-color-h-site-title-responsive']['desktop']; - } - - - // Sticky Site Tagline. - if ( isset( $theme_options['sticky-header-color-site-tagline-responsive']['desktop'] ) ) { - $theme_options['sticky-header-builder-site-tagline-color'] = $theme_options['sticky-header-color-site-tagline-responsive']['desktop']; - } - - - // Sticky Above/Below Header HTML. - $is_html_in_above = false; - $is_html_in_below = false; - - foreach ( $theme_options['header-desktop-items']['above'] as $zone ) { - if ( false !== array_search( 'html-3', $zone ) ) { - $is_html_in_above = true; - } - } - foreach ( $theme_options['header-desktop-items']['below'] as $zone ) { - if ( false !== array_search( 'html-2', $zone ) ) { - $is_html_in_below = true; - } - } - - if ( $is_html_in_above ) { - - if ( isset( $theme_options['sticky-above-header-content-section-text-color-responsive']['desktop'] ) ) { - $theme_options['sticky-header-html-3color'] = $theme_options['sticky-above-header-content-section-text-color-responsive']['desktop']; - } - } - if ( $is_html_in_below ) { - - if ( isset( $theme_options['sticky-below-header-content-section-text-color-responsive']['desktop'] ) ) { - $theme_options['sticky-header-html-2color'] = $theme_options['sticky-below-header-content-section-text-color-responsive']['desktop']; - } - } - - // Sticky Above/Below Header Search. - $is_search_in_above = false; - $is_search_in_below = false; - - foreach ( $theme_options['header-desktop-items']['above'] as $zone ) { - if ( false !== array_search( 'search', $zone ) ) { - $is_search_in_above = true; - } - } - foreach ( $theme_options['header-desktop-items']['below'] as $zone ) { - if ( false !== array_search( 'search', $zone ) ) { - $is_search_in_below = true; - } - } - - if ( $is_search_in_above ) { - - if ( isset( $theme_options['sticky-above-header-content-section-link-color-responsive']['desktop'] ) ) { - $theme_options['sticky-header-search-icon-color'] = $theme_options['sticky-above-header-content-section-link-color-responsive']['desktop']; - } - } - if ( $is_search_in_below ) { - - if ( isset( $theme_options['sticky-below-header-content-section-link-color-responsive']['desktop'] ) ) { - $theme_options['sticky-header-search-icon-color'] = $theme_options['sticky-below-header-content-section-link-color-responsive']['desktop']; - } - } - - // Sticky Above/Below Header Widget. - $is_widget_in_above = false; - $is_widget_in_below = false; - - foreach ( $theme_options['header-desktop-items']['above'] as $zone ) { - if ( false !== array_search( 'widget-3', $zone ) ) { - $is_widget_in_above = true; - } - } - foreach ( $theme_options['header-desktop-items']['below'] as $zone ) { - if ( false !== array_search( 'widget-2', $zone ) ) { - $is_widget_in_below = true; - } - } - - if ( $is_widget_in_above ) { - - if ( isset( $theme_options['sticky-above-header-content-section-text-color-responsive']['desktop'] ) ) { - $theme_options['sticky-header-widget-3-title-color'] = $theme_options['sticky-above-header-content-section-text-color-responsive']['desktop']; - } - - if ( isset( $theme_options['sticky-above-header-content-section-text-color-responsive']['desktop'] ) ) { - $theme_options['sticky-header-widget-3-color'] = $theme_options['sticky-above-header-content-section-text-color-responsive']['desktop']; - } - - if ( isset( $theme_options['sticky-above-header-content-section-link-color-responsive']['desktop'] ) ) { - $theme_options['sticky-header-widget-3-link-color'] = $theme_options['sticky-above-header-content-section-link-color-responsive']['desktop']; - } - - if ( isset( $theme_options['sticky-above-header-content-section-link-h-color-responsive']['desktop'] ) ) { - $theme_options['sticky-header-widget-3-link-h-color'] = $theme_options['sticky-above-header-content-section-link-h-color-responsive']['desktop']; - } - } - if ( $is_widget_in_below ) { - - if ( isset( $theme_options['sticky-below-header-content-section-text-color-responsive']['desktop'] ) ) { - $theme_options['sticky-header-widget-2-title-color'] = $theme_options['sticky-below-header-content-section-text-color-responsive']['desktop']; - } - - if ( isset( $theme_options['sticky-below-header-content-section-text-color-responsive']['desktop'] ) ) { - $theme_options['sticky-header-widget-2-color'] = $theme_options['sticky-below-header-content-section-text-color-responsive']['desktop']; - } - - if ( isset( $theme_options['sticky-below-header-content-section-link-color-responsive']['desktop'] ) ) { - $theme_options['sticky-header-widget-2-link-color'] = $theme_options['sticky-below-header-content-section-link-color-responsive']['desktop']; - } - - if ( isset( $theme_options['sticky-below-header-content-section-link-h-color-responsive']['desktop'] ) ) { - $theme_options['sticky-header-widget-2-link-h-color'] = $theme_options['sticky-below-header-content-section-link-h-color-responsive']['desktop']; - } - } - - return array( - 'theme_options' => $theme_options, - 'used_elements' => $used_elements, - 'widget_options' => $widget_options, - ); -} - -/** - * Header Footer builder - Migration of Primary Menu. - * - * @since 3.0.0 - * @param array $theme_options Theme options. - * @param array $used_elements Used Elements array. - * @param array $widget_options Widget options. - * @return array - */ -function astra_primary_menu_builder_migration( $theme_options, $used_elements, $widget_options ) { - - /** - * Primary Menu. - */ - if ( isset( $theme_options['header-main-submenu-container-animation'] ) ) { - $theme_options['header-menu1-submenu-container-animation'] = $theme_options['header-main-submenu-container-animation']; - } - if ( isset( $theme_options['primary-submenu-border'] ) ) { - $theme_options['header-menu1-submenu-border'] = $theme_options['primary-submenu-border']; - } - if ( isset( $theme_options['primary-submenu-b-color'] ) ) { - $theme_options['header-menu1-submenu-b-color'] = $theme_options['primary-submenu-b-color']; - } - if ( isset( $theme_options['primary-submenu-item-border'] ) ) { - $theme_options['header-menu1-submenu-item-border'] = $theme_options['primary-submenu-item-border']; - } - if ( isset( $theme_options['primary-submenu-item-b-color'] ) ) { - $theme_options['header-menu1-submenu-item-b-color'] = $theme_options['primary-submenu-item-b-color']; - } - - /** - * Primary Menu. - */ - - if ( isset( $theme_options['primary-menu-color-responsive'] ) ) { - $theme_options['header-menu1-color-responsive'] = $theme_options['primary-menu-color-responsive']; - } - - if ( isset( $theme_options['primary-menu-bg-obj-responsive'] ) ) { - $theme_options['header-menu1-bg-obj-responsive'] = $theme_options['primary-menu-bg-obj-responsive']; - } - - - if ( isset( $theme_options['primary-menu-text-h-color-responsive'] ) ) { - $theme_options['header-menu1-h-color-responsive'] = $theme_options['primary-menu-text-h-color-responsive']; - } - - if ( isset( $theme_options['primary-menu-h-bg-color-responsive'] ) ) { - $theme_options['header-menu1-h-bg-color-responsive'] = $theme_options['primary-menu-h-bg-color-responsive']; - } - - - if ( isset( $theme_options['primary-menu-a-color-responsive'] ) ) { - $theme_options['header-menu1-a-color-responsive'] = $theme_options['primary-menu-a-color-responsive']; - } - - if ( isset( $theme_options['primary-menu-a-bg-color-responsive'] ) ) { - $theme_options['header-menu1-a-bg-color-responsive'] = $theme_options['primary-menu-a-bg-color-responsive']; - } - - - if ( isset( $theme_options['font-size-primary-menu'] ) ) { - $theme_options['header-menu1-font-size'] = $theme_options['font-size-primary-menu']; - } - - if ( isset( $theme_options['font-weight-primary-menu'] ) ) { - $theme_options['header-menu1-font-weight'] = $theme_options['font-weight-primary-menu']; - } - - if ( isset( $theme_options['line-height-primary-menu'] ) ) { - $theme_options['header-menu1-line-height'] = $theme_options['line-height-primary-menu']; - } - - if ( isset( $theme_options['font-family-primary-menu'] ) ) { - $theme_options['header-menu1-font-family'] = $theme_options['font-family-primary-menu']; - } - - if ( isset( $theme_options['text-transform-primary-menu'] ) ) { - $theme_options['header-menu1-text-transform'] = $theme_options['text-transform-primary-menu']; - } - - if ( isset( $theme_options['primary-menu-spacing'] ) ) { - $theme_options['header-menu1-menu-spacing'] = $theme_options['primary-menu-spacing']; - } - - // Primary Menu - Submenu. - if ( isset( $theme_options['primary-submenu-color-responsive'] ) ) { - $theme_options['header-menu1-submenu-color-responsive'] = $theme_options['primary-submenu-color-responsive']; - } - - if ( isset( $theme_options['primary-submenu-bg-color-responsive'] ) ) { - $theme_options['header-menu1-submenu-bg-color-responsive'] = $theme_options['primary-submenu-bg-color-responsive']; - } - - if ( isset( $theme_options['primary-submenu-h-color-responsive'] ) ) { - $theme_options['header-menu1-submenu-h-color-responsive'] = $theme_options['primary-submenu-h-color-responsive']; - } - - if ( isset( $theme_options['primary-submenu-h-bg-color-responsive'] ) ) { - $theme_options['header-menu1-submenu-h-bg-color-responsive'] = $theme_options['primary-submenu-h-bg-color-responsive']; - } - - if ( isset( $theme_options['primary-submenu-a-color-responsive'] ) ) { - $theme_options['header-menu1-submenu-a-color-responsive'] = $theme_options['primary-submenu-a-color-responsive']; - } - - if ( isset( $theme_options['primary-submenu-a-bg-color-responsive'] ) ) { - $theme_options['header-menu1-submenu-a-bg-color-responsive'] = $theme_options['primary-submenu-a-bg-color-responsive']; - } - - if ( isset( $theme_options['font-size-primary-dropdown-menu'] ) ) { - $theme_options['header-font-size-menu1-sub-menu'] = $theme_options['font-size-primary-dropdown-menu']; - } - - if ( isset( $theme_options['font-weight-primary-dropdown-menu'] ) ) { - $theme_options['header-font-weight-menu1-sub-menu'] = $theme_options['font-weight-primary-dropdown-menu']; - } - - if ( isset( $theme_options['line-height-primary-dropdown-menu'] ) ) { - $theme_options['header-line-height-menu1-sub-menu'] = $theme_options['line-height-primary-dropdown-menu']; - } - - if ( isset( $theme_options['font-family-primary-dropdown-menu'] ) ) { - $theme_options['header-font-family-menu1-sub-menu'] = $theme_options['font-family-primary-dropdown-menu']; - } - - if ( isset( $theme_options['text-transform-primary-dropdown-menu'] ) ) { - $theme_options['header-text-transform-menu1-sub-menu'] = $theme_options['text-transform-primary-dropdown-menu']; - } - - if ( isset( $theme_options['primary-submenu-spacing'] ) ) { - $theme_options['header-menu1-submenu-spacing'] = $theme_options['primary-submenu-spacing']; - } - - // Primary Menu - Mega Menu. - if ( isset( $theme_options['primary-header-megamenu-heading-color'] ) ) { - $theme_options['header-menu1-header-megamenu-heading-color'] = $theme_options['primary-header-megamenu-heading-color']; - } - - if ( isset( $theme_options['primary-header-megamenu-heading-h-color'] ) ) { - $theme_options['header-menu1-header-megamenu-heading-h-color'] = $theme_options['primary-header-megamenu-heading-h-color']; - } - - if ( isset( $theme_options['primary-header-megamenu-heading-font-size'] ) ) { - $theme_options['header-menu1-megamenu-heading-font-size'] = $theme_options['primary-header-megamenu-heading-font-size']; - } - - if ( isset( $theme_options['primary-header-megamenu-heading-font-weight'] ) ) { - $theme_options['header-menu1-megamenu-heading-font-weight'] = $theme_options['primary-header-megamenu-heading-font-weight']; - } - - if ( isset( $theme_options['primary-header-megamenu-heading-line-height'] ) ) { - $theme_options['header-menu1-megamenu-heading-line-height'] = $theme_options['primary-header-megamenu-heading-line-height']; - } - - if ( isset( $theme_options['primary-header-megamenu-heading-font-family'] ) ) { - $theme_options['header-menu1-megamenu-heading-font-family'] = $theme_options['primary-header-megamenu-heading-font-family']; - } - - if ( isset( $theme_options['primary-header-megamenu-heading-text-transform'] ) ) { - $theme_options['header-menu1-megamenu-heading-text-transform'] = $theme_options['primary-header-megamenu-heading-text-transform']; - } - - if ( isset( $theme_options['primary-header-megamenu-heading-space'] ) ) { - $theme_options['header-menu1-megamenu-heading-space'] = $theme_options['primary-header-megamenu-heading-space']; - } - - - /** - * Primary Menu - Mobile. - */ - if ( isset( $theme_options['header-main-menu-label'] ) ) { - $theme_options['mobile-header-menu-label'] = $theme_options['header-main-menu-label']; - } - - if ( isset( $theme_options['mobile-header-toggle-btn-style-color'] ) ) { - $theme_options['mobile-header-toggle-btn-color'] = $theme_options['mobile-header-toggle-btn-style-color']; - $theme_options['mobile-header-toggle-border-color'] = $theme_options['mobile-header-toggle-btn-style-color']; - } - - if ( isset( $theme_options['mobile-header-toggle-btn-border-radius'] ) ) { - $theme_options['mobile-header-toggle-border-radius'] = $theme_options['mobile-header-toggle-btn-border-radius']; - } - - return array( - 'theme_options' => $theme_options, - 'used_elements' => $used_elements, - 'widget_options' => $widget_options, - ); -} - -/** - * Header Footer builder - Migration of Primary Header. - * - * @since 3.0.0 - * @param array $theme_options Theme options. - * @param array $used_elements Used Elements array. - * @param array $widget_options Widget options. - * @return array - */ -function astra_primary_header_builder_migration( $theme_options, $used_elements, $widget_options ) { - - /** - * Primary Header. - */ - - // Header : Primary Header - Layout. - $primary_header_layout = ( isset( $theme_options['header-layouts'] ) ) ? $theme_options['header-layouts'] : ''; - - // Header : Primary Header - Last Menu Item. - $last_menu_item = ( isset( $theme_options['header-main-rt-section'] ) ) ? $theme_options['header-main-rt-section'] : ''; - $last_menu_item_mobile_flag = ( isset( $theme_options['hide-custom-menu-mobile'] ) ) ? $theme_options['hide-custom-menu-mobile'] : ''; - $last_menu_item_mobile_outside = ( isset( $theme_options['header-display-outside-menu'] ) ) ? $theme_options['header-display-outside-menu'] : ''; - $new_menu_item = ''; - - $theme_options['mobile-header-type'] = 'dropdown'; - - if ( isset( $theme_options['mobile-menu-style'] ) ) { - switch ( $theme_options['mobile-menu-style'] ) { - case 'flyout': - $theme_options['mobile-header-type'] = 'off-canvas'; - if ( isset( $theme_options['flyout-mobile-menu-alignment'] ) ) { - $theme_options['off-canvas-slide'] = $theme_options['flyout-mobile-menu-alignment']; - } - break; - case 'fullscreen': - $theme_options['mobile-header-type'] = 'full-width'; - break; - - case 'default': - default: - $theme_options['mobile-header-type'] = 'dropdown'; - break; - } - } - - switch ( $last_menu_item ) { - case 'search': - $new_menu_item = 'search'; - if ( isset( $theme_options['header-main-rt-section-search-box-type'] ) ) { - $theme_options['header-search-box-type'] = $theme_options['header-main-rt-section-search-box-type']; - } - break; - - case 'button': - $new_menu_item = 'button-1'; - if ( isset( $theme_options['header-main-rt-section-button-text'] ) ) { - $theme_options['header-button1-text'] = $theme_options['header-main-rt-section-button-text']; - } - if ( isset( $theme_options['header-main-rt-section-button-link-option'] ) ) { - $theme_options['header-button1-link-option'] = $theme_options['header-main-rt-section-button-link-option']; - } - if ( isset( $theme_options['header-main-rt-section-button-text-color'] ) ) { - $theme_options['header-button1-text-color'] = array( - 'desktop' => $theme_options['header-main-rt-section-button-text-color'], - 'tablet' => '', - 'mobile' => '', - ); - } - if ( isset( $theme_options['header-main-rt-section-button-back-color'] ) ) { - $theme_options['header-button1-back-color'] = array( - 'desktop' => $theme_options['header-main-rt-section-button-back-color'], - 'tablet' => '', - 'mobile' => '', - ); - } - if ( isset( $theme_options['header-main-rt-section-button-text-h-color'] ) ) { - $theme_options['header-button1-text-h-color'] = array( - 'desktop' => $theme_options['header-main-rt-section-button-text-h-color'], - 'tablet' => '', - 'mobile' => '', - ); - } - if ( isset( $theme_options['header-main-rt-section-button-back-h-color'] ) ) { - $theme_options['header-button1-back-h-color'] = array( - 'desktop' => $theme_options['header-main-rt-section-button-back-h-color'], - 'tablet' => '', - 'mobile' => '', - ); - } - if ( isset( $theme_options['header-main-rt-section-button-border-size'] ) ) { - $theme_options['header-button1-border-size'] = $theme_options['header-main-rt-section-button-border-size']; - } - if ( isset( $theme_options['header-main-rt-section-button-border-color'] ) ) { - $theme_options['header-button1-border-color'] = array( - 'desktop' => $theme_options['header-main-rt-section-button-border-color'], - 'tablet' => '', - 'mobile' => '', - ); - } - if ( isset( $theme_options['header-main-rt-section-button-border-h-color'] ) ) { - $theme_options['header-button1-border-h-color'] = array( - 'desktop' => $theme_options['header-main-rt-section-button-border-h-color'], - 'tablet' => '', - 'mobile' => '', - ); - } - if ( isset( $theme_options['header-main-rt-section-button-border-radius'] ) ) { - $theme_options['header-button1-border-radius'] = $theme_options['header-main-rt-section-button-border-radius']; - } - if ( isset( $theme_options['primary-header-button-font-family'] ) ) { - $theme_options['header-button1-font-family'] = $theme_options['primary-header-button-font-family']; - } - if ( isset( $theme_options['primary-header-button-font-size'] ) ) { - $theme_options['header-button1-font-size'] = $theme_options['primary-header-button-font-size']; - } - if ( isset( $theme_options['primary-header-button-font-weight'] ) ) { - $theme_options['header-button1-font-weight'] = $theme_options['primary-header-button-font-weight']; - } - if ( isset( $theme_options['primary-header-button-text-transform'] ) ) { - $theme_options['header-button1-text-transform'] = $theme_options['primary-header-button-text-transform']; - } - if ( isset( $theme_options['primary-header-button-line-height'] ) ) { - $theme_options['header-button1-line-height'] = $theme_options['primary-header-button-line-height']; - } - if ( isset( $theme_options['primary-header-button-letter-spacing'] ) ) { - $theme_options['header-button1-letter-spacing'] = $theme_options['primary-header-button-letter-spacing']; - } - if ( isset( $theme_options['header-main-rt-section-button-padding'] ) ) { - $theme_options['section-hb-button-1-padding'] = $theme_options['header-main-rt-section-button-padding']; - } - // Sticky Header Button options. - - // Text Color. - if ( isset( $theme_options['header-main-rt-sticky-section-button-text-color'] ) ) { - - $theme_options['sticky-header-button1-text-color'] = array( - 'desktop' => $theme_options['header-main-rt-sticky-section-button-text-color'], - 'tablet' => '', - 'mobile' => '', - ); - } - // BG Color. - if ( isset( $theme_options['header-main-rt-sticky-section-button-back-color'] ) ) { - $theme_options['sticky-header-button1-back-color'] = array( - 'desktop' => $theme_options['header-main-rt-sticky-section-button-back-color'], - 'tablet' => '', - 'mobile' => '', - ); - } - // Text Hover Color. - if ( isset( $theme_options['header-main-rt-sticky-section-button-text-h-color'] ) ) { - $theme_options['sticky-header-button1-text-h-color'] = array( - 'desktop' => $theme_options['header-main-rt-sticky-section-button-text-h-color'], - 'tablet' => '', - 'mobile' => '', - ); - } - // BG Hover Color. - if ( isset( $theme_options['header-main-rt-sticky-section-button-back-h-color'] ) ) { - $theme_options['sticky-header-button1-back-h-color'] = array( - 'desktop' => $theme_options['header-main-rt-sticky-section-button-back-h-color'], - 'tablet' => '', - 'mobile' => '', - ); - } - // Border Width. - if ( isset( $theme_options['header-main-rt-sticky-section-button-border-size'] ) ) { - $theme_options['sticky-header-button1-border-size'] = $theme_options['header-main-rt-sticky-section-button-border-size']; - } - // Border Color. - if ( isset( $theme_options['header-main-rt-sticky-section-button-border-color'] ) ) { - $theme_options['sticky-header-button1-border-color'] = array( - 'desktop' => $theme_options['header-main-rt-sticky-section-button-border-color'], - 'tablet' => '', - 'mobile' => '', - ); - } - // Border Hover Color. - if ( isset( $theme_options['header-main-rt-sticky-section-button-border-h-color'] ) ) { - $theme_options['sticky-header-button1-border-h-color'] = array( - 'desktop' => $theme_options['header-main-rt-sticky-section-button-border-h-color'], - 'tablet' => '', - 'mobile' => '', - ); - } - // Border Radius. - if ( isset( $theme_options['header-main-rt-sticky-section-button-border-radius'] ) ) { - $theme_options['sticky-header-button1-border-radius'] = $theme_options['header-main-rt-sticky-section-button-border-radius']; - } - // Padding. - if ( isset( $theme_options['header-main-rt-sticky-section-button-padding'] ) ) { - $theme_options['sticky-header-button1-padding'] = $theme_options['header-main-rt-sticky-section-button-padding']; - } - - break; - - case 'text-html': - $new_menu_item = 'html-1'; - if ( isset( $theme_options['header-main-rt-section-html'] ) ) { - $theme_options['header-html-1'] = $theme_options['header-main-rt-section-html']; - } - break; - - case 'widget': - $new_menu_item = 'widget-1'; - if ( isset( $widget_options['header-widget'] ) ) { - $widget_options['header-widget-1'] = $widget_options['header-widget']; - } - break; - - case 'woocommerce': - $new_menu_item = 'woo-cart'; - if ( ! empty( $theme_options['woo-header-cart-icon-color'] ) ) { - $theme_options['header-woo-cart-icon-color'] = $theme_options['woo-header-cart-icon-color']; - } - break; - - case 'edd': - $new_menu_item = 'edd-cart'; - break; - } - - $used_elements[] = $new_menu_item; - - $new_menu_item_mobile = ( ! $last_menu_item_mobile_flag ) ? $new_menu_item : ''; - - $new_menu_item_mobile_outside = ''; - if ( ! $last_menu_item_mobile_flag && $last_menu_item_mobile_outside ) { - $new_menu_item_mobile_outside = $new_menu_item; - $new_menu_item_mobile = ''; - } - - $theme_options['header-desktop-items']['above'] = array( - 'above_left' => array(), - 'above_left_center' => array(), - 'above_center' => array(), - 'above_right_center' => array(), - 'above_right' => array(), - ); - $theme_options['header-mobile-items']['above'] = array( - 'above_left' => array(), - 'above_center' => array(), - 'above_right' => array(), - ); - - - $theme_options['header-desktop-items']['below'] = array( - 'below_left' => array(), - 'below_left_center' => array(), - 'below_center' => array(), - 'below_right_center' => array(), - 'below_right' => array(), - ); - - $theme_options['header-mobile-items']['below'] = array( - 'below_left' => array(), - 'below_center' => array(), - 'below_right' => array(), - ); - - /** - * Assign the new locations. - */ - switch ( $primary_header_layout ) { - case 'header-main-layout-1': - $theme_options['header-desktop-items']['primary'] = array( - 'primary_left' => array( 'logo' ), - 'primary_left_center' => array(), - 'primary_center' => array(), - 'primary_right_center' => array(), - 'primary_right' => ( '' !== $new_menu_item ) ? array( 'menu-1', $new_menu_item ) : array( 'menu-1' ), - ); - break; - - case 'header-main-layout-2': - $theme_options['header-desktop-items']['primary'] = array( - 'primary_left' => array(), - 'primary_left_center' => array(), - 'primary_center' => array( 'logo' ), - 'primary_right_center' => array(), - 'primary_right' => array(), - ); - $theme_options['header-desktop-items']['below'] = array( - 'below_left' => array(), - 'below_left_center' => array(), - 'below_center' => ( '' !== $new_menu_item ) ? array( 'menu-1', $new_menu_item ) : array( 'menu-1' ), - 'below_right_center' => array(), - 'below_right' => array(), - ); - break; - - case 'header-main-layout-3': - $theme_options['header-desktop-items']['primary'] = array( - 'primary_left' => ( '' !== $new_menu_item ) ? array( 'menu-1', $new_menu_item ) : array( 'menu-1' ), - 'primary_left_center' => array(), - 'primary_center' => array(), - 'primary_right_center' => array(), - 'primary_right' => array( 'logo' ), - ); - break; - - default: - $theme_options['header-desktop-items']['primary'] = array( - 'primary_left' => array( 'logo' ), - 'primary_left_center' => array(), - 'primary_center' => array(), - 'primary_right_center' => array(), - 'primary_right' => array( 'menu-1' ), - ); - } - - // Header : Primary Header - Mobile Layout. - $mobile_layout = astra_get_option( 'header-main-menu-align' ); - - if ( 'stack' === $mobile_layout ) { - $theme_options['header-mobile-items']['popup'] = array( 'popup_content' => ( '' !== $new_menu_item_mobile && '' !== $new_menu_item_mobile_outside ) ? array( 'menu-1', $new_menu_item_mobile ) : array( 'menu-1' ) ); - - $theme_options['header-mobile-items']['primary'] = array( - 'primary_left' => array(), - 'primary_center' => array( 'logo' ), - 'primary_right' => array(), - ); - - $theme_options['header-mobile-items']['below'] = array( - 'below_left' => array(), - 'below_center' => ( '' !== $new_menu_item_mobile_outside ) ? array( $new_menu_item_mobile_outside, 'mobile-trigger' ) : array( 'mobile-trigger' ), - 'below_right' => array(), - ); - } else { - - $theme_options['header-mobile-items']['popup'] = array( 'popup_content' => ( '' !== $new_menu_item_mobile ) ? array( 'menu-1', $new_menu_item_mobile ) : array( 'menu-1' ) ); - - if ( 'header-main-layout-3' === $primary_header_layout ) { - $theme_options['header-mobile-items']['primary'] = array( - 'primary_left' => ( '' !== $new_menu_item_mobile_outside ) ? array( $new_menu_item_mobile_outside, 'mobile-trigger' ) : array( 'mobile-trigger' ), - 'primary_center' => array(), - 'primary_right' => array( 'logo' ), - ); - } else { - $theme_options['header-mobile-items']['primary'] = array( - 'primary_left' => array( 'logo' ), - 'primary_center' => array(), - 'primary_right' => ( '' !== $new_menu_item_mobile_outside ) ? array( $new_menu_item_mobile_outside, 'mobile-trigger' ) : array( 'mobile-trigger' ), - ); - } - } - - // Header - Primary Header - Content Width. - if ( isset( $theme_options['header-main-layout-width'] ) ) { - $theme_options['hb-header-main-layout-width'] = $theme_options['header-main-layout-width']; - } - - // Header - Primary Header - Border Bottom. - if ( isset( $theme_options['header-main-sep'] ) ) { - $theme_options['hb-header-main-sep'] = $theme_options['header-main-sep']; - } - - if ( isset( $theme_options['header-main-sep-color'] ) ) { - $theme_options['hb-header-main-sep-color'] = $theme_options['header-main-sep-color']; - } - - if ( isset( $theme_options['header-bg-obj-responsive'] ) ) { - $theme_options['hb-header-bg-obj-responsive'] = $theme_options['header-bg-obj-responsive']; - } - - if ( isset( $theme_options['header-spacing'] ) ) { - $theme_options['section-primary-header-builder-padding'] = $theme_options['header-spacing']; - } - - return array( - 'theme_options' => $theme_options, - 'used_elements' => $used_elements, - 'widget_options' => $widget_options, - ); -} - -/** - * Header Footer builder - Migration of Above Header. - * - * @since 3.0.0 - * @param array $theme_options Theme options. - * @param array $used_elements Used Elements array. - * @param array $widget_options Widget options. - * @return array - */ -function astra_above_header_builder_migration( $theme_options, $used_elements, $widget_options ) { - /** - * Above Header. - */ - - $above_header_layout = ( isset( $theme_options['above-header-layout'] ) ) ? $theme_options['above-header-layout'] : ''; - $above_header_on_mobile = ( isset( $theme_options['above-header-on-mobile'] ) ) ? $theme_options['above-header-on-mobile'] : ''; - $above_header_merge_menu = ( isset( $theme_options['above-header-merge-menu'] ) ) ? $theme_options['above-header-merge-menu'] : ''; - $above_header_swap_mobile = ( isset( $theme_options['above-header-swap-mobile'] ) ) ? $theme_options['above-header-swap-mobile'] : ''; - - if ( isset( $theme_options['above-header-height'] ) ) { - $theme_options['hba-header-height'] = array( - 'desktop' => $theme_options['above-header-height'], - 'tablet' => '', - 'mobile' => '', - ); - } - if ( isset( $theme_options['above-header-divider'] ) ) { - $theme_options['hba-header-separator'] = $theme_options['above-header-divider']; - } - if ( isset( $theme_options['above-header-divider-color'] ) ) { - $theme_options['hba-header-bottom-border-color'] = $theme_options['above-header-divider-color']; - } - if ( isset( $theme_options['above-header-bg-obj-responsive'] ) ) { - $theme_options['hba-header-bg-obj-responsive'] = $theme_options['above-header-bg-obj-responsive']; - } - if ( isset( $theme_options['above-header-spacing'] ) ) { - $theme_options['section-above-header-builder-padding'] = $theme_options['above-header-spacing']; - } - // Above Header Section 1. - $above_header_section_1 = ( isset( $theme_options['above-header-section-1'] ) ) ? $theme_options['above-header-section-1'] : ''; - $new_above_header_section_1_item = ''; - - switch ( $above_header_section_1 ) { - case 'menu': - $new_above_header_section_1_item = 'menu-3'; - break; - - case 'search': - if ( ! in_array( 'search', $used_elements ) ) { - $new_above_header_section_1_item = 'search'; - if ( isset( $theme_options['above-header-section-1-search-box-type'] ) ) { - $theme_options['header-search-box-type'] = $theme_options['above-header-section-1-search-box-type']; - } - } - break; - - case 'text-html': - if ( ! in_array( 'html-3', $used_elements ) ) { - $new_above_header_section_1_item = 'html-3'; - if ( isset( $theme_options['above-header-section-1-html'] ) ) { - $theme_options['header-html-3'] = $theme_options['above-header-section-1-html']; - } - } - - break; - - case 'widget': - if ( ! in_array( 'widget-3', $used_elements ) ) { - $new_above_header_section_1_item = 'widget-3'; - if ( isset( $widget_options['above-header-widget-1'] ) ) { - $widget_options['header-widget-3'] = $widget_options['above-header-widget-1']; - } - } - break; - - case 'woocommerce': - if ( ! in_array( 'woo-cart', $used_elements ) ) { - $new_above_header_section_1_item = 'woo-cart'; - } - break; - - case 'edd': - if ( ! in_array( 'edd-cart', $used_elements ) ) { - $new_above_header_section_1_item = 'edd-cart'; - } - break; - } - - // Above Header Section 2. - $above_header_section_2 = ( isset( $theme_options['above-header-section-2'] ) ) ? $theme_options['above-header-section-2'] : ''; - $new_above_header_section_2_item = ''; - switch ( $above_header_section_2 ) { - case 'menu': - $new_above_header_section_2_item = 'menu-3'; - break; - - case 'search': - if ( ! in_array( 'search', $used_elements ) ) { - $new_above_header_section_2_item = 'search'; - if ( isset( $theme_options['above-header-section-2-search-box-type'] ) ) { - $theme_options['header-search-box-type'] = $theme_options['above-header-section-2-search-box-type']; - } - } - break; - - case 'text-html': - if ( ! in_array( 'html-3', $used_elements ) ) { - $new_above_header_section_2_item = 'html-3'; - if ( isset( $theme_options['above-header-section-2-html'] ) ) { - $theme_options['header-html-3'] = $theme_options['above-header-section-2-html']; - } - } - - break; - - case 'widget': - if ( ! in_array( 'widget-3', $used_elements ) ) { - $new_above_header_section_2_item = 'widget-3'; - if ( isset( $widget_options['above-header-widget-2'] ) ) { - $widget_options['header-widget-3'] = $widget_options['above-header-widget-2']; - } - } - break; - - case 'woocommerce': - if ( ! in_array( 'woo-cart', $used_elements ) ) { - $new_above_header_section_2_item = 'woo-cart'; - } - break; - - case 'edd': - if ( ! in_array( 'edd-cart', $used_elements ) ) { - $new_above_header_section_2_item = 'edd-cart'; - } - break; - } - - if ( 'menu' === $above_header_section_1 || 'menu' === $above_header_section_2 ) { - $theme_options['header-menu3-menu-stack-on-mobile'] = false; - /** - * Menu - 3 - */ - if ( isset( $theme_options['above-header-submenu-container-animation'] ) ) { - $theme_options['header-menu3-submenu-container-animation'] = $theme_options['above-header-submenu-container-animation']; - } - if ( isset( $theme_options['above-header-submenu-border'] ) ) { - $theme_options['header-menu3-submenu-border'] = $theme_options['above-header-submenu-border']; - } - if ( isset( $theme_options['above-header-submenu-b-color'] ) ) { - $theme_options['header-menu3-submenu-b-color'] = $theme_options['above-header-submenu-b-color']; - } - if ( isset( $theme_options['above-header-submenu-item-border'] ) ) { - $theme_options['header-menu3-submenu-item-border'] = $theme_options['above-header-submenu-item-border']; - } - if ( isset( $theme_options['above-header-submenu-item-b-color'] ) ) { - $theme_options['header-menu3-submenu-item-b-color'] = $theme_options['above-header-submenu-item-b-color']; - } - - if ( isset( $theme_options['above-header-menu-text-color-responsive'] ) ) { - $theme_options['header-menu3-color-responsive'] = $theme_options['above-header-menu-text-color-responsive']; - } - if ( isset( $theme_options['above-header-menu-bg-obj-responsive'] ) ) { - $theme_options['header-menu3-bg-obj-responsive'] = $theme_options['above-header-menu-bg-obj-responsive']; - } - - if ( isset( $theme_options['above-header-menu-text-hover-color-responsive'] ) ) { - $theme_options['header-menu3-h-color-responsive'] = $theme_options['above-header-menu-text-hover-color-responsive']; - } - if ( isset( $theme_options['above-header-menu-bg-hover-color-responsive'] ) ) { - $theme_options['header-menu3-h-bg-color-responsive'] = $theme_options['above-header-menu-bg-hover-color-responsive']; - } - - if ( isset( $theme_options['above-header-current-menu-text-color-responsive'] ) ) { - $theme_options['header-menu3-a-color-responsive'] = $theme_options['above-header-current-menu-text-color-responsive']; - } - if ( isset( $theme_options['above-header-current-menu-bg-color-responsive'] ) ) { - $theme_options['header-menu3-a-bg-color-responsive'] = $theme_options['above-header-current-menu-bg-color-responsive']; - } - - if ( isset( $theme_options['above-header-font-size'] ) ) { - $theme_options['header-menu3-font-size'] = $theme_options['above-header-font-size']; - } - if ( isset( $theme_options['above-header-font-weight'] ) ) { - $theme_options['header-menu3-font-weight'] = $theme_options['above-header-font-weight']; - } - if ( isset( $theme_options['above-header-line-height'] ) ) { - $theme_options['header-menu3-line-height'] = $theme_options['above-header-line-height']; - } - if ( isset( $theme_options['above-header-font-family'] ) ) { - $theme_options['header-menu3-font-family'] = $theme_options['above-header-font-family']; - } - if ( isset( $theme_options['above-header-text-transform'] ) ) { - $theme_options['header-menu3-text-transform'] = $theme_options['above-header-text-transform']; - } - - if ( isset( $theme_options['above-header-menu-spacing'] ) ) { - $theme_options['header-menu3-menu-spacing'] = $theme_options['above-header-menu-spacing']; - } - - // Menu 3 - Submenu. - if ( isset( $theme_options['above-header-submenu-text-color-responsive'] ) ) { - $theme_options['header-menu3-submenu-color-responsive'] = $theme_options['above-header-submenu-text-color-responsive']; - } - if ( isset( $theme_options['above-header-submenu-bg-color-responsive'] ) ) { - $theme_options['header-menu3-submenu-bg-color-responsive'] = $theme_options['above-header-submenu-bg-color-responsive']; - } - - if ( isset( $theme_options['above-header-submenu-hover-color-responsive'] ) ) { - $theme_options['header-menu3-submenu-h-color-responsive'] = $theme_options['above-header-submenu-hover-color-responsive']; - } - if ( isset( $theme_options['above-header-submenu-bg-hover-color-responsive'] ) ) { - $theme_options['header-menu3-submenu-h-bg-color-responsive'] = $theme_options['above-header-submenu-bg-hover-color-responsive']; - } - - if ( isset( $theme_options['above-header-submenu-active-color-responsive'] ) ) { - $theme_options['header-menu3-submenu-a-color-responsive'] = $theme_options['above-header-submenu-active-color-responsive']; - } - if ( isset( $theme_options['above-header-submenu-active-bg-color-responsive'] ) ) { - $theme_options['header-menu3-submenu-a-bg-color-responsive'] = $theme_options['above-header-submenu-active-bg-color-responsive']; - } - - if ( isset( $theme_options['font-size-above-header-dropdown-menu'] ) ) { - $theme_options['header-font-size-menu3-sub-menu'] = $theme_options['font-size-above-header-dropdown-menu']; - } - if ( isset( $theme_options['font-weight-above-header-dropdown-menu'] ) ) { - $theme_options['header-font-weight-menu3-sub-menu'] = $theme_options['font-weight-above-header-dropdown-menu']; - } - if ( isset( $theme_options['line-height-above-header-dropdown-menu'] ) ) { - $theme_options['header-line-height-menu3-sub-menu'] = $theme_options['line-height-above-header-dropdown-menu']; - } - if ( isset( $theme_options['font-family-above-header-dropdown-menu'] ) ) { - $theme_options['header-font-family-menu3-sub-menu'] = $theme_options['font-family-above-header-dropdown-menu']; - } - if ( isset( $theme_options['text-transform-above-header-dropdown-menu'] ) ) { - $theme_options['header-text-transform-menu3-sub-menu'] = $theme_options['text-transform-above-header-dropdown-menu']; - } - - if ( isset( $theme_options['above-header-submenu-spacing'] ) ) { - $theme_options['header-menu3-submenu-spacing'] = $theme_options['above-header-submenu-spacing']; - } - } - - if ( 'search' === $above_header_section_1 || 'search' === $above_header_section_2 ) { - if ( isset( $theme_options['above-header-text-color-responsive'] ) ) { - $theme_options['header-search-icon-color'] = $theme_options['above-header-text-color-responsive']; - } - } - - if ( 'text-html' === $above_header_section_1 || 'text-html' === $above_header_section_2 ) { - if ( isset( $theme_options['above-header-text-color-responsive'] ) ) { - $theme_options['header-html-3color'] = $theme_options['above-header-text-color-responsive']; - } - if ( isset( $theme_options['above-header-link-color-responsive'] ) ) { - $theme_options['header-html-3link-color'] = $theme_options['above-header-link-color-responsive']; - } - if ( isset( $theme_options['above-header-link-hover-color-responsive'] ) ) { - $theme_options['header-html-3link-h-color'] = $theme_options['above-header-link-hover-color-responsive']; - } - if ( isset( $theme_options['font-size-above-header-content'] ) ) { - $theme_options['font-size-section-hb-html-3'] = $theme_options['font-size-above-header-content']; - } - if ( isset( $theme_options['font-weight-above-header-content'] ) ) { - $theme_options['font-weight-section-hb-html-3'] = $theme_options['font-weight-above-header-content']; - } - if ( isset( $theme_options['line-height-above-header-content'] ) ) { - $theme_options['line-height-section-hb-html-3'] = $theme_options['line-height-above-header-content']; - } - if ( isset( $theme_options['font-family-above-header-content'] ) ) { - $theme_options['font-family-section-hb-html-3'] = $theme_options['font-family-above-header-content']; - } - if ( isset( $theme_options['text-transform-above-header-content'] ) ) { - $theme_options['text-transform-section-hb-html-3'] = $theme_options['text-transform-above-header-content']; - } - } - - if ( 'widget' === $above_header_section_1 || 'widget' === $above_header_section_2 ) { - if ( isset( $theme_options['above-header-text-color-responsive'] ) ) { - $theme_options['header-widget-3-color'] = $theme_options['above-header-text-color-responsive']; - $theme_options['header-widget-3-title-color'] = $theme_options['above-header-text-color-responsive']; - } - if ( isset( $theme_options['above-header-link-color-responsive'] ) ) { - $theme_options['header-widget-3-link-color'] = $theme_options['above-header-link-color-responsive']; - } - if ( isset( $theme_options['above-header-link-hover-color-responsive'] ) ) { - $theme_options['header-widget-3-link-h-color'] = $theme_options['above-header-link-hover-color-responsive']; - } - if ( isset( $theme_options['font-size-above-header-content'] ) ) { - $theme_options['header-widget-3-content-font-size'] = $theme_options['font-size-above-header-content']; - } - if ( isset( $theme_options['font-weight-above-header-content'] ) ) { - $theme_options['header-widget-3-content-font-weight'] = $theme_options['font-weight-above-header-content']; - } - if ( isset( $theme_options['line-height-above-header-content'] ) ) { - $theme_options['header-widget-3-content-line-height'] = $theme_options['line-height-above-header-content']; - } - if ( isset( $theme_options['font-family-above-header-content'] ) ) { - $theme_options['header-widget-3-content-font-family'] = $theme_options['font-family-above-header-content']; - } - if ( isset( $theme_options['text-transform-above-header-content'] ) ) { - $theme_options['header-widget-3-content-text-transform'] = $theme_options['text-transform-above-header-content']; - } - } - - switch ( $above_header_layout ) { - - case 'above-header-layout-1': - $theme_options['header-desktop-items']['above'] = array( - 'above_left' => ( '' !== $new_above_header_section_1_item ) ? array( $new_above_header_section_1_item ) : array(), - 'above_left_center' => array(), - 'above_center' => array(), - 'above_right_center' => array(), - 'above_right' => ( '' !== $new_above_header_section_2_item ) ? array( $new_above_header_section_2_item ) : array(), - ); - break; - - case 'above-header-layout-2': - $theme_options['header-desktop-items']['above'] = array( - 'above_left' => array(), - 'above_left_center' => array(), - 'above_center' => ( '' !== $new_above_header_section_1_item ) ? array( $new_above_header_section_1_item ) : array(), - 'above_right_center' => array(), - 'above_right' => array(), - ); - break; - } - - if ( $above_header_on_mobile ) { - - if ( $above_header_swap_mobile && ( 'menu' === $above_header_section_1 || 'menu' === $above_header_section_2 ) ) { - $temp = $new_above_header_section_1_item; - $new_above_header_section_1_item = $new_above_header_section_2_item; - $new_above_header_section_2_item = $temp; - } - - if ( $above_header_merge_menu && ( 'menu' === $above_header_section_1 || 'menu' === $above_header_section_2 ) ) { - if ( '' !== $new_above_header_section_1_item ) { - $theme_options['header-mobile-items']['popup']['popup_content'][] = $new_above_header_section_1_item; - } - if ( '' !== $new_above_header_section_2_item ) { - $theme_options['header-mobile-items']['popup']['popup_content'][] = $new_above_header_section_2_item; - } - $theme_options['header-menu3-menu-stack-on-mobile'] = true; - $theme_options['header-mobile-items']['above'] = array( - 'above_left' => array(), - 'above_center' => array(), - 'above_right' => array(), - ); - } else { - switch ( $above_header_layout ) { - - case 'above-header-layout-1': - $theme_options['header-mobile-items']['above'] = array( - 'above_left' => ( '' !== $new_above_header_section_1_item ) ? array( $new_above_header_section_1_item ) : array(), - 'above_center' => array(), - 'above_right' => ( '' !== $new_above_header_section_2_item ) ? array( $new_above_header_section_2_item ) : array(), - ); - break; - - case 'above-header-layout-2': - $theme_options['header-mobile-items']['above'] = array( - 'above_left' => array(), - 'above_center' => ( '' !== $new_above_header_section_1_item ) ? array( $new_above_header_section_1_item ) : array(), - 'above_right' => array(), - ); - break; - } - } - } - - return array( - 'theme_options' => $theme_options, - 'used_elements' => $used_elements, - 'widget_options' => $widget_options, - ); - -} - -/** - * Header Footer builder - Migration of Below Header. - * - * @since 3.0.0 - * @param array $theme_options Theme options. - * @param array $used_elements Used Elements array. - * @param array $widget_options Widget options. - * @return array - */ -function astra_below_header_builder_migration( $theme_options, $used_elements, $widget_options ) { - /** - * Below Header - */ - - $below_header_layout = ( isset( $theme_options['below-header-layout'] ) ) ? $theme_options['below-header-layout'] : ''; - $below_header_on_mobile = ( isset( $theme_options['below-header-on-mobile'] ) ) ? $theme_options['below-header-on-mobile'] : ''; - $below_header_merge_menu = ( isset( $theme_options['below-header-merge-menu'] ) ) ? $theme_options['below-header-merge-menu'] : ''; - $below_header_swap_mobile = ( isset( $theme_options['below-header-swap-mobile'] ) ) ? $theme_options['below-header-swap-mobile'] : ''; - - if ( isset( $theme_options['below-header-height'] ) ) { - $theme_options['hbb-header-height'] = array( - 'desktop' => $theme_options['below-header-height'], - 'tablet' => '', - 'mobile' => '', - ); - } - - if ( isset( $theme_options['below-header-divider'] ) ) { - $theme_options['hbb-header-separator'] = $theme_options['below-header-divider']; - } - if ( isset( $theme_options['below-header-divider-color'] ) ) { - $theme_options['hbb-header-bottom-border-color'] = $theme_options['below-header-divider-color']; - } - if ( isset( $theme_options['below-header-bg-obj-responsive'] ) ) { - $theme_options['hbb-header-bg-obj-responsive'] = $theme_options['below-header-bg-obj-responsive']; - } - if ( isset( $theme_options['below-header-spacing'] ) ) { - $theme_options['section-below-header-builder-padding'] = $theme_options['below-header-spacing']; - } - // Below Header Section 1. - $below_header_section_1 = ( isset( $theme_options['below-header-section-1'] ) ) ? $theme_options['below-header-section-1'] : ''; - $new_below_header_section_1_item = ''; - switch ( $below_header_section_1 ) { - case 'menu': - $new_below_header_section_1_item = 'menu-2'; - break; - - case 'search': - if ( ! in_array( 'search', $used_elements ) ) { - $new_below_header_section_1_item = 'search'; - if ( isset( $theme_options['below-header-section-1-search-box-type'] ) ) { - $theme_options['header-search-box-type'] = $theme_options['below-header-section-1-search-box-type']; - } - } - break; - - case 'text-html': - if ( ! in_array( 'html-2', $used_elements ) ) { - $new_below_header_section_1_item = 'html-2'; - if ( isset( $theme_options['below-header-section-1-html'] ) ) { - $theme_options['header-html-2'] = $theme_options['below-header-section-1-html']; - } - } - - break; - - case 'widget': - if ( ! in_array( 'widget-2', $used_elements ) ) { - $new_below_header_section_1_item = 'widget-2'; - if ( isset( $widget_options['below-header-widget-1'] ) ) { - $widget_options['header-widget-2'] = $widget_options['below-header-widget-1']; - } - } - break; - - case 'woocommerce': - if ( ! in_array( 'woo-cart', $used_elements ) ) { - $new_below_header_section_1_item = 'woo-cart'; - } - break; - - case 'edd': - if ( ! in_array( 'edd-cart', $used_elements ) ) { - $new_below_header_section_1_item = 'edd-cart'; - } - break; - } - - // Below Header Section 2. - $below_header_section_2 = ( isset( $theme_options['below-header-section-2'] ) ) ? $theme_options['below-header-section-2'] : ''; - $new_below_header_section_2_item = ''; - switch ( $below_header_section_2 ) { - case 'menu': - $new_below_header_section_2_item = 'menu-2'; - break; - - case 'search': - if ( ! in_array( 'search', $used_elements ) ) { - $new_below_header_section_2_item = 'search'; - if ( isset( $theme_options['below-header-section-2-search-box-type'] ) ) { - $theme_options['header-search-box-type'] = $theme_options['below-header-section-2-search-box-type']; - } - } - break; - - case 'text-html': - if ( ! in_array( 'html-2', $used_elements ) ) { - $new_below_header_section_2_item = 'html-2'; - if ( isset( $theme_options['below-header-section-2-html'] ) ) { - $theme_options['header-html-2'] = $theme_options['below-header-section-2-html']; - } - } - break; - - case 'widget': - if ( ! in_array( 'widget-2', $used_elements ) ) { - $new_below_header_section_2_item = 'widget-2'; - if ( isset( $widget_options['below-header-widget-2'] ) ) { - $widget_options['header-widget-2'] = $widget_options['below-header-widget-2']; - } - } - break; - - case 'woocommerce': - if ( ! in_array( 'woo-cart', $used_elements ) ) { - $new_below_header_section_2_item = 'woo-cart'; - } - break; - - case 'edd': - if ( ! in_array( 'edd-cart', $used_elements ) ) { - $new_below_header_section_2_item = 'edd-cart'; - } - break; - } - - if ( 'menu' === $below_header_section_1 || 'menu' === $below_header_section_2 ) { - $theme_options['header-menu2-menu-stack-on-mobile'] = false; - /** - * Menu - 2 - */ - if ( isset( $theme_options['below-header-submenu-container-animation'] ) ) { - $theme_options['header-menu2-submenu-container-animation'] = $theme_options['below-header-submenu-container-animation']; - } - if ( isset( $theme_options['below-header-submenu-border'] ) ) { - $theme_options['header-menu2-submenu-border'] = $theme_options['below-header-submenu-border']; - } - if ( isset( $theme_options['below-header-submenu-b-color'] ) ) { - $theme_options['header-menu2-submenu-b-color'] = $theme_options['below-header-submenu-b-color']; - } - if ( isset( $theme_options['below-header-submenu-item-border'] ) ) { - $theme_options['header-menu2-submenu-item-border'] = $theme_options['below-header-submenu-item-border']; - } - if ( isset( $theme_options['below-header-submenu-item-b-color'] ) ) { - $theme_options['header-menu2-submenu-item-b-color'] = $theme_options['below-header-submenu-item-b-color']; - } - - if ( isset( $theme_options['below-header-menu-text-color-responsive'] ) ) { - $theme_options['header-menu2-color-responsive'] = $theme_options['below-header-menu-text-color-responsive']; - } - if ( isset( $theme_options['below-header-menu-bg-obj-responsive'] ) ) { - $theme_options['header-menu2-bg-obj-responsive'] = $theme_options['below-header-menu-bg-obj-responsive']; - } - - if ( isset( $theme_options['below-header-menu-text-hover-color-responsive'] ) ) { - $theme_options['header-menu2-h-color-responsive'] = $theme_options['below-header-menu-text-hover-color-responsive']; - } - if ( isset( $theme_options['below-header-menu-bg-hover-color-responsive'] ) ) { - $theme_options['header-menu2-h-bg-color-responsive'] = $theme_options['below-header-menu-bg-hover-color-responsive']; - } - - if ( isset( $theme_options['below-header-current-menu-text-color-responsive'] ) ) { - $theme_options['header-menu2-a-color-responsive'] = $theme_options['below-header-current-menu-text-color-responsive']; - } - if ( isset( $theme_options['below-header-current-menu-bg-color-responsive'] ) ) { - $theme_options['header-menu2-a-bg-color-responsive'] = $theme_options['below-header-current-menu-bg-color-responsive']; - } - - if ( isset( $theme_options['below-header-font-size'] ) ) { - $theme_options['header-menu2-font-size'] = $theme_options['below-header-font-size']; - } - if ( isset( $theme_options['below-header-font-weight'] ) ) { - $theme_options['header-menu2-font-weight'] = $theme_options['below-header-font-weight']; - } - if ( isset( $theme_options['below-header-line-height'] ) ) { - $theme_options['header-menu2-line-height'] = $theme_options['below-header-line-height']; - } - if ( isset( $theme_options['below-header-font-family'] ) ) { - $theme_options['header-menu2-font-family'] = $theme_options['below-header-font-family']; - } - if ( isset( $theme_options['below-header-text-transform'] ) ) { - $theme_options['header-menu2-text-transform'] = $theme_options['below-header-text-transform']; - } - - if ( isset( $theme_options['below-header-menu-spacing'] ) ) { - $theme_options['header-menu2-menu-spacing'] = $theme_options['below-header-menu-spacing']; - } - - // Menu 2 - Submenu. - if ( isset( $theme_options['below-header-submenu-text-color-responsive'] ) ) { - $theme_options['header-menu2-submenu-color-responsive'] = $theme_options['below-header-submenu-text-color-responsive']; - } - if ( isset( $theme_options['below-header-submenu-bg-color-responsive'] ) ) { - $theme_options['header-menu2-submenu-bg-color-responsive'] = $theme_options['below-header-submenu-bg-color-responsive']; - } - - if ( isset( $theme_options['below-header-submenu-hover-color-responsive'] ) ) { - $theme_options['header-menu2-submenu-h-color-responsive'] = $theme_options['below-header-submenu-hover-color-responsive']; - } - if ( isset( $theme_options['below-header-submenu-bg-hover-color-responsive'] ) ) { - $theme_options['header-menu2-submenu-h-bg-color-responsive'] = $theme_options['below-header-submenu-bg-hover-color-responsive']; - } - - if ( isset( $theme_options['below-header-submenu-active-color-responsive'] ) ) { - $theme_options['header-menu2-submenu-a-color-responsive'] = $theme_options['below-header-submenu-active-color-responsive']; - } - if ( isset( $theme_options['below-header-submenu-active-bg-color-responsive'] ) ) { - $theme_options['header-menu2-submenu-a-bg-color-responsive'] = $theme_options['below-header-submenu-active-bg-color-responsive']; - } - - if ( isset( $theme_options['font-size-below-header-dropdown-menu'] ) ) { - $theme_options['header-font-size-menu2-sub-menu'] = $theme_options['font-size-below-header-dropdown-menu']; - } - if ( isset( $theme_options['font-weight-below-header-dropdown-menu'] ) ) { - $theme_options['header-font-weight-menu2-sub-menu'] = $theme_options['font-weight-below-header-dropdown-menu']; - } - if ( isset( $theme_options['line-height-below-header-dropdown-menu'] ) ) { - $theme_options['header-line-height-menu2-sub-menu'] = $theme_options['line-height-below-header-dropdown-menu']; - } - if ( isset( $theme_options['font-family-below-header-dropdown-menu'] ) ) { - $theme_options['header-font-family-menu2-sub-menu'] = $theme_options['font-family-below-header-dropdown-menu']; - } - if ( isset( $theme_options['text-transform-below-header-dropdown-menu'] ) ) { - $theme_options['header-text-transform-menu2-sub-menu'] = $theme_options['text-transform-below-header-dropdown-menu']; - } - - if ( isset( $theme_options['below-header-submenu-spacing'] ) ) { - $theme_options['header-menu2-submenu-spacing'] = $theme_options['below-header-submenu-spacing']; - } - } - - if ( 'search' === $below_header_section_1 || 'search' === $below_header_section_2 ) { - if ( isset( $theme_options['below-header-text-color-responsive'] ) ) { - $theme_options['header-search-icon-color'] = $theme_options['below-header-text-color-responsive']; - } - } - - if ( 'text-html' === $below_header_section_1 || 'text-html' === $below_header_section_2 ) { - if ( isset( $theme_options['below-header-text-color-responsive'] ) ) { - $theme_options['header-html-2color'] = $theme_options['below-header-text-color-responsive']; - } - if ( isset( $theme_options['below-header-link-color-responsive'] ) ) { - $theme_options['header-html-2link-color'] = $theme_options['below-header-link-color-responsive']; - } - if ( isset( $theme_options['below-header-link-hover-color-responsive'] ) ) { - $theme_options['header-html-2link-h-color'] = $theme_options['below-header-link-hover-color-responsive']; - } - if ( isset( $theme_options['font-size-below-header-content'] ) ) { - $theme_options['font-size-section-hb-html-2'] = $theme_options['font-size-below-header-content']; - } - if ( isset( $theme_options['font-weight-below-header-content'] ) ) { - $theme_options['font-weight-section-hb-html-2'] = $theme_options['font-weight-below-header-content']; - } - if ( isset( $theme_options['line-height-below-header-content'] ) ) { - $theme_options['line-height-section-hb-html-2'] = $theme_options['line-height-below-header-content']; - } - if ( isset( $theme_options['font-family-below-header-content'] ) ) { - $theme_options['font-family-section-hb-html-2'] = $theme_options['font-family-below-header-content']; - } - if ( isset( $theme_options['text-transform-below-header-content'] ) ) { - $theme_options['text-transform-section-hb-html-2'] = $theme_options['text-transform-below-header-content']; - } - } - - if ( 'widget' === $below_header_section_1 || 'widget' === $below_header_section_2 ) { - if ( isset( $theme_options['below-header-text-color-responsive'] ) ) { - $theme_options['header-widget-2-color'] = $theme_options['below-header-text-color-responsive']; - $theme_options['header-widget-2-title-color'] = $theme_options['below-header-text-color-responsive']; - } - if ( isset( $theme_options['below-header-link-color-responsive'] ) ) { - $theme_options['header-widget-2-link-color'] = $theme_options['below-header-link-color-responsive']; - } - if ( isset( $theme_options['below-header-link-hover-color-responsive'] ) ) { - $theme_options['header-widget-2-link-h-color'] = $theme_options['below-header-link-hover-color-responsive']; - } - if ( isset( $theme_options['font-size-below-header-content'] ) ) { - $theme_options['header-widget-2-content-font-size'] = $theme_options['font-size-below-header-content']; - } - if ( isset( $theme_options['font-weight-below-header-content'] ) ) { - $theme_options['header-widget-2-content-font-weight'] = $theme_options['font-weight-below-header-content']; - } - if ( isset( $theme_options['line-height-below-header-content'] ) ) { - $theme_options['header-widget-2-content-line-height'] = $theme_options['line-height-below-header-content']; - } - if ( isset( $theme_options['font-family-below-header-content'] ) ) { - $theme_options['header-widget-2-content-font-family'] = $theme_options['font-family-below-header-content']; - } - if ( isset( $theme_options['text-transform-below-header-content'] ) ) { - $theme_options['header-widget-2-content-text-transform'] = $theme_options['text-transform-below-header-content']; - } - } - - switch ( $below_header_layout ) { - - case 'below-header-layout-1': - $theme_options['header-desktop-items']['below'] = array( - 'below_left' => ( '' !== $new_below_header_section_1_item ) ? array( $new_below_header_section_1_item ) : array(), - 'below_left_center' => array(), - 'below_center' => array(), - 'below_right_center' => array(), - 'below_right' => ( '' !== $new_below_header_section_2_item ) ? array( $new_below_header_section_2_item ) : array(), - ); - break; - - case 'below-header-layout-2': - $theme_options['header-desktop-items']['below'] = array( - 'below_left' => array(), - 'below_left_center' => array(), - 'below_center' => ( '' !== $new_below_header_section_1_item ) ? array( $new_below_header_section_1_item ) : array(), - 'below_right_center' => array(), - 'below_right' => array(), - ); - break; - } - - if ( $below_header_on_mobile ) { - - if ( $below_header_swap_mobile && ( 'menu' === $below_header_section_1 || 'menu' === $below_header_section_2 ) ) { - $temp = $new_below_header_section_1_item; - $new_below_header_section_1_item = $new_below_header_section_2_item; - $new_below_header_section_2_item = $temp; - } - - if ( $below_header_merge_menu && ( 'menu' === $below_header_section_1 || 'menu' === $below_header_section_2 ) ) { - if ( '' !== $new_below_header_section_1_item ) { - $theme_options['header-mobile-items']['popup']['popup_content'][] = $new_below_header_section_1_item; - } - if ( '' !== $new_below_header_section_2_item ) { - $theme_options['header-mobile-items']['popup']['popup_content'][] = $new_below_header_section_2_item; - } - $theme_options['header-menu2-menu-stack-on-mobile'] = true; - $theme_options['header-mobile-items']['below'] = array( - 'below_left' => array(), - 'below_center' => array(), - 'below_right' => array(), - ); - } else { - switch ( $below_header_layout ) { - - case 'below-header-layout-1': - $theme_options['header-mobile-items']['below'] = array( - 'below_left' => ( '' !== $new_below_header_section_1_item ) ? array( $new_below_header_section_1_item ) : array(), - 'below_center' => array(), - 'below_right' => ( '' !== $new_below_header_section_2_item ) ? array( $new_below_header_section_2_item ) : array(), - ); - break; - - case 'below-header-layout-2': - $theme_options['header-mobile-items']['below'] = array( - 'below_left' => array(), - 'below_center' => ( '' !== $new_below_header_section_1_item ) ? array( $new_below_header_section_1_item ) : array(), - 'below_right' => array(), - ); - break; - } - } - } - - return array( - 'theme_options' => $theme_options, - 'used_elements' => $used_elements, - 'widget_options' => $widget_options, - ); -} - -/** - * Header Footer builder - Migration of Footer. - * - * @since 3.0.0 - * @param array $theme_options Theme options. - * @param array $used_elements Used Elements array. - * @param array $widget_options Widget options. - * @return array - */ -function astra_footer_builder_migration( $theme_options, $used_elements, $widget_options ) { - /** - * Footer - */ - $footer_layout = ( isset( $theme_options['footer-sml-layout'] ) ) ? $theme_options['footer-sml-layout'] : ''; - - if ( isset( $theme_options['footer-layout-width'] ) ) { - $theme_options['hb-footer-layout-width'] = $theme_options['footer-layout-width']; - } - if ( isset( $theme_options['footer-sml-divider'] ) ) { - $theme_options['hbb-footer-separator'] = $theme_options['footer-sml-divider']; - } - if ( isset( $theme_options['footer-sml-divider-color'] ) ) { - $theme_options['hbb-footer-top-border-color'] = $theme_options['footer-sml-divider-color']; - } - if ( isset( $theme_options['footer-bg-obj'] ) ) { - $theme_options['hbb-footer-bg-obj-responsive'] = array( - 'desktop' => $theme_options['footer-bg-obj'], - 'tablet' => '', - 'mobile' => '', - ); - } - if ( isset( $theme_options['footer-sml-spacing'] ) ) { - $theme_options['section-below-footer-builder-padding'] = $theme_options['footer-sml-spacing']; - } - - // Footer Section 1. - $footer_section_1 = ( isset( $theme_options['footer-sml-section-1'] ) ) ? $theme_options['footer-sml-section-1'] : ''; - $new_section_1_item = ''; - $used_elements[] = $new_section_1_item; - - $footer_section_2 = ( isset( $theme_options['footer-sml-section-2'] ) ) ? $theme_options['footer-sml-section-2'] : ''; - $new_section_2_item = ''; - $used_elements[] = $new_section_2_item; - - switch ( $footer_section_1 ) { - case 'custom': - $new_section_1_item = 'copyright'; - $theme_options['footer-copyright-alignment'] = array( - 'desktop' => ( 'footer-sml-layout-1' === $footer_layout ) ? 'center' : 'left', - 'tablet' => ( 'footer-sml-layout-1' === $footer_layout ) ? 'center' : 'left', - 'mobile' => 'center', - ); - break; - - case 'widget': - $new_section_1_item = 'widget-1'; - $theme_options['footer-widget-alignment-1'] = array( - 'desktop' => ( 'footer-sml-layout-1' === $footer_layout ) ? 'center' : 'left', - 'tablet' => ( 'footer-sml-layout-1' === $footer_layout ) ? 'center' : 'left', - 'mobile' => 'center', - ); - if ( isset( $theme_options['footer-color'] ) ) { - $theme_options['footer-widget-1-color'] = array( - 'desktop' => $theme_options['footer-color'], - 'tablet' => '', - 'mobile' => '', - ); - } - if ( isset( $theme_options['footer-link-color'] ) ) { - $theme_options['footer-widget-1-link-color'] = array( - 'desktop' => $theme_options['footer-link-color'], - 'tablet' => '', - 'mobile' => '', - ); - } - if ( isset( $theme_options['footer-link-h-color'] ) ) { - $theme_options['footer-widget-1-link-h-color'] = array( - 'desktop' => $theme_options['footer-link-h-color'], - 'tablet' => '', - 'mobile' => '', - ); - } - - if ( isset( $theme_options['font-size-footer-content'] ) ) { - $theme_options['footer-widget-1-content-font-size'] = $theme_options['font-size-footer-content']; - } - - if ( isset( $theme_options['font-weight-footer-content'] ) ) { - $theme_options['footer-widget-1-content-font-weight'] = $theme_options['font-weight-footer-content']; - } - - if ( isset( $theme_options['line-height-footer-content'] ) ) { - $theme_options['footer-widget-1-content-line-height'] = $theme_options['line-height-footer-content']; - } - - if ( isset( $theme_options['font-family-footer-content'] ) ) { - $theme_options['footer-widget-1-content-font-family'] = $theme_options['font-family-footer-content']; - } - - if ( isset( $theme_options['text-transform-footer-content'] ) ) { - $theme_options['footer-widget-1-content-text-transform'] = $theme_options['text-transform-footer-content']; - } - - - break; - - case 'menu': - $theme_options['footer-menu-alignment'] = array( - 'desktop' => ( 'footer-sml-layout-1' === $footer_layout ) ? 'center' : 'flex-start', - 'tablet' => ( 'footer-sml-layout-1' === $footer_layout ) ? 'center' : 'flex-start', - 'mobile' => 'center', - ); - $new_section_1_item = 'menu'; - break; - } - - // Footer Section 2. - switch ( $footer_section_2 ) { - case 'custom': - $new_section_2_item = ( 'copyright' !== $new_section_1_item ) ? 'copyright' : 'html-1'; - if ( 'copyright' !== $new_section_1_item ) { - $theme_options['footer-copyright-alignment'] = array( - 'desktop' => ( 'footer-sml-layout-1' === $footer_layout ) ? 'center' : 'right', - 'tablet' => ( 'footer-sml-layout-1' === $footer_layout ) ? 'center' : 'right', - 'mobile' => 'center', - ); - if ( isset( $theme_options['footer-sml-section-2-credit'] ) ) { - $theme_options['footer-copyright-editor'] = $theme_options['footer-sml-section-2-credit']; - } - } else { - $theme_options['footer-html-1-alignment'] = array( - 'desktop' => ( 'footer-sml-layout-1' === $footer_layout ) ? 'center' : 'right', - 'tablet' => ( 'footer-sml-layout-1' === $footer_layout ) ? 'center' : 'right', - 'mobile' => 'center', - ); - if ( isset( $theme_options['footer-sml-section-2-credit'] ) ) { - $theme_options['footer-html-1'] = $theme_options['footer-sml-section-2-credit']; - } - } - - break; - - case 'widget': - $new_section_2_item = 'widget-2'; - $theme_options['footer-widget-alignment-2'] = array( - 'desktop' => ( 'footer-sml-layout-1' === $footer_layout ) ? 'center' : 'right', - 'tablet' => ( 'footer-sml-layout-1' === $footer_layout ) ? 'center' : 'right', - 'mobile' => 'center', - ); - if ( isset( $theme_options['footer-color'] ) ) { - $theme_options['footer-widget-2-color'] = array( - 'desktop' => $theme_options['footer-color'], - 'tablet' => '', - 'mobile' => '', - ); - } - if ( isset( $theme_options['footer-link-color'] ) ) { - $theme_options['footer-widget-2-link-color'] = array( - 'desktop' => $theme_options['footer-link-color'], - 'tablet' => '', - 'mobile' => '', - ); - } - if ( isset( $theme_options['footer-link-h-color'] ) ) { - $theme_options['footer-widget-2-link-h-color'] = array( - 'desktop' => $theme_options['footer-link-h-color'], - 'tablet' => '', - 'mobile' => '', - ); - } - - if ( isset( $theme_options['font-size-footer-content'] ) ) { - $theme_options['footer-widget-2-content-font-size'] = $theme_options['font-size-footer-content']; - } - - if ( isset( $theme_options['font-weight-footer-content'] ) ) { - $theme_options['footer-widget-2-content-font-weight'] = $theme_options['font-weight-footer-content']; - } - - if ( isset( $theme_options['line-height-footer-content'] ) ) { - $theme_options['footer-widget-2-content-line-height'] = $theme_options['line-height-footer-content']; - } - - if ( isset( $theme_options['font-family-footer-content'] ) ) { - $theme_options['footer-widget-2-content-font-family'] = $theme_options['font-family-footer-content']; - } - - if ( isset( $theme_options['text-transform-footer-content'] ) ) { - $theme_options['footer-widget-2-content-text-transform'] = $theme_options['text-transform-footer-content']; - } - - - break; - - case 'menu': - $new_section_2_item = 'menu'; - $theme_options['footer-menu-alignment'] = array( - 'desktop' => ( 'footer-sml-layout-1' === $footer_layout ) ? 'center' : 'flex-end', - 'tablet' => ( 'footer-sml-layout-1' === $footer_layout ) ? 'center' : 'flex-end', - 'mobile' => 'center', - ); - break; - } - - if ( 'custom' === $footer_section_1 || 'custom' === $footer_section_2 ) { - - // Footer Content Color migrated to Copyright. - if ( isset( $theme_options['footer-sml-section-1-credit'] ) ) { - $theme_options['footer-copyright-editor'] = $theme_options['footer-sml-section-1-credit']; - } - if ( isset( $theme_options['footer-color'] ) ) { - $theme_options['footer-copyright-color'] = $theme_options['footer-color']; - } - if ( isset( $theme_options['footer-link-color'] ) ) { - $theme_options['footer-copyright-link-color'] = $theme_options['footer-link-color']; - } - if ( isset( $theme_options['footer-link-h-color'] ) ) { - $theme_options['footer-copyright-link-h-color'] = $theme_options['footer-link-h-color']; - } - - if ( isset( $theme_options['font-size-footer-content'] ) ) { - $theme_options['font-size-section-footer-copyright'] = $theme_options['font-size-footer-content']; - } - - if ( isset( $theme_options['font-weight-footer-content'] ) ) { - $theme_options['font-weight-section-footer-copyright'] = $theme_options['font-weight-footer-content']; - } - - if ( isset( $theme_options['line-height-footer-content'] ) ) { - $theme_options['line-height-section-footer-copyright'] = $theme_options['line-height-footer-content']; - } - - if ( isset( $theme_options['font-family-footer-content'] ) ) { - $theme_options['font-family-section-footer-copyright'] = $theme_options['font-family-footer-content']; - } - - if ( isset( $theme_options['text-transform-footer-content'] ) ) { - $theme_options['text-transform-section-footer-copyright'] = $theme_options['text-transform-footer-content']; - } - - if ( 'html-1' === $new_section_2_item ) { - // Footer Content Color migrated to HTML 1. - if ( isset( $theme_options['footer-color'] ) ) { - $theme_options['footer-html-1-color'] = array( - 'desktop' => $theme_options['footer-color'], - 'tablet' => '', - 'mobile' => '', - ); - } - if ( isset( $theme_options['footer-link-color'] ) ) { - $theme_options['footer-html-1-link-color'] = array( - 'desktop' => $theme_options['footer-link-color'], - 'tablet' => '', - 'mobile' => '', - ); - } - if ( isset( $theme_options['footer-link-h-color'] ) ) { - $theme_options['footer-html-1-link-h-color'] = array( - 'desktop' => $theme_options['footer-link-h-color'], - 'tablet' => '', - 'mobile' => '', - ); - } - - if ( isset( $theme_options['font-size-footer-content'] ) ) { - $theme_options['font-size-section-fb-html-1'] = $theme_options['font-size-footer-content']; - } - - if ( isset( $theme_options['font-weight-footer-content'] ) ) { - $theme_options['font-weight-section-fb-html-1'] = $theme_options['font-weight-footer-content']; - } - - if ( isset( $theme_options['line-height-footer-content'] ) ) { - $theme_options['line-height-section-fb-html-1'] = $theme_options['line-height-footer-content']; - } - - if ( isset( $theme_options['font-family-footer-content'] ) ) { - $theme_options['font-family-section-fb-html-1'] = $theme_options['font-family-footer-content']; - } - - if ( isset( $theme_options['text-transform-footer-content'] ) ) { - $theme_options['text-transform-section-fb-html-1'] = $theme_options['text-transform-footer-content']; - } - } - } - - if ( 'menu' === $footer_section_1 || 'menu' === $footer_section_2 ) { - if ( isset( $theme_options['footer-link-color'] ) ) { - $theme_options['footer-menu-color-responsive'] = array( - 'desktop' => $theme_options['footer-link-color'], - 'tablet' => '', - 'mobile' => '', - ); - } - if ( isset( $theme_options['footer-link-h-color'] ) ) { - $theme_options['footer-menu-h-color-responsive'] = array( - 'desktop' => $theme_options['footer-link-h-color'], - 'tablet' => '', - 'mobile' => '', - ); - } - - $theme_options['footer-menu-layout'] = array( - 'desktop' => 'horizontal', - 'tablet' => 'horizontal', - 'mobile' => 'horizontal', - ); - - if ( isset( $theme_options['font-size-footer-content'] ) ) { - $theme_options['footer-menu-font-size'] = $theme_options['font-size-footer-content']; - } - - if ( isset( $theme_options['font-weight-footer-content'] ) ) { - $theme_options['footer-menu-font-weight'] = $theme_options['font-weight-footer-content']; - } - - if ( isset( $theme_options['line-height-footer-content'] ) ) { - $theme_options['footer-menu-line-height'] = $theme_options['line-height-footer-content']; - } - - if ( isset( $theme_options['font-family-footer-content'] ) ) { - $theme_options['footer-menu-font-family'] = $theme_options['font-family-footer-content']; - } - - if ( isset( $theme_options['text-transform-footer-content'] ) ) { - $theme_options['footer-menu-text-transform'] = $theme_options['text-transform-footer-content']; - } - - if ( isset( $theme_options['footer-menu-spacing'] ) ) { - $theme_options['footer-main-menu-spacing'] = $theme_options['footer-menu-spacing']; - } - } - - if ( '' !== $footer_layout ) { - - $theme_options['footer-desktop-items'] = array( - 'above' => - array( - 'above_1' => array(), - 'above_2' => array(), - 'above_3' => array(), - 'above_4' => array(), - 'above_5' => array(), - ), - 'primary' => - array( - 'primary_1' => array(), - 'primary_2' => array(), - 'primary_3' => array(), - 'primary_4' => array(), - 'primary_5' => array(), - ), - 'below' => - array( - 'below_1' => array(), - 'below_2' => array(), - 'below_3' => array(), - 'below_4' => array(), - 'below_5' => array(), - ), - ); - - switch ( $footer_layout ) { - case 'footer-sml-layout-1': - $theme_options['footer-desktop-items']['below'] = array( - 'below_1' => array( $new_section_1_item, $new_section_2_item ), - 'below_2' => array(), - 'below_3' => array(), - 'below_4' => array(), - 'below_5' => array(), - ); - $theme_options['hbb-footer-column'] = 1; - $theme_options['hbb-footer-layout'] = array( - 'desktop' => 'full', - 'tablet' => 'full', - 'mobile' => 'full', - ); - break; - - case 'footer-sml-layout-2': - $theme_options['footer-desktop-items']['below'] = array( - 'below_1' => array( $new_section_1_item ), - 'below_2' => array( $new_section_2_item ), - 'below_3' => array(), - 'below_4' => array(), - 'below_5' => array(), - ); - $theme_options['hbb-footer-column'] = 2; - $theme_options['hbb-footer-layout'] = array( - 'desktop' => '2-equal', - 'tablet' => '2-equal', - 'mobile' => 'full', - ); - break; - - default: - $theme_options['footer-desktop-items']['below'] = array( - 'below_1' => array( 'copyright' ), - 'below_2' => array(), - 'below_3' => array(), - 'below_4' => array(), - 'below_5' => array(), - ); - } - } - - return array( - 'theme_options' => $theme_options, - 'used_elements' => $used_elements, - 'widget_options' => $widget_options, - ); -} - -/** - * Header Footer builder - Migration of Footer Widgets. - * - * @since 3.0.0 - * @param array $theme_options Theme options. - * @param array $used_elements Used Elements array. - * @param array $widget_options Widget options. - * @return array - */ -function astra_footer_widgets_migration( $theme_options, $used_elements, $widget_options ) { - - $footer_widget_layouts = ( isset( $theme_options['footer-adv'] ) ) ? $theme_options['footer-adv'] : ''; - - if ( '' !== $footer_widget_layouts ) { - - $column = 2; - $layout = array( - 'desktop' => '2-equal', - 'tablet' => '2-equal', - 'mobile' => 'full', - ); - $items = array( - 'above_1' => array(), - 'above_2' => array(), - 'above_3' => array(), - 'above_4' => array(), - 'above_5' => array(), - ); - - switch ( $footer_widget_layouts ) { - case 'layout-1': - $column = '1'; - $layout = array( - 'desktop' => 'full', - 'tablet' => 'full', - 'mobile' => 'full', - ); - $items = array( - 'above_1' => array( 'widget-1' ), - 'above_2' => array(), - 'above_3' => array(), - 'above_4' => array(), - 'above_5' => array(), - ); - break; - - case 'layout-2': - $column = '2'; - $layout = array( - 'desktop' => '2-equal', - 'tablet' => '2-equal', - 'mobile' => '2-equal', - ); - $items = array( - 'above_1' => array( 'widget-1' ), - 'above_2' => array( 'widget-2' ), - 'above_3' => array(), - 'above_4' => array(), - 'above_5' => array(), - ); - break; - - case 'layout-3': - $column = '3'; - $layout = array( - 'desktop' => '3-equal', - 'tablet' => 'full', - 'mobile' => 'full', - ); - $items = array( - 'above_1' => array( 'widget-1' ), - 'above_2' => array( 'widget-2' ), - 'above_3' => array( 'widget-3' ), - 'above_4' => array(), - 'above_5' => array(), - ); - break; - - case 'layout-4': - $column = '4'; - $layout = array( - 'desktop' => '4-equal', - 'tablet' => 'full', - 'mobile' => 'full', - ); - $items = array( - 'above_1' => array( 'widget-1' ), - 'above_2' => array( 'widget-2' ), - 'above_3' => array( 'widget-3' ), - 'above_4' => array( 'widget-4' ), - 'above_5' => array(), - ); - break; - - case 'layout-5': - $column = '5'; - $layout = array( - 'desktop' => '5-equal', - 'tablet' => 'full', - 'mobile' => 'full', - ); - $items = array( - 'above_1' => array( 'widget-1' ), - 'above_2' => array( 'widget-2' ), - 'above_3' => array( 'widget-3' ), - 'above_4' => array( 'widget-4' ), - 'above_5' => array( 'widget-5' ), - ); - break; - - case 'layout-6': - case 'layout-7': - $column = '3'; - $layout = array( - 'desktop' => '3-lheavy', - 'tablet' => 'full', - 'mobile' => 'full', - ); - $items = array( - 'above_1' => array( 'widget-1' ), - 'above_2' => array( 'widget-2' ), - 'above_3' => array( 'widget-3' ), - 'above_4' => array(), - 'above_5' => array(), - ); - break; - } - - $theme_options['hba-footer-column'] = $column; - $theme_options['hba-footer-layout'] = $layout; - if ( isset( $theme_options['footer-desktop-items'] ) ) { - $theme_options['footer-desktop-items']['above'] = $items; - } - - for ( $i = 1; $i <= $column; $i++ ) { - - if ( isset( $theme_options['footer-adv-wgt-title-color'] ) ) { - $theme_options[ 'footer-widget-' . $i . '-title-color' ] = array( - 'desktop' => $theme_options['footer-adv-wgt-title-color'], - 'tablet' => '', - 'mobile' => '', - ); - } - - if ( isset( $theme_options['footer-adv-text-color'] ) ) { - $theme_options[ 'footer-widget-' . $i . '-color' ] = array( - 'desktop' => $theme_options['footer-adv-text-color'], - 'tablet' => '', - 'mobile' => '', - ); - } - - if ( isset( $theme_options['footer-adv-link-color'] ) ) { - $theme_options[ 'footer-widget-' . $i . '-link-color' ] = array( - 'desktop' => $theme_options['footer-adv-link-color'], - 'tablet' => '', - 'mobile' => '', - ); - } - - if ( isset( $theme_options['footer-adv-link-h-color'] ) ) { - $theme_options[ 'footer-widget-' . $i . '-link-h-color' ] = array( - 'desktop' => $theme_options['footer-adv-link-h-color'], - 'tablet' => '', - 'mobile' => '', - ); - } - - - if ( isset( $theme_options['footer-adv-wgt-title-font-size'] ) ) { - $theme_options[ 'footer-widget-' . $i . '-font-size' ] = $theme_options['footer-adv-wgt-title-font-size']; - } - - if ( isset( $theme_options['footer-adv-wgt-title-font-weight'] ) ) { - $theme_options[ 'footer-widget-' . $i . '-font-weight' ] = $theme_options['footer-adv-wgt-title-font-weight']; - } - - if ( isset( $theme_options['footer-adv-wgt-title-line-height'] ) ) { - $theme_options[ 'footer-widget-' . $i . '-line-height' ] = $theme_options['footer-adv-wgt-title-line-height']; - } - - if ( isset( $theme_options['footer-adv-wgt-title-font-family'] ) ) { - $theme_options[ 'footer-widget-' . $i . '-font-family' ] = $theme_options['footer-adv-wgt-title-font-family']; - } - - if ( isset( $theme_options['footer-adv-wgt-title-text-transform'] ) ) { - $theme_options[ 'footer-widget-' . $i . '-text-transform' ] = $theme_options['footer-adv-wgt-title-text-transform']; - } - - - if ( isset( $theme_options['footer-adv-wgt-content-font-size'] ) ) { - $theme_options[ 'footer-widget-' . $i . '-content-font-size' ] = $theme_options['footer-adv-wgt-content-font-size']; - } - - if ( isset( $theme_options['footer-adv-wgt-content-font-weight'] ) ) { - $theme_options[ 'footer-widget-' . $i . '-content-font-weight' ] = $theme_options['footer-adv-wgt-content-font-weight']; - } - - if ( isset( $theme_options['footer-adv-wgt-content-line-height'] ) ) { - $theme_options[ 'footer-widget-' . $i . '-content-line-height' ] = $theme_options['footer-adv-wgt-content-line-height']; - } - - if ( isset( $theme_options['footer-adv-wgt-content-font-family'] ) ) { - $theme_options[ 'footer-widget-' . $i . '-content-font-family' ] = $theme_options['footer-adv-wgt-content-font-family']; - } - - if ( isset( $theme_options['footer-adv-wgt-content-text-transform'] ) ) { - $theme_options[ 'footer-widget-' . $i . '-content-text-transform' ] = $theme_options['footer-adv-wgt-content-text-transform']; - } - - if ( isset( $widget_options[ 'advanced-footer-widget-' . $i ] ) ) { - $widget_options[ 'footer-widget-' . $i ] = $widget_options[ 'advanced-footer-widget-' . $i ]; - } - } - } - - if ( isset( $theme_options['footer-adv-border-width'] ) ) { - $theme_options['hba-footer-separator'] = $theme_options['footer-adv-border-width']; - } - - if ( isset( $theme_options['footer-adv-border-color'] ) ) { - $theme_options['hba-footer-top-border-color'] = $theme_options['footer-adv-border-color']; - } - - if ( isset( $theme_options['footer-adv-bg-obj'] ) ) { - $theme_options['hba-footer-bg-obj-responsive'] = array( - 'desktop' => $theme_options['footer-adv-bg-obj'], - 'tablet' => '', - 'mobile' => '', - ); - } - - if ( isset( $theme_options['footer-adv-area-padding'] ) ) { - $theme_options['section-above-footer-builder-padding'] = $theme_options['footer-adv-area-padding']; - } - - return array( - 'theme_options' => $theme_options, - 'used_elements' => $used_elements, - 'widget_options' => $widget_options, - ); -} - -/** - * Do not apply new Media & Text block padding CSS & not remove padding for #primary on mobile devices directly for existing users. - * - * @since 2.6.1 - * - * @return void - */ -function astra_gutenberg_media_text_block_css_compatibility() { - $theme_options = get_option( 'astra-settings', array() ); - - if ( ! isset( $theme_options['guntenberg-media-text-block-padding-css'] ) ) { - $theme_options['guntenberg-media-text-block-padding-css'] = false; - update_option( 'astra-settings', $theme_options ); - } -} - -/** - * Gutenberg pattern compatibility changes. - * - * @since 3.3.0 - * - * @return void - */ -function astra_gutenberg_pattern_compatibility() { - $theme_options = get_option( 'astra-settings', array() ); - - if ( ! isset( $theme_options['guntenberg-button-pattern-compat-css'] ) ) { - $theme_options['guntenberg-button-pattern-compat-css'] = false; - update_option( 'astra-settings', $theme_options ); - } -} - -/** - * Set flag to provide backward compatibility of float based CSS for existing users. - * - * @since 3.3.0 - * @return void. - */ -function astra_check_flex_based_css() { - $theme_options = get_option( 'astra-settings', array() ); - - if ( ! isset( $theme_options['is-flex-based-css'] ) ) { - $theme_options['is-flex-based-css'] = false; - update_option( 'astra-settings', $theme_options ); - } -} - -/** - * Update the Cart Style, Icon color & Border radius if None style is selected. - * - * @since 3.4.0 - * @return void. - */ -function astra_update_cart_style() { - $theme_options = get_option( 'astra-settings', array() ); - if ( isset( $theme_options['woo-header-cart-icon-style'] ) && 'none' === $theme_options['woo-header-cart-icon-style'] ) { - $theme_options['woo-header-cart-icon-style'] = 'outline'; - $theme_options['header-woo-cart-icon-color'] = ''; - $theme_options['woo-header-cart-icon-color'] = ''; - $theme_options['woo-header-cart-icon-radius'] = ''; - } - - if ( isset( $theme_options['edd-header-cart-icon-style'] ) && 'none' === $theme_options['edd-header-cart-icon-style'] ) { - $theme_options['edd-header-cart-icon-style'] = 'outline'; - $theme_options['edd-header-cart-icon-color'] = ''; - $theme_options['edd-header-cart-icon-radius'] = ''; - } - - update_option( 'astra-settings', $theme_options ); -} - -/** - * Update existing 'Grid Column Layout' option in responsive way in Related Posts. - * Till this update 3.5.0 we have 'Grid Column Layout' only for singular option, but now we are improving it as responsive. - * - * @since 3.5.0 - * @return void. - */ -function astra_update_related_posts_grid_layout() { - - $theme_options = get_option( 'astra-settings', array() ); - - if ( ! isset( $theme_options['related-posts-grid-responsive'] ) && isset( $theme_options['related-posts-grid'] ) ) { - - /** - * Managed here switch case to reduce further conditions in dynamic-css to get CSS value based on grid-template-columns. Because there are following CSS props used. - * - * '1' = grid-template-columns: 1fr; - * '2' = grid-template-columns: repeat(2,1fr); - * '3' = grid-template-columns: repeat(3,1fr); - * '4' = grid-template-columns: repeat(4,1fr); - * - * And we already have Astra_Builder_Helper::$grid_size_mapping (used for footer layouts) for getting CSS values based on grid layouts. So migrating old value of grid here to new grid value. - */ - switch ( $theme_options['related-posts-grid'] ) { - case '1': - $grid_layout = 'full'; - break; - - case '2': - $grid_layout = '2-equal'; - break; - - case '3': - $grid_layout = '3-equal'; - break; - - case '4': - $grid_layout = '4-equal'; - break; - } - - $theme_options['related-posts-grid-responsive'] = array( - 'desktop' => $grid_layout, - 'tablet' => $grid_layout, - 'mobile' => 'full', - ); - - update_option( 'astra-settings', $theme_options ); - } -} - -/** - * Migrate Site Title & Site Tagline options to new responsive array. - * - * @since 3.5.0 - * - * @return void - */ -function astra_site_title_tagline_responsive_control_migration() { - - $theme_options = get_option( 'astra-settings', array() ); - - if ( false === get_option( 'display-site-title-responsive', false ) && isset( $theme_options['display-site-title'] ) ) { - $theme_options['display-site-title-responsive']['desktop'] = $theme_options['display-site-title']; - $theme_options['display-site-title-responsive']['tablet'] = $theme_options['display-site-title']; - $theme_options['display-site-title-responsive']['mobile'] = $theme_options['display-site-title']; - } - - if ( false === get_option( 'display-site-tagline-responsive', false ) && isset( $theme_options['display-site-tagline'] ) ) { - $theme_options['display-site-tagline-responsive']['desktop'] = $theme_options['display-site-tagline']; - $theme_options['display-site-tagline-responsive']['tablet'] = $theme_options['display-site-tagline']; - $theme_options['display-site-tagline-responsive']['mobile'] = $theme_options['display-site-tagline']; - } - - update_option( 'astra-settings', $theme_options ); -} - -/** - * Do not apply new font-weight heading support CSS in editor/frontend directly. - * - * 1. Adding Font-weight support to widget titles. - * 2. Customizer font CSS not supporting in editor. - * - * @since 3.6.0 - * - * @return void - */ -function astra_headings_font_support() { - $theme_options = get_option( 'astra-settings', array() ); - - if ( ! isset( $theme_options['can-support-widget-and-editor-fonts'] ) ) { - $theme_options['can-support-widget-and-editor-fonts'] = false; - update_option( 'astra-settings', $theme_options ); - } -} - -/** - * Set flag to avoid direct reflections on live site & to maintain backward compatibility for existing users. - * - * @since 3.6.0 - * @return void. - */ -function astra_remove_logo_max_width() { - $theme_options = get_option( 'astra-settings', array() ); - - if ( ! isset( $theme_options['can-remove-logo-max-width-css'] ) ) { - $theme_options['can-remove-logo-max-width-css'] = false; - update_option( 'astra-settings', $theme_options ); - } -} - -/** - * Set flag to maintain backward compatibility for existing users for Transparent Header border bottom default value i.e from '' to 0. - * - * @since 3.6.0 - * @return void. - */ -function astra_transparent_header_default_value() { - $theme_options = get_option( 'astra-settings', array() ); - - if ( ! isset( $theme_options['transparent-header-default-border'] ) ) { - $theme_options['transparent-header-default-border'] = false; - update_option( 'astra-settings', $theme_options ); - } -} - -/** - * Clear Astra + Astra Pro assets cache. - * - * @since 3.6.1 - * @return void. - */ -function astra_clear_all_assets_cache() { - if ( class_exists( 'Astra_Cache_Base' ) ) { - // Clear Astra theme cache. - $astra_cache_base_instance = new Astra_Cache_Base( 'astra' ); - $astra_cache_base_instance->refresh_assets( 'astra' ); - - // Clear Astra Addon's cache. - $astra_addon_cache_base_instance = new Astra_Cache_Base( 'astra-addon' ); - $astra_addon_cache_base_instance->refresh_assets( 'astra-addon' ); - } -} - -/** - * Set flag for updated default values for buttons & add GB Buttons padding support. - * - * @since 3.6.3 - * @return void. - */ -function astra_button_default_values_updated() { - $theme_options = get_option( 'astra-settings', array() ); - - if ( ! isset( $theme_options['btn-default-padding-updated'] ) ) { - $theme_options['btn-default-padding-updated'] = false; - update_option( 'astra-settings', $theme_options ); - } -} - -/** - * Set flag for old users, to not directly apply underline to content links. - * - * @since 3.6.4 - * @return void. - */ -function astra_update_underline_link_setting() { - $theme_options = get_option( 'astra-settings', array() ); - - if ( ! isset( $theme_options['underline-content-links'] ) ) { - $theme_options['underline-content-links'] = false; - update_option( 'astra-settings', $theme_options ); - } -} - -/** - * Add compatibility support for WP-5.8. as some of settings & blocks already their in WP-5.7 versions, that's why added backward here. - * - * @since 3.6.5 - * @return void - */ -function astra_support_block_editor() { - $theme_options = get_option( 'astra-settings' ); - - // Set flag on existing user's site to not reflect changes directly. - if ( ! isset( $theme_options['support-block-editor'] ) ) { - $theme_options['support-block-editor'] = false; - update_option( 'astra-settings', $theme_options ); - } -} + array( + 'top' => $btn_vertical_padding, + 'right' => $btn_horizontal_padding, + 'bottom' => $btn_vertical_padding, + 'left' => $btn_horizontal_padding, + ), + 'tablet' => array( + 'top' => '', + 'right' => '', + 'bottom' => '', + 'left' => '', + ), + 'mobile' => array( + 'top' => '', + 'right' => '', + 'bottom' => '', + 'left' => '', + ), + 'desktop-unit' => 'px', + 'tablet-unit' => 'px', + 'mobile-unit' => 'px', + ); + + update_option( 'astra-settings', $theme_options ); + } +} + +/** + * Migrate option data from button url to the new link param. + * + * @since 2.3.0 + * + * @return void + */ +function astra_header_button_new_options() { + + $theme_options = get_option( 'astra-settings', array() ); + + $btn_url = isset( $theme_options['header-main-rt-section-button-link'] ) ? $theme_options['header-main-rt-section-button-link'] : 'https://www.adelielinux.org/'; + $theme_options['header-main-rt-section-button-link-option'] = array( + 'url' => $btn_url, + 'new_tab' => false, + 'link_rel' => '', + ); + + update_option( 'astra-settings', $theme_options ); +} + +/** + * For existing users, do not provide Elementor Default Color Typo settings compatibility by default. + * + * @since 2.3.3 + * + * @return void + */ +function astra_elementor_default_color_typo_comp() { + + $theme_options = get_option( 'astra-settings', array() ); + + // Set flag to not load button specific CSS. + if ( ! isset( $theme_options['ele-default-color-typo-setting-comp'] ) ) { + $theme_options['ele-default-color-typo-setting-comp'] = false; + update_option( 'astra-settings', $theme_options ); + } + +} + +/** + * For existing users, change the separator from html entity to css entity. + * + * @since 2.3.4 + * + * @return void + */ +function astra_breadcrumb_separator_fix() { + + $theme_options = get_option( 'astra-settings', array() ); + + // Check if the saved database value for Breadcrumb Separator is "»", then change it to '\00bb'. + if ( isset( $theme_options['breadcrumb-separator'] ) && '»' === $theme_options['breadcrumb-separator'] ) { + $theme_options['breadcrumb-separator'] = '\00bb'; + update_option( 'astra-settings', $theme_options ); + } +} + +/** + * Check if we need to change the default value for tablet breakpoint. + * + * @since 2.4.0 + * @return void + */ +function astra_update_theme_tablet_breakpoint() { + + $theme_options = get_option( 'astra-settings' ); + + if ( ! isset( $theme_options['can-update-theme-tablet-breakpoint'] ) ) { + // Set a flag to check if we need to change the theme tablet breakpoint value. + $theme_options['can-update-theme-tablet-breakpoint'] = false; + } + + update_option( 'astra-settings', $theme_options ); +} + +/** + * Migrate option data from site layout background option to its desktop counterpart. + * + * @since 2.4.0 + * + * @return void + */ +function astra_responsive_base_background_option() { + + $theme_options = get_option( 'astra-settings', array() ); + + if ( false === get_option( 'site-layout-outside-bg-obj-responsive', false ) && isset( $theme_options['site-layout-outside-bg-obj'] ) ) { + + $theme_options['site-layout-outside-bg-obj-responsive']['desktop'] = $theme_options['site-layout-outside-bg-obj']; + $theme_options['site-layout-outside-bg-obj-responsive']['tablet'] = array( + 'background-color' => '', + 'background-image' => '', + 'background-repeat' => 'repeat', + 'background-position' => 'center center', + 'background-size' => 'auto', + 'background-attachment' => 'scroll', + ); + $theme_options['site-layout-outside-bg-obj-responsive']['mobile'] = array( + 'background-color' => '', + 'background-image' => '', + 'background-repeat' => 'repeat', + 'background-position' => 'center center', + 'background-size' => 'auto', + 'background-attachment' => 'scroll', + ); + } + + update_option( 'astra-settings', $theme_options ); +} + +/** + * Do not apply new wide/full image CSS for existing users. + * + * @since 2.4.4 + * + * @return void + */ +function astra_gtn_full_wide_image_group_css() { + + $theme_options = get_option( 'astra-settings', array() ); + + // Set flag to not load button specific CSS. + if ( ! isset( $theme_options['gtn-full-wide-image-grp-css'] ) ) { + $theme_options['gtn-full-wide-image-grp-css'] = false; + update_option( 'astra-settings', $theme_options ); + } +} + +/** + * Do not apply new wide/full Group and Cover block CSS for existing users. + * + * @since 2.5.0 + * + * @return void + */ +function astra_gtn_full_wide_group_cover_css() { + $theme_options = get_option( 'astra-settings', array() ); + + if ( ! isset( $theme_options['gtn-full-wide-grp-cover-css'] ) ) { + $theme_options['gtn-full-wide-grp-cover-css'] = false; + update_option( 'astra-settings', $theme_options ); + } +} + + +/** + * Do not apply the global border width and border color setting for the existng users. + * + * @since 2.5.0 + * + * @return void + */ +function astra_global_button_woo_css() { + $theme_options = get_option( 'astra-settings', array() ); + + // Set flag to not load button specific CSS. + if ( ! isset( $theme_options['global-btn-woo-css'] ) ) { + $theme_options['global-btn-woo-css'] = false; + update_option( 'astra-settings', $theme_options ); + } +} + +/** + * Migrate Footer Widget param to array. + * + * @since 2.5.2 + * + * @return void + */ +function astra_footer_widget_bg() { + $theme_options = get_option( 'astra-settings', array() ); + + // Check if Footer Backgound array is already set or not. If not then set it as array. + if ( isset( $theme_options['footer-adv-bg-obj'] ) && ! is_array( $theme_options['footer-adv-bg-obj'] ) ) { + $theme_options['footer-adv-bg-obj'] = array( + 'background-color' => '', + 'background-image' => '', + 'background-repeat' => 'repeat', + 'background-position' => 'center center', + 'background-size' => 'auto', + 'background-attachment' => 'scroll', + ); + update_option( 'astra-settings', $theme_options ); + } +} + +/** + * Check if we need to load icons as font or SVG. + * + * @since 3.3.0 + * @return void + */ +function astra_icons_svg_compatibility() { + + $theme_options = get_option( 'astra-settings' ); + + if ( ! isset( $theme_options['can-update-astra-icons-svg'] ) ) { + // Set a flag to check if we need to add icons as SVG. + $theme_options['can-update-astra-icons-svg'] = false; + update_option( 'astra-settings', $theme_options ); + } +} + +/** + * Migrate Background control options to new array. + * + * @since 3.0.0 + * + * @return void + */ +function astra_bg_control_migration() { + + $db_options = array( + 'footer-adv-bg-obj', + 'footer-bg-obj', + 'sidebar-bg-obj', + ); + + $theme_options = get_option( 'astra-settings', array() ); + + foreach ( $db_options as $option_name ) { + + if ( ! ( isset( $theme_options[ $option_name ]['background-type'] ) && isset( $theme_options[ $option_name ]['background-media'] ) ) && isset( $theme_options[ $option_name ] ) ) { + + if ( ! empty( $theme_options[ $option_name ]['background-image'] ) ) { + $theme_options[ $option_name ]['background-type'] = 'image'; + $theme_options[ $option_name ]['background-media'] = attachment_url_to_postid( $theme_options[ $option_name ]['background-image'] ); + } else { + $theme_options[ $option_name ]['background-type'] = ''; + $theme_options[ $option_name ]['background-media'] = ''; + } + + error_log( sprintf( 'Astra: Migrating Background Option - %s', $option_name ) ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log + update_option( 'astra-settings', $theme_options ); + } + } +} + +/** + * Migrate Background Responsive options to new array. + * + * @since 3.0.0 + * + * @return void + */ +function astra_bg_responsive_control_migration() { + + $db_options = array( + 'site-layout-outside-bg-obj-responsive', + 'content-bg-obj-responsive', + 'header-bg-obj-responsive', + 'primary-menu-bg-obj-responsive', + 'above-header-bg-obj-responsive', + 'above-header-menu-bg-obj-responsive', + 'below-header-bg-obj-responsive', + 'below-header-menu-bg-obj-responsive', + ); + + $theme_options = get_option( 'astra-settings', array() ); + + foreach ( $db_options as $option_name ) { + + if ( ! ( isset( $theme_options[ $option_name ]['desktop']['background-type'] ) && isset( $theme_options[ $option_name ]['desktop']['background-media'] ) ) && isset( $theme_options[ $option_name ] ) ) { + + if ( ! empty( $theme_options[ $option_name ]['desktop']['background-image'] ) ) { + $theme_options[ $option_name ]['desktop']['background-type'] = 'image'; + $theme_options[ $option_name ]['desktop']['background-media'] = attachment_url_to_postid( $theme_options[ $option_name ]['desktop']['background-image'] ); + } else { + $theme_options[ $option_name ]['desktop']['background-type'] = ''; + $theme_options[ $option_name ]['desktop']['background-media'] = ''; + } + + if ( ! empty( $theme_options[ $option_name ]['tablet']['background-image'] ) ) { + $theme_options[ $option_name ]['tablet']['background-type'] = 'image'; + $theme_options[ $option_name ]['tablet']['background-media'] = attachment_url_to_postid( $theme_options[ $option_name ]['tablet']['background-image'] ); + } else { + $theme_options[ $option_name ]['tablet']['background-type'] = ''; + $theme_options[ $option_name ]['tablet']['background-media'] = ''; + } + + if ( ! empty( $theme_options[ $option_name ]['mobile']['background-image'] ) ) { + $theme_options[ $option_name ]['mobile']['background-type'] = 'image'; + $theme_options[ $option_name ]['mobile']['background-media'] = attachment_url_to_postid( $theme_options[ $option_name ]['mobile']['background-image'] ); + } else { + $theme_options[ $option_name ]['mobile']['background-type'] = ''; + $theme_options[ $option_name ]['mobile']['background-media'] = ''; + } + + error_log( sprintf( 'Astra: Migrating Background Response Option - %s', $option_name ) ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log + update_option( 'astra-settings', $theme_options ); + } + } +} + +/** + * Do not apply new Group, Column and Media & Text block CSS for existing users. + * + * @since 3.0.0 + * + * @return void + */ +function astra_gutenberg_core_blocks_design_compatibility() { + $theme_options = get_option( 'astra-settings', array() ); + + if ( ! isset( $theme_options['guntenberg-core-blocks-comp-css'] ) ) { + $theme_options['guntenberg-core-blocks-comp-css'] = false; + update_option( 'astra-settings', $theme_options ); + } +} + +/** + * Header Footer builder - Migration compatibility. + * + * @since 3.0.0 + * + * @return void + */ +function astra_header_builder_compatibility() { + $theme_options = get_option( 'astra-settings', array() ); + + // Set flag to not load button specific CSS. + if ( ! isset( $theme_options['is-header-footer-builder'] ) ) { + $theme_options['is-header-footer-builder'] = false; + update_option( 'astra-settings', $theme_options ); + } + if ( ! isset( $theme_options['header-footer-builder-notice'] ) ) { + $theme_options['header-footer-builder-notice'] = false; + update_option( 'astra-settings', $theme_options ); + } +} + +/** + * Clears assets cache and regenerates new assets files. + * + * @since 3.0.1 + * + * @return void + */ +function astra_clear_assets_cache() { + if ( is_callable( 'Astra_Minify::refresh_assets' ) ) { + Astra_Minify::refresh_assets(); + } +} + +/** + * Header Footer builder - Migration of options. + * + * @since 3.0.0 + * + * @return void + */ +function astra_header_builder_migration() { + + /** + * All theme options. + */ + $theme_options = get_option( 'astra-settings', array() ); + + // WordPress sidebar_widgets option. + $widget_options = get_option( 'sidebars_widgets', array() ); + + $used_elements = array(); + + $options = array( + 'theme_options' => $theme_options, + 'used_elements' => $used_elements, + 'widget_options' => $widget_options, + ); + + $options = astra_primary_header_builder_migration( $options['theme_options'], $options['used_elements'], $options['widget_options'] ); + + $options = astra_below_header_builder_migration( $options['theme_options'], $options['used_elements'], $options['widget_options'] ); + + $options = astra_above_header_builder_migration( $options['theme_options'], $options['used_elements'], $options['widget_options'] ); + + $options = astra_footer_builder_migration( $options['theme_options'], $options['used_elements'], $options['widget_options'] ); + + $options = astra_footer_widgets_migration( $options['theme_options'], $options['used_elements'], $options['widget_options'] ); + + $options = astra_primary_menu_builder_migration( $options['theme_options'], $options['used_elements'], $options['widget_options'] ); + + $options = astra_sticky_header_builder_migration( $options['theme_options'], $options['used_elements'], $options['widget_options'] ); + + $theme_options = $options['theme_options']; + $widget_options = $options['widget_options']; + + $theme_options['v3-option-migration'] = true; + + update_option( 'astra-settings', $theme_options ); + update_option( 'sidebars_widgets', $widget_options ); + +} + +/** + * Header Footer builder - Migration of Sticky Header. + * + * @since 3.0.0 + * @param array $theme_options Theme options. + * @param array $used_elements Used Elements array. + * @param array $widget_options Widget options. + * @return array + */ +function astra_sticky_header_builder_migration( $theme_options, $used_elements, $widget_options ) { + + // Menu. + $is_menu_in_primary = false; + $is_menu_in_above = false; + $is_menu_in_below = false; + + if ( isset( $theme_options['header-desktop-items']['primary'] ) ) { + foreach ( $theme_options['header-desktop-items']['primary'] as $zone ) { + if ( false !== array_search( 'menu-1', $zone ) ) { + $is_menu_in_primary = true; + } + } + } + + if ( isset( $theme_options['header-desktop-items']['above'] ) ) { + foreach ( $theme_options['header-desktop-items']['above'] as $zone ) { + if ( false !== array_search( 'menu-1', $zone ) ) { + $is_menu_in_above = true; + } + } + } + + if ( isset( $theme_options['header-desktop-items']['below'] ) ) { + foreach ( $theme_options['header-desktop-items']['below'] as $zone ) { + if ( false !== array_search( 'menu-1', $zone ) ) { + $is_menu_in_below = true; + } + } + } + + if ( $is_menu_in_primary ) { + + // Menu. + // Normal. + if ( isset( $theme_options['sticky-header-menu-color-responsive'] ) ) { + $theme_options['sticky-header-menu1-color-responsive'] = $theme_options['sticky-header-menu-color-responsive']; + } + + if ( isset( $theme_options['sticky-header-menu-bg-color-responsive'] ) ) { + $theme_options['sticky-header-menu1-bg-obj-responsive'] = $theme_options['sticky-header-menu-bg-color-responsive']; + } + + + // Hover. + if ( isset( $theme_options['sticky-header-menu-h-color-responsive'] ) ) { + $theme_options['sticky-header-menu1-h-color-responsive'] = $theme_options['sticky-header-menu-h-color-responsive']; + } + + if ( isset( $theme_options['sticky-header-menu-h-a-bg-color-responsive'] ) ) { + $theme_options['sticky-header-menu1-h-bg-color-responsive'] = $theme_options['sticky-header-menu-h-a-bg-color-responsive']; + } + + + // Active. + if ( isset( $theme_options['sticky-header-menu-h-color-responsive'] ) ) { + $theme_options['sticky-header-menu1-a-color-responsive'] = $theme_options['sticky-header-menu-h-color-responsive']; + } + + if ( isset( $theme_options['sticky-header-menu-h-a-bg-color-responsive'] ) ) { + $theme_options['sticky-header-menu1-a-bg-color-responsive'] = $theme_options['sticky-header-menu-h-a-bg-color-responsive']; + } + + + // Submenu. + + // Normal. + if ( isset( $theme_options['sticky-header-submenu-color-responsive'] ) ) { + $theme_options['sticky-header-menu1-submenu-color-responsive'] = $theme_options['sticky-header-submenu-color-responsive']; + } + + if ( isset( $theme_options['sticky-header-submenu-bg-color-responsive'] ) ) { + $theme_options['sticky-header-menu1-submenu-bg-color-responsive'] = $theme_options['sticky-header-submenu-bg-color-responsive']; + } + + + // Hover. + if ( isset( $theme_options['sticky-header-submenu-h-color-responsive'] ) ) { + $theme_options['sticky-header-menu1-submenu-h-color-responsive'] = $theme_options['sticky-header-submenu-h-color-responsive']; + } + + if ( isset( $theme_options['sticky-header-submenu-h-a-bg-color-responsive'] ) ) { + $theme_options['sticky-header-menu1-submenu-h-bg-color-responsive'] = $theme_options['sticky-header-submenu-h-a-bg-color-responsive']; + } + + + // Active. + if ( isset( $theme_options['sticky-header-submenu-h-color-responsive'] ) ) { + $theme_options['sticky-header-menu1-submenu-a-color-responsive'] = $theme_options['sticky-header-submenu-h-color-responsive']; + } + + if ( isset( $theme_options['sticky-header-submenu-h-a-bg-color-responsive'] ) ) { + $theme_options['sticky-header-menu1-submenu-a-bg-color-responsive'] = $theme_options['sticky-header-submenu-h-a-bg-color-responsive']; + } + + + // Mega menu. + + // Normal. + if ( isset( $theme_options['sticky-primary-header-megamenu-heading-color'] ) ) { + $theme_options['sticky-header-menu1-header-megamenu-heading-color'] = $theme_options['sticky-primary-header-megamenu-heading-color']; + } + + + // Hover. + if ( isset( $theme_options['sticky-primary-header-megamenu-heading-h-color'] ) ) { + $theme_options['sticky-header-menu1-header-megamenu-heading-h-color'] = $theme_options['sticky-primary-header-megamenu-heading-h-color']; + } + } + + if ( $is_menu_in_above ) { + + // Menu. + + // Normal. + if ( isset( $theme_options['sticky-above-header-menu-color-responsive'] ) ) { + $theme_options['sticky-header-menu3-color-responsive'] = $theme_options['sticky-above-header-menu-color-responsive']; + } + + if ( isset( $theme_options['sticky-above-header-menu-bg-color-responsive'] ) ) { + $theme_options['sticky-header-menu3-bg-obj-responsive'] = $theme_options['sticky-above-header-menu-bg-color-responsive']; + } + + + // Hover. + if ( isset( $theme_options['sticky-above-header-menu-h-color-responsive'] ) ) { + $theme_options['sticky-header-menu3-h-color-responsive'] = $theme_options['sticky-above-header-menu-h-color-responsive']; + } + + if ( isset( $theme_options['sticky-above-header-menu-h-a-bg-color-responsive'] ) ) { + $theme_options['sticky-header-menu3-h-bg-color-responsive'] = $theme_options['sticky-above-header-menu-h-a-bg-color-responsive']; + } + + + // Active. + if ( isset( $theme_options['sticky-above-header-menu-h-color-responsive'] ) ) { + $theme_options['sticky-header-menu3-a-color-responsive'] = $theme_options['sticky-above-header-menu-h-color-responsive']; + } + + if ( isset( $theme_options['sticky-above-header-menu-h-a-bg-color-responsive'] ) ) { + $theme_options['sticky-header-menu3-a-bg-color-responsive'] = $theme_options['sticky-above-header-menu-h-a-bg-color-responsive']; + } + + + // Submenu. + + // Normal. + if ( isset( $theme_options['sticky-above-header-submenu-color-responsive'] ) ) { + $theme_options['sticky-header-menu3-submenu-color-responsive'] = $theme_options['sticky-above-header-submenu-color-responsive']; + } + + if ( isset( $theme_options['sticky-above-header-submenu-bg-color-responsive'] ) ) { + $theme_options['sticky-header-menu3-submenu-bg-obj-responsive'] = $theme_options['sticky-above-header-submenu-bg-color-responsive']; + } + + + // Hover. + if ( isset( $theme_options['sticky-above-header-submenu-h-color-responsive'] ) ) { + $theme_options['sticky-header-menu3-submenu-h-color-responsive'] = $theme_options['sticky-above-header-submenu-h-color-responsive']; + } + + if ( isset( $theme_options['sticky-above-header-submenu-h-a-bg-color-responsive'] ) ) { + $theme_options['sticky-header-menu3-submenu-h-bg-color-responsive'] = $theme_options['sticky-above-header-submenu-h-a-bg-color-responsive']; + } + + + // Active. + if ( isset( $theme_options['sticky-above-header-submenu-h-color-responsive'] ) ) { + $theme_options['sticky-header-menu3-submenu-a-color-responsive'] = $theme_options['sticky-above-header-submenu-h-color-responsive']; + } + + if ( isset( $theme_options['sticky-above-header-submenu-h-a-bg-color-responsive'] ) ) { + $theme_options['sticky-header-menu3-submenu-a-bg-color-responsive'] = $theme_options['sticky-above-header-submenu-h-a-bg-color-responsive']; + } + + + // Mega menu. + + // Normal. + if ( isset( $theme_options['sticky-above-header-megamenu-heading-color'] ) ) { + $theme_options['sticky-header-menu3-header-megamenu-heading-color'] = $theme_options['sticky-above-header-megamenu-heading-color']; + } + + + // Hover. + if ( isset( $theme_options['sticky-above-header-megamenu-heading-h-color'] ) ) { + $theme_options['sticky-header-menu3-header-megamenu-heading-h-color'] = $theme_options['sticky-above-header-megamenu-heading-h-color']; + } + } + + if ( $is_menu_in_below ) { + + // Menu. + + // Normal. + if ( isset( $theme_options['sticky-below-header-menu-color-responsive'] ) ) { + $theme_options['sticky-header-menu2-color-responsive'] = $theme_options['sticky-below-header-menu-color-responsive']; + } + + if ( isset( $theme_options['sticky-below-header-menu-bg-color-responsive'] ) ) { + $theme_options['sticky-header-menu2-bg-obj-responsive'] = $theme_options['sticky-below-header-menu-bg-color-responsive']; + } + + + // Hover. + if ( isset( $theme_options['sticky-below-header-menu-h-color-responsive'] ) ) { + $theme_options['sticky-header-menu2-h-color-responsive'] = $theme_options['sticky-below-header-menu-h-color-responsive']; + } + + if ( isset( $theme_options['sticky-below-header-menu-h-a-bg-color-responsive'] ) ) { + $theme_options['sticky-header-menu2-h-bg-color-responsive'] = $theme_options['sticky-below-header-menu-h-a-bg-color-responsive']; + } + + + // Active. + if ( isset( $theme_options['sticky-below-header-menu-h-color-responsive'] ) ) { + $theme_options['sticky-header-menu2-a-color-responsive'] = $theme_options['sticky-below-header-menu-h-color-responsive']; + } + + if ( isset( $theme_options['sticky-below-header-menu-h-a-bg-color-responsive'] ) ) { + $theme_options['sticky-header-menu2-a-bg-color-responsive'] = $theme_options['sticky-below-header-menu-h-a-bg-color-responsive']; + } + + + // Submenu. + + // Normal. + if ( isset( $theme_options['sticky-below-header-submenu-color-responsive'] ) ) { + $theme_options['sticky-header-menu2-submenu-color-responsive'] = $theme_options['sticky-below-header-submenu-color-responsive']; + } + + if ( isset( $theme_options['sticky-below-header-submenu-bg-color-responsive'] ) ) { + $theme_options['sticky-header-menu2-submenu-bg-obj-responsive'] = $theme_options['sticky-below-header-submenu-bg-color-responsive']; + } + + + // Hover. + if ( isset( $theme_options['sticky-below-header-submenu-h-color-responsive'] ) ) { + $theme_options['sticky-header-menu2-submenu-h-color-responsive'] = $theme_options['sticky-below-header-submenu-h-color-responsive']; + } + + if ( isset( $theme_options['sticky-below-header-submenu-h-a-bg-color-responsive'] ) ) { + $theme_options['sticky-header-menu2-submenu-h-bg-color-responsive'] = $theme_options['sticky-below-header-submenu-h-a-bg-color-responsive']; + } + + + // Active. + if ( isset( $theme_options['sticky-below-header-submenu-h-color-responsive'] ) ) { + $theme_options['sticky-header-menu2-submenu-a-color-responsive'] = $theme_options['sticky-below-header-submenu-h-color-responsive']; + } + + if ( isset( $theme_options['sticky-below-header-submenu-h-a-bg-color-responsive'] ) ) { + $theme_options['sticky-header-menu2-submenu-a-bg-color-responsive'] = $theme_options['sticky-below-header-submenu-h-a-bg-color-responsive']; + } + + + // Mega menu. + + // Normal. + if ( isset( $theme_options['sticky-below-header-megamenu-heading-color'] ) ) { + $theme_options['sticky-header-menu2-header-megamenu-heading-color'] = $theme_options['sticky-below-header-megamenu-heading-color']; + } + + + // Hover. + if ( isset( $theme_options['sticky-below-header-megamenu-heading-h-color'] ) ) { + $theme_options['sticky-header-menu2-header-megamenu-heading-h-color'] = $theme_options['sticky-below-header-megamenu-heading-h-color']; + } + } + + // Sticky Site Title. + + // Normal. + if ( isset( $theme_options['sticky-header-color-site-title-responsive']['desktop'] ) ) { + $theme_options['sticky-header-builder-site-title-color'] = $theme_options['sticky-header-color-site-title-responsive']['desktop']; + } + + + // Hover. + if ( isset( $theme_options['sticky-header-color-h-site-title-responsive']['desktop'] ) ) { + $theme_options['sticky-header-builder-site-title-h-color'] = $theme_options['sticky-header-color-h-site-title-responsive']['desktop']; + } + + + // Sticky Site Tagline. + if ( isset( $theme_options['sticky-header-color-site-tagline-responsive']['desktop'] ) ) { + $theme_options['sticky-header-builder-site-tagline-color'] = $theme_options['sticky-header-color-site-tagline-responsive']['desktop']; + } + + + // Sticky Above/Below Header HTML. + $is_html_in_above = false; + $is_html_in_below = false; + + foreach ( $theme_options['header-desktop-items']['above'] as $zone ) { + if ( false !== array_search( 'html-3', $zone ) ) { + $is_html_in_above = true; + } + } + foreach ( $theme_options['header-desktop-items']['below'] as $zone ) { + if ( false !== array_search( 'html-2', $zone ) ) { + $is_html_in_below = true; + } + } + + if ( $is_html_in_above ) { + + if ( isset( $theme_options['sticky-above-header-content-section-text-color-responsive']['desktop'] ) ) { + $theme_options['sticky-header-html-3color'] = $theme_options['sticky-above-header-content-section-text-color-responsive']['desktop']; + } + } + if ( $is_html_in_below ) { + + if ( isset( $theme_options['sticky-below-header-content-section-text-color-responsive']['desktop'] ) ) { + $theme_options['sticky-header-html-2color'] = $theme_options['sticky-below-header-content-section-text-color-responsive']['desktop']; + } + } + + // Sticky Above/Below Header Search. + $is_search_in_above = false; + $is_search_in_below = false; + + foreach ( $theme_options['header-desktop-items']['above'] as $zone ) { + if ( false !== array_search( 'search', $zone ) ) { + $is_search_in_above = true; + } + } + foreach ( $theme_options['header-desktop-items']['below'] as $zone ) { + if ( false !== array_search( 'search', $zone ) ) { + $is_search_in_below = true; + } + } + + if ( $is_search_in_above ) { + + if ( isset( $theme_options['sticky-above-header-content-section-link-color-responsive']['desktop'] ) ) { + $theme_options['sticky-header-search-icon-color'] = $theme_options['sticky-above-header-content-section-link-color-responsive']['desktop']; + } + } + if ( $is_search_in_below ) { + + if ( isset( $theme_options['sticky-below-header-content-section-link-color-responsive']['desktop'] ) ) { + $theme_options['sticky-header-search-icon-color'] = $theme_options['sticky-below-header-content-section-link-color-responsive']['desktop']; + } + } + + // Sticky Above/Below Header Widget. + $is_widget_in_above = false; + $is_widget_in_below = false; + + foreach ( $theme_options['header-desktop-items']['above'] as $zone ) { + if ( false !== array_search( 'widget-3', $zone ) ) { + $is_widget_in_above = true; + } + } + foreach ( $theme_options['header-desktop-items']['below'] as $zone ) { + if ( false !== array_search( 'widget-2', $zone ) ) { + $is_widget_in_below = true; + } + } + + if ( $is_widget_in_above ) { + + if ( isset( $theme_options['sticky-above-header-content-section-text-color-responsive']['desktop'] ) ) { + $theme_options['sticky-header-widget-3-title-color'] = $theme_options['sticky-above-header-content-section-text-color-responsive']['desktop']; + } + + if ( isset( $theme_options['sticky-above-header-content-section-text-color-responsive']['desktop'] ) ) { + $theme_options['sticky-header-widget-3-color'] = $theme_options['sticky-above-header-content-section-text-color-responsive']['desktop']; + } + + if ( isset( $theme_options['sticky-above-header-content-section-link-color-responsive']['desktop'] ) ) { + $theme_options['sticky-header-widget-3-link-color'] = $theme_options['sticky-above-header-content-section-link-color-responsive']['desktop']; + } + + if ( isset( $theme_options['sticky-above-header-content-section-link-h-color-responsive']['desktop'] ) ) { + $theme_options['sticky-header-widget-3-link-h-color'] = $theme_options['sticky-above-header-content-section-link-h-color-responsive']['desktop']; + } + } + if ( $is_widget_in_below ) { + + if ( isset( $theme_options['sticky-below-header-content-section-text-color-responsive']['desktop'] ) ) { + $theme_options['sticky-header-widget-2-title-color'] = $theme_options['sticky-below-header-content-section-text-color-responsive']['desktop']; + } + + if ( isset( $theme_options['sticky-below-header-content-section-text-color-responsive']['desktop'] ) ) { + $theme_options['sticky-header-widget-2-color'] = $theme_options['sticky-below-header-content-section-text-color-responsive']['desktop']; + } + + if ( isset( $theme_options['sticky-below-header-content-section-link-color-responsive']['desktop'] ) ) { + $theme_options['sticky-header-widget-2-link-color'] = $theme_options['sticky-below-header-content-section-link-color-responsive']['desktop']; + } + + if ( isset( $theme_options['sticky-below-header-content-section-link-h-color-responsive']['desktop'] ) ) { + $theme_options['sticky-header-widget-2-link-h-color'] = $theme_options['sticky-below-header-content-section-link-h-color-responsive']['desktop']; + } + } + + return array( + 'theme_options' => $theme_options, + 'used_elements' => $used_elements, + 'widget_options' => $widget_options, + ); +} + +/** + * Header Footer builder - Migration of Primary Menu. + * + * @since 3.0.0 + * @param array $theme_options Theme options. + * @param array $used_elements Used Elements array. + * @param array $widget_options Widget options. + * @return array + */ +function astra_primary_menu_builder_migration( $theme_options, $used_elements, $widget_options ) { + + /** + * Primary Menu. + */ + if ( isset( $theme_options['header-main-submenu-container-animation'] ) ) { + $theme_options['header-menu1-submenu-container-animation'] = $theme_options['header-main-submenu-container-animation']; + } + if ( isset( $theme_options['primary-submenu-border'] ) ) { + $theme_options['header-menu1-submenu-border'] = $theme_options['primary-submenu-border']; + } + if ( isset( $theme_options['primary-submenu-b-color'] ) ) { + $theme_options['header-menu1-submenu-b-color'] = $theme_options['primary-submenu-b-color']; + } + if ( isset( $theme_options['primary-submenu-item-border'] ) ) { + $theme_options['header-menu1-submenu-item-border'] = $theme_options['primary-submenu-item-border']; + } + if ( isset( $theme_options['primary-submenu-item-b-color'] ) ) { + $theme_options['header-menu1-submenu-item-b-color'] = $theme_options['primary-submenu-item-b-color']; + } + + /** + * Primary Menu. + */ + + if ( isset( $theme_options['primary-menu-color-responsive'] ) ) { + $theme_options['header-menu1-color-responsive'] = $theme_options['primary-menu-color-responsive']; + } + + if ( isset( $theme_options['primary-menu-bg-obj-responsive'] ) ) { + $theme_options['header-menu1-bg-obj-responsive'] = $theme_options['primary-menu-bg-obj-responsive']; + } + + + if ( isset( $theme_options['primary-menu-text-h-color-responsive'] ) ) { + $theme_options['header-menu1-h-color-responsive'] = $theme_options['primary-menu-text-h-color-responsive']; + } + + if ( isset( $theme_options['primary-menu-h-bg-color-responsive'] ) ) { + $theme_options['header-menu1-h-bg-color-responsive'] = $theme_options['primary-menu-h-bg-color-responsive']; + } + + + if ( isset( $theme_options['primary-menu-a-color-responsive'] ) ) { + $theme_options['header-menu1-a-color-responsive'] = $theme_options['primary-menu-a-color-responsive']; + } + + if ( isset( $theme_options['primary-menu-a-bg-color-responsive'] ) ) { + $theme_options['header-menu1-a-bg-color-responsive'] = $theme_options['primary-menu-a-bg-color-responsive']; + } + + + if ( isset( $theme_options['font-size-primary-menu'] ) ) { + $theme_options['header-menu1-font-size'] = $theme_options['font-size-primary-menu']; + } + + if ( isset( $theme_options['font-weight-primary-menu'] ) ) { + $theme_options['header-menu1-font-weight'] = $theme_options['font-weight-primary-menu']; + } + + if ( isset( $theme_options['line-height-primary-menu'] ) ) { + $theme_options['header-menu1-line-height'] = $theme_options['line-height-primary-menu']; + } + + if ( isset( $theme_options['font-family-primary-menu'] ) ) { + $theme_options['header-menu1-font-family'] = $theme_options['font-family-primary-menu']; + } + + if ( isset( $theme_options['text-transform-primary-menu'] ) ) { + $theme_options['header-menu1-text-transform'] = $theme_options['text-transform-primary-menu']; + } + + if ( isset( $theme_options['primary-menu-spacing'] ) ) { + $theme_options['header-menu1-menu-spacing'] = $theme_options['primary-menu-spacing']; + } + + // Primary Menu - Submenu. + if ( isset( $theme_options['primary-submenu-color-responsive'] ) ) { + $theme_options['header-menu1-submenu-color-responsive'] = $theme_options['primary-submenu-color-responsive']; + } + + if ( isset( $theme_options['primary-submenu-bg-color-responsive'] ) ) { + $theme_options['header-menu1-submenu-bg-color-responsive'] = $theme_options['primary-submenu-bg-color-responsive']; + } + + if ( isset( $theme_options['primary-submenu-h-color-responsive'] ) ) { + $theme_options['header-menu1-submenu-h-color-responsive'] = $theme_options['primary-submenu-h-color-responsive']; + } + + if ( isset( $theme_options['primary-submenu-h-bg-color-responsive'] ) ) { + $theme_options['header-menu1-submenu-h-bg-color-responsive'] = $theme_options['primary-submenu-h-bg-color-responsive']; + } + + if ( isset( $theme_options['primary-submenu-a-color-responsive'] ) ) { + $theme_options['header-menu1-submenu-a-color-responsive'] = $theme_options['primary-submenu-a-color-responsive']; + } + + if ( isset( $theme_options['primary-submenu-a-bg-color-responsive'] ) ) { + $theme_options['header-menu1-submenu-a-bg-color-responsive'] = $theme_options['primary-submenu-a-bg-color-responsive']; + } + + if ( isset( $theme_options['font-size-primary-dropdown-menu'] ) ) { + $theme_options['header-font-size-menu1-sub-menu'] = $theme_options['font-size-primary-dropdown-menu']; + } + + if ( isset( $theme_options['font-weight-primary-dropdown-menu'] ) ) { + $theme_options['header-font-weight-menu1-sub-menu'] = $theme_options['font-weight-primary-dropdown-menu']; + } + + if ( isset( $theme_options['line-height-primary-dropdown-menu'] ) ) { + $theme_options['header-line-height-menu1-sub-menu'] = $theme_options['line-height-primary-dropdown-menu']; + } + + if ( isset( $theme_options['font-family-primary-dropdown-menu'] ) ) { + $theme_options['header-font-family-menu1-sub-menu'] = $theme_options['font-family-primary-dropdown-menu']; + } + + if ( isset( $theme_options['text-transform-primary-dropdown-menu'] ) ) { + $theme_options['header-text-transform-menu1-sub-menu'] = $theme_options['text-transform-primary-dropdown-menu']; + } + + if ( isset( $theme_options['primary-submenu-spacing'] ) ) { + $theme_options['header-menu1-submenu-spacing'] = $theme_options['primary-submenu-spacing']; + } + + // Primary Menu - Mega Menu. + if ( isset( $theme_options['primary-header-megamenu-heading-color'] ) ) { + $theme_options['header-menu1-header-megamenu-heading-color'] = $theme_options['primary-header-megamenu-heading-color']; + } + + if ( isset( $theme_options['primary-header-megamenu-heading-h-color'] ) ) { + $theme_options['header-menu1-header-megamenu-heading-h-color'] = $theme_options['primary-header-megamenu-heading-h-color']; + } + + if ( isset( $theme_options['primary-header-megamenu-heading-font-size'] ) ) { + $theme_options['header-menu1-megamenu-heading-font-size'] = $theme_options['primary-header-megamenu-heading-font-size']; + } + + if ( isset( $theme_options['primary-header-megamenu-heading-font-weight'] ) ) { + $theme_options['header-menu1-megamenu-heading-font-weight'] = $theme_options['primary-header-megamenu-heading-font-weight']; + } + + if ( isset( $theme_options['primary-header-megamenu-heading-line-height'] ) ) { + $theme_options['header-menu1-megamenu-heading-line-height'] = $theme_options['primary-header-megamenu-heading-line-height']; + } + + if ( isset( $theme_options['primary-header-megamenu-heading-font-family'] ) ) { + $theme_options['header-menu1-megamenu-heading-font-family'] = $theme_options['primary-header-megamenu-heading-font-family']; + } + + if ( isset( $theme_options['primary-header-megamenu-heading-text-transform'] ) ) { + $theme_options['header-menu1-megamenu-heading-text-transform'] = $theme_options['primary-header-megamenu-heading-text-transform']; + } + + if ( isset( $theme_options['primary-header-megamenu-heading-space'] ) ) { + $theme_options['header-menu1-megamenu-heading-space'] = $theme_options['primary-header-megamenu-heading-space']; + } + + + /** + * Primary Menu - Mobile. + */ + if ( isset( $theme_options['header-main-menu-label'] ) ) { + $theme_options['mobile-header-menu-label'] = $theme_options['header-main-menu-label']; + } + + if ( isset( $theme_options['mobile-header-toggle-btn-style-color'] ) ) { + $theme_options['mobile-header-toggle-btn-color'] = $theme_options['mobile-header-toggle-btn-style-color']; + $theme_options['mobile-header-toggle-border-color'] = $theme_options['mobile-header-toggle-btn-style-color']; + } + + if ( isset( $theme_options['mobile-header-toggle-btn-border-radius'] ) ) { + $theme_options['mobile-header-toggle-border-radius'] = $theme_options['mobile-header-toggle-btn-border-radius']; + } + + return array( + 'theme_options' => $theme_options, + 'used_elements' => $used_elements, + 'widget_options' => $widget_options, + ); +} + +/** + * Header Footer builder - Migration of Primary Header. + * + * @since 3.0.0 + * @param array $theme_options Theme options. + * @param array $used_elements Used Elements array. + * @param array $widget_options Widget options. + * @return array + */ +function astra_primary_header_builder_migration( $theme_options, $used_elements, $widget_options ) { + + /** + * Primary Header. + */ + + // Header : Primary Header - Layout. + $primary_header_layout = ( isset( $theme_options['header-layouts'] ) ) ? $theme_options['header-layouts'] : ''; + + // Header : Primary Header - Last Menu Item. + $last_menu_item = ( isset( $theme_options['header-main-rt-section'] ) ) ? $theme_options['header-main-rt-section'] : ''; + $last_menu_item_mobile_flag = ( isset( $theme_options['hide-custom-menu-mobile'] ) ) ? $theme_options['hide-custom-menu-mobile'] : ''; + $last_menu_item_mobile_outside = ( isset( $theme_options['header-display-outside-menu'] ) ) ? $theme_options['header-display-outside-menu'] : ''; + $new_menu_item = ''; + + $theme_options['mobile-header-type'] = 'dropdown'; + + if ( isset( $theme_options['mobile-menu-style'] ) ) { + switch ( $theme_options['mobile-menu-style'] ) { + case 'flyout': + $theme_options['mobile-header-type'] = 'off-canvas'; + if ( isset( $theme_options['flyout-mobile-menu-alignment'] ) ) { + $theme_options['off-canvas-slide'] = $theme_options['flyout-mobile-menu-alignment']; + } + break; + case 'fullscreen': + $theme_options['mobile-header-type'] = 'full-width'; + break; + + case 'default': + default: + $theme_options['mobile-header-type'] = 'dropdown'; + break; + } + } + + switch ( $last_menu_item ) { + case 'search': + $new_menu_item = 'search'; + if ( isset( $theme_options['header-main-rt-section-search-box-type'] ) ) { + $theme_options['header-search-box-type'] = $theme_options['header-main-rt-section-search-box-type']; + } + break; + + case 'button': + $new_menu_item = 'button-1'; + if ( isset( $theme_options['header-main-rt-section-button-text'] ) ) { + $theme_options['header-button1-text'] = $theme_options['header-main-rt-section-button-text']; + } + if ( isset( $theme_options['header-main-rt-section-button-link-option'] ) ) { + $theme_options['header-button1-link-option'] = $theme_options['header-main-rt-section-button-link-option']; + } + if ( isset( $theme_options['header-main-rt-section-button-text-color'] ) ) { + $theme_options['header-button1-text-color'] = array( + 'desktop' => $theme_options['header-main-rt-section-button-text-color'], + 'tablet' => '', + 'mobile' => '', + ); + } + if ( isset( $theme_options['header-main-rt-section-button-back-color'] ) ) { + $theme_options['header-button1-back-color'] = array( + 'desktop' => $theme_options['header-main-rt-section-button-back-color'], + 'tablet' => '', + 'mobile' => '', + ); + } + if ( isset( $theme_options['header-main-rt-section-button-text-h-color'] ) ) { + $theme_options['header-button1-text-h-color'] = array( + 'desktop' => $theme_options['header-main-rt-section-button-text-h-color'], + 'tablet' => '', + 'mobile' => '', + ); + } + if ( isset( $theme_options['header-main-rt-section-button-back-h-color'] ) ) { + $theme_options['header-button1-back-h-color'] = array( + 'desktop' => $theme_options['header-main-rt-section-button-back-h-color'], + 'tablet' => '', + 'mobile' => '', + ); + } + if ( isset( $theme_options['header-main-rt-section-button-border-size'] ) ) { + $theme_options['header-button1-border-size'] = $theme_options['header-main-rt-section-button-border-size']; + } + if ( isset( $theme_options['header-main-rt-section-button-border-color'] ) ) { + $theme_options['header-button1-border-color'] = array( + 'desktop' => $theme_options['header-main-rt-section-button-border-color'], + 'tablet' => '', + 'mobile' => '', + ); + } + if ( isset( $theme_options['header-main-rt-section-button-border-h-color'] ) ) { + $theme_options['header-button1-border-h-color'] = array( + 'desktop' => $theme_options['header-main-rt-section-button-border-h-color'], + 'tablet' => '', + 'mobile' => '', + ); + } + if ( isset( $theme_options['header-main-rt-section-button-border-radius'] ) ) { + $theme_options['header-button1-border-radius'] = $theme_options['header-main-rt-section-button-border-radius']; + } + if ( isset( $theme_options['primary-header-button-font-family'] ) ) { + $theme_options['header-button1-font-family'] = $theme_options['primary-header-button-font-family']; + } + if ( isset( $theme_options['primary-header-button-font-size'] ) ) { + $theme_options['header-button1-font-size'] = $theme_options['primary-header-button-font-size']; + } + if ( isset( $theme_options['primary-header-button-font-weight'] ) ) { + $theme_options['header-button1-font-weight'] = $theme_options['primary-header-button-font-weight']; + } + if ( isset( $theme_options['primary-header-button-text-transform'] ) ) { + $theme_options['header-button1-text-transform'] = $theme_options['primary-header-button-text-transform']; + } + if ( isset( $theme_options['primary-header-button-line-height'] ) ) { + $theme_options['header-button1-line-height'] = $theme_options['primary-header-button-line-height']; + } + if ( isset( $theme_options['primary-header-button-letter-spacing'] ) ) { + $theme_options['header-button1-letter-spacing'] = $theme_options['primary-header-button-letter-spacing']; + } + if ( isset( $theme_options['header-main-rt-section-button-padding'] ) ) { + $theme_options['section-hb-button-1-padding'] = $theme_options['header-main-rt-section-button-padding']; + } + // Sticky Header Button options. + + // Text Color. + if ( isset( $theme_options['header-main-rt-sticky-section-button-text-color'] ) ) { + + $theme_options['sticky-header-button1-text-color'] = array( + 'desktop' => $theme_options['header-main-rt-sticky-section-button-text-color'], + 'tablet' => '', + 'mobile' => '', + ); + } + // BG Color. + if ( isset( $theme_options['header-main-rt-sticky-section-button-back-color'] ) ) { + $theme_options['sticky-header-button1-back-color'] = array( + 'desktop' => $theme_options['header-main-rt-sticky-section-button-back-color'], + 'tablet' => '', + 'mobile' => '', + ); + } + // Text Hover Color. + if ( isset( $theme_options['header-main-rt-sticky-section-button-text-h-color'] ) ) { + $theme_options['sticky-header-button1-text-h-color'] = array( + 'desktop' => $theme_options['header-main-rt-sticky-section-button-text-h-color'], + 'tablet' => '', + 'mobile' => '', + ); + } + // BG Hover Color. + if ( isset( $theme_options['header-main-rt-sticky-section-button-back-h-color'] ) ) { + $theme_options['sticky-header-button1-back-h-color'] = array( + 'desktop' => $theme_options['header-main-rt-sticky-section-button-back-h-color'], + 'tablet' => '', + 'mobile' => '', + ); + } + // Border Width. + if ( isset( $theme_options['header-main-rt-sticky-section-button-border-size'] ) ) { + $theme_options['sticky-header-button1-border-size'] = $theme_options['header-main-rt-sticky-section-button-border-size']; + } + // Border Color. + if ( isset( $theme_options['header-main-rt-sticky-section-button-border-color'] ) ) { + $theme_options['sticky-header-button1-border-color'] = array( + 'desktop' => $theme_options['header-main-rt-sticky-section-button-border-color'], + 'tablet' => '', + 'mobile' => '', + ); + } + // Border Hover Color. + if ( isset( $theme_options['header-main-rt-sticky-section-button-border-h-color'] ) ) { + $theme_options['sticky-header-button1-border-h-color'] = array( + 'desktop' => $theme_options['header-main-rt-sticky-section-button-border-h-color'], + 'tablet' => '', + 'mobile' => '', + ); + } + // Border Radius. + if ( isset( $theme_options['header-main-rt-sticky-section-button-border-radius'] ) ) { + $theme_options['sticky-header-button1-border-radius'] = $theme_options['header-main-rt-sticky-section-button-border-radius']; + } + // Padding. + if ( isset( $theme_options['header-main-rt-sticky-section-button-padding'] ) ) { + $theme_options['sticky-header-button1-padding'] = $theme_options['header-main-rt-sticky-section-button-padding']; + } + + break; + + case 'text-html': + $new_menu_item = 'html-1'; + if ( isset( $theme_options['header-main-rt-section-html'] ) ) { + $theme_options['header-html-1'] = $theme_options['header-main-rt-section-html']; + } + break; + + case 'widget': + $new_menu_item = 'widget-1'; + if ( isset( $widget_options['header-widget'] ) ) { + $widget_options['header-widget-1'] = $widget_options['header-widget']; + } + break; + + case 'woocommerce': + $new_menu_item = 'woo-cart'; + if ( ! empty( $theme_options['woo-header-cart-icon-color'] ) ) { + $theme_options['header-woo-cart-icon-color'] = $theme_options['woo-header-cart-icon-color']; + } + break; + + case 'edd': + $new_menu_item = 'edd-cart'; + break; + } + + $used_elements[] = $new_menu_item; + + $new_menu_item_mobile = ( ! $last_menu_item_mobile_flag ) ? $new_menu_item : ''; + + $new_menu_item_mobile_outside = ''; + if ( ! $last_menu_item_mobile_flag && $last_menu_item_mobile_outside ) { + $new_menu_item_mobile_outside = $new_menu_item; + $new_menu_item_mobile = ''; + } + + $theme_options['header-desktop-items']['above'] = array( + 'above_left' => array(), + 'above_left_center' => array(), + 'above_center' => array(), + 'above_right_center' => array(), + 'above_right' => array(), + ); + $theme_options['header-mobile-items']['above'] = array( + 'above_left' => array(), + 'above_center' => array(), + 'above_right' => array(), + ); + + + $theme_options['header-desktop-items']['below'] = array( + 'below_left' => array(), + 'below_left_center' => array(), + 'below_center' => array(), + 'below_right_center' => array(), + 'below_right' => array(), + ); + + $theme_options['header-mobile-items']['below'] = array( + 'below_left' => array(), + 'below_center' => array(), + 'below_right' => array(), + ); + + /** + * Assign the new locations. + */ + switch ( $primary_header_layout ) { + case 'header-main-layout-1': + $theme_options['header-desktop-items']['primary'] = array( + 'primary_left' => array( 'logo' ), + 'primary_left_center' => array(), + 'primary_center' => array(), + 'primary_right_center' => array(), + 'primary_right' => ( '' !== $new_menu_item ) ? array( 'menu-1', $new_menu_item ) : array( 'menu-1' ), + ); + break; + + case 'header-main-layout-2': + $theme_options['header-desktop-items']['primary'] = array( + 'primary_left' => array(), + 'primary_left_center' => array(), + 'primary_center' => array( 'logo' ), + 'primary_right_center' => array(), + 'primary_right' => array(), + ); + $theme_options['header-desktop-items']['below'] = array( + 'below_left' => array(), + 'below_left_center' => array(), + 'below_center' => ( '' !== $new_menu_item ) ? array( 'menu-1', $new_menu_item ) : array( 'menu-1' ), + 'below_right_center' => array(), + 'below_right' => array(), + ); + break; + + case 'header-main-layout-3': + $theme_options['header-desktop-items']['primary'] = array( + 'primary_left' => ( '' !== $new_menu_item ) ? array( 'menu-1', $new_menu_item ) : array( 'menu-1' ), + 'primary_left_center' => array(), + 'primary_center' => array(), + 'primary_right_center' => array(), + 'primary_right' => array( 'logo' ), + ); + break; + + default: + $theme_options['header-desktop-items']['primary'] = array( + 'primary_left' => array( 'logo' ), + 'primary_left_center' => array(), + 'primary_center' => array(), + 'primary_right_center' => array(), + 'primary_right' => array( 'menu-1' ), + ); + } + + // Header : Primary Header - Mobile Layout. + $mobile_layout = astra_get_option( 'header-main-menu-align' ); + + if ( 'stack' === $mobile_layout ) { + $theme_options['header-mobile-items']['popup'] = array( 'popup_content' => ( '' !== $new_menu_item_mobile && '' !== $new_menu_item_mobile_outside ) ? array( 'menu-1', $new_menu_item_mobile ) : array( 'menu-1' ) ); + + $theme_options['header-mobile-items']['primary'] = array( + 'primary_left' => array(), + 'primary_center' => array( 'logo' ), + 'primary_right' => array(), + ); + + $theme_options['header-mobile-items']['below'] = array( + 'below_left' => array(), + 'below_center' => ( '' !== $new_menu_item_mobile_outside ) ? array( $new_menu_item_mobile_outside, 'mobile-trigger' ) : array( 'mobile-trigger' ), + 'below_right' => array(), + ); + } else { + + $theme_options['header-mobile-items']['popup'] = array( 'popup_content' => ( '' !== $new_menu_item_mobile ) ? array( 'menu-1', $new_menu_item_mobile ) : array( 'menu-1' ) ); + + if ( 'header-main-layout-3' === $primary_header_layout ) { + $theme_options['header-mobile-items']['primary'] = array( + 'primary_left' => ( '' !== $new_menu_item_mobile_outside ) ? array( $new_menu_item_mobile_outside, 'mobile-trigger' ) : array( 'mobile-trigger' ), + 'primary_center' => array(), + 'primary_right' => array( 'logo' ), + ); + } else { + $theme_options['header-mobile-items']['primary'] = array( + 'primary_left' => array( 'logo' ), + 'primary_center' => array(), + 'primary_right' => ( '' !== $new_menu_item_mobile_outside ) ? array( $new_menu_item_mobile_outside, 'mobile-trigger' ) : array( 'mobile-trigger' ), + ); + } + } + + // Header - Primary Header - Content Width. + if ( isset( $theme_options['header-main-layout-width'] ) ) { + $theme_options['hb-header-main-layout-width'] = $theme_options['header-main-layout-width']; + } + + // Header - Primary Header - Border Bottom. + if ( isset( $theme_options['header-main-sep'] ) ) { + $theme_options['hb-header-main-sep'] = $theme_options['header-main-sep']; + } + + if ( isset( $theme_options['header-main-sep-color'] ) ) { + $theme_options['hb-header-main-sep-color'] = $theme_options['header-main-sep-color']; + } + + if ( isset( $theme_options['header-bg-obj-responsive'] ) ) { + $theme_options['hb-header-bg-obj-responsive'] = $theme_options['header-bg-obj-responsive']; + } + + if ( isset( $theme_options['header-spacing'] ) ) { + $theme_options['section-primary-header-builder-padding'] = $theme_options['header-spacing']; + } + + return array( + 'theme_options' => $theme_options, + 'used_elements' => $used_elements, + 'widget_options' => $widget_options, + ); +} + +/** + * Header Footer builder - Migration of Above Header. + * + * @since 3.0.0 + * @param array $theme_options Theme options. + * @param array $used_elements Used Elements array. + * @param array $widget_options Widget options. + * @return array + */ +function astra_above_header_builder_migration( $theme_options, $used_elements, $widget_options ) { + /** + * Above Header. + */ + + $above_header_layout = ( isset( $theme_options['above-header-layout'] ) ) ? $theme_options['above-header-layout'] : ''; + $above_header_on_mobile = ( isset( $theme_options['above-header-on-mobile'] ) ) ? $theme_options['above-header-on-mobile'] : ''; + $above_header_merge_menu = ( isset( $theme_options['above-header-merge-menu'] ) ) ? $theme_options['above-header-merge-menu'] : ''; + $above_header_swap_mobile = ( isset( $theme_options['above-header-swap-mobile'] ) ) ? $theme_options['above-header-swap-mobile'] : ''; + + if ( isset( $theme_options['above-header-height'] ) ) { + $theme_options['hba-header-height'] = array( + 'desktop' => $theme_options['above-header-height'], + 'tablet' => '', + 'mobile' => '', + ); + } + if ( isset( $theme_options['above-header-divider'] ) ) { + $theme_options['hba-header-separator'] = $theme_options['above-header-divider']; + } + if ( isset( $theme_options['above-header-divider-color'] ) ) { + $theme_options['hba-header-bottom-border-color'] = $theme_options['above-header-divider-color']; + } + if ( isset( $theme_options['above-header-bg-obj-responsive'] ) ) { + $theme_options['hba-header-bg-obj-responsive'] = $theme_options['above-header-bg-obj-responsive']; + } + if ( isset( $theme_options['above-header-spacing'] ) ) { + $theme_options['section-above-header-builder-padding'] = $theme_options['above-header-spacing']; + } + // Above Header Section 1. + $above_header_section_1 = ( isset( $theme_options['above-header-section-1'] ) ) ? $theme_options['above-header-section-1'] : ''; + $new_above_header_section_1_item = ''; + + switch ( $above_header_section_1 ) { + case 'menu': + $new_above_header_section_1_item = 'menu-3'; + break; + + case 'search': + if ( ! in_array( 'search', $used_elements ) ) { + $new_above_header_section_1_item = 'search'; + if ( isset( $theme_options['above-header-section-1-search-box-type'] ) ) { + $theme_options['header-search-box-type'] = $theme_options['above-header-section-1-search-box-type']; + } + } + break; + + case 'text-html': + if ( ! in_array( 'html-3', $used_elements ) ) { + $new_above_header_section_1_item = 'html-3'; + if ( isset( $theme_options['above-header-section-1-html'] ) ) { + $theme_options['header-html-3'] = $theme_options['above-header-section-1-html']; + } + } + + break; + + case 'widget': + if ( ! in_array( 'widget-3', $used_elements ) ) { + $new_above_header_section_1_item = 'widget-3'; + if ( isset( $widget_options['above-header-widget-1'] ) ) { + $widget_options['header-widget-3'] = $widget_options['above-header-widget-1']; + } + } + break; + + case 'woocommerce': + if ( ! in_array( 'woo-cart', $used_elements ) ) { + $new_above_header_section_1_item = 'woo-cart'; + } + break; + + case 'edd': + if ( ! in_array( 'edd-cart', $used_elements ) ) { + $new_above_header_section_1_item = 'edd-cart'; + } + break; + } + + // Above Header Section 2. + $above_header_section_2 = ( isset( $theme_options['above-header-section-2'] ) ) ? $theme_options['above-header-section-2'] : ''; + $new_above_header_section_2_item = ''; + switch ( $above_header_section_2 ) { + case 'menu': + $new_above_header_section_2_item = 'menu-3'; + break; + + case 'search': + if ( ! in_array( 'search', $used_elements ) ) { + $new_above_header_section_2_item = 'search'; + if ( isset( $theme_options['above-header-section-2-search-box-type'] ) ) { + $theme_options['header-search-box-type'] = $theme_options['above-header-section-2-search-box-type']; + } + } + break; + + case 'text-html': + if ( ! in_array( 'html-3', $used_elements ) ) { + $new_above_header_section_2_item = 'html-3'; + if ( isset( $theme_options['above-header-section-2-html'] ) ) { + $theme_options['header-html-3'] = $theme_options['above-header-section-2-html']; + } + } + + break; + + case 'widget': + if ( ! in_array( 'widget-3', $used_elements ) ) { + $new_above_header_section_2_item = 'widget-3'; + if ( isset( $widget_options['above-header-widget-2'] ) ) { + $widget_options['header-widget-3'] = $widget_options['above-header-widget-2']; + } + } + break; + + case 'woocommerce': + if ( ! in_array( 'woo-cart', $used_elements ) ) { + $new_above_header_section_2_item = 'woo-cart'; + } + break; + + case 'edd': + if ( ! in_array( 'edd-cart', $used_elements ) ) { + $new_above_header_section_2_item = 'edd-cart'; + } + break; + } + + if ( 'menu' === $above_header_section_1 || 'menu' === $above_header_section_2 ) { + $theme_options['header-menu3-menu-stack-on-mobile'] = false; + /** + * Menu - 3 + */ + if ( isset( $theme_options['above-header-submenu-container-animation'] ) ) { + $theme_options['header-menu3-submenu-container-animation'] = $theme_options['above-header-submenu-container-animation']; + } + if ( isset( $theme_options['above-header-submenu-border'] ) ) { + $theme_options['header-menu3-submenu-border'] = $theme_options['above-header-submenu-border']; + } + if ( isset( $theme_options['above-header-submenu-b-color'] ) ) { + $theme_options['header-menu3-submenu-b-color'] = $theme_options['above-header-submenu-b-color']; + } + if ( isset( $theme_options['above-header-submenu-item-border'] ) ) { + $theme_options['header-menu3-submenu-item-border'] = $theme_options['above-header-submenu-item-border']; + } + if ( isset( $theme_options['above-header-submenu-item-b-color'] ) ) { + $theme_options['header-menu3-submenu-item-b-color'] = $theme_options['above-header-submenu-item-b-color']; + } + + if ( isset( $theme_options['above-header-menu-text-color-responsive'] ) ) { + $theme_options['header-menu3-color-responsive'] = $theme_options['above-header-menu-text-color-responsive']; + } + if ( isset( $theme_options['above-header-menu-bg-obj-responsive'] ) ) { + $theme_options['header-menu3-bg-obj-responsive'] = $theme_options['above-header-menu-bg-obj-responsive']; + } + + if ( isset( $theme_options['above-header-menu-text-hover-color-responsive'] ) ) { + $theme_options['header-menu3-h-color-responsive'] = $theme_options['above-header-menu-text-hover-color-responsive']; + } + if ( isset( $theme_options['above-header-menu-bg-hover-color-responsive'] ) ) { + $theme_options['header-menu3-h-bg-color-responsive'] = $theme_options['above-header-menu-bg-hover-color-responsive']; + } + + if ( isset( $theme_options['above-header-current-menu-text-color-responsive'] ) ) { + $theme_options['header-menu3-a-color-responsive'] = $theme_options['above-header-current-menu-text-color-responsive']; + } + if ( isset( $theme_options['above-header-current-menu-bg-color-responsive'] ) ) { + $theme_options['header-menu3-a-bg-color-responsive'] = $theme_options['above-header-current-menu-bg-color-responsive']; + } + + if ( isset( $theme_options['above-header-font-size'] ) ) { + $theme_options['header-menu3-font-size'] = $theme_options['above-header-font-size']; + } + if ( isset( $theme_options['above-header-font-weight'] ) ) { + $theme_options['header-menu3-font-weight'] = $theme_options['above-header-font-weight']; + } + if ( isset( $theme_options['above-header-line-height'] ) ) { + $theme_options['header-menu3-line-height'] = $theme_options['above-header-line-height']; + } + if ( isset( $theme_options['above-header-font-family'] ) ) { + $theme_options['header-menu3-font-family'] = $theme_options['above-header-font-family']; + } + if ( isset( $theme_options['above-header-text-transform'] ) ) { + $theme_options['header-menu3-text-transform'] = $theme_options['above-header-text-transform']; + } + + if ( isset( $theme_options['above-header-menu-spacing'] ) ) { + $theme_options['header-menu3-menu-spacing'] = $theme_options['above-header-menu-spacing']; + } + + // Menu 3 - Submenu. + if ( isset( $theme_options['above-header-submenu-text-color-responsive'] ) ) { + $theme_options['header-menu3-submenu-color-responsive'] = $theme_options['above-header-submenu-text-color-responsive']; + } + if ( isset( $theme_options['above-header-submenu-bg-color-responsive'] ) ) { + $theme_options['header-menu3-submenu-bg-color-responsive'] = $theme_options['above-header-submenu-bg-color-responsive']; + } + + if ( isset( $theme_options['above-header-submenu-hover-color-responsive'] ) ) { + $theme_options['header-menu3-submenu-h-color-responsive'] = $theme_options['above-header-submenu-hover-color-responsive']; + } + if ( isset( $theme_options['above-header-submenu-bg-hover-color-responsive'] ) ) { + $theme_options['header-menu3-submenu-h-bg-color-responsive'] = $theme_options['above-header-submenu-bg-hover-color-responsive']; + } + + if ( isset( $theme_options['above-header-submenu-active-color-responsive'] ) ) { + $theme_options['header-menu3-submenu-a-color-responsive'] = $theme_options['above-header-submenu-active-color-responsive']; + } + if ( isset( $theme_options['above-header-submenu-active-bg-color-responsive'] ) ) { + $theme_options['header-menu3-submenu-a-bg-color-responsive'] = $theme_options['above-header-submenu-active-bg-color-responsive']; + } + + if ( isset( $theme_options['font-size-above-header-dropdown-menu'] ) ) { + $theme_options['header-font-size-menu3-sub-menu'] = $theme_options['font-size-above-header-dropdown-menu']; + } + if ( isset( $theme_options['font-weight-above-header-dropdown-menu'] ) ) { + $theme_options['header-font-weight-menu3-sub-menu'] = $theme_options['font-weight-above-header-dropdown-menu']; + } + if ( isset( $theme_options['line-height-above-header-dropdown-menu'] ) ) { + $theme_options['header-line-height-menu3-sub-menu'] = $theme_options['line-height-above-header-dropdown-menu']; + } + if ( isset( $theme_options['font-family-above-header-dropdown-menu'] ) ) { + $theme_options['header-font-family-menu3-sub-menu'] = $theme_options['font-family-above-header-dropdown-menu']; + } + if ( isset( $theme_options['text-transform-above-header-dropdown-menu'] ) ) { + $theme_options['header-text-transform-menu3-sub-menu'] = $theme_options['text-transform-above-header-dropdown-menu']; + } + + if ( isset( $theme_options['above-header-submenu-spacing'] ) ) { + $theme_options['header-menu3-submenu-spacing'] = $theme_options['above-header-submenu-spacing']; + } + } + + if ( 'search' === $above_header_section_1 || 'search' === $above_header_section_2 ) { + if ( isset( $theme_options['above-header-text-color-responsive'] ) ) { + $theme_options['header-search-icon-color'] = $theme_options['above-header-text-color-responsive']; + } + } + + if ( 'text-html' === $above_header_section_1 || 'text-html' === $above_header_section_2 ) { + if ( isset( $theme_options['above-header-text-color-responsive'] ) ) { + $theme_options['header-html-3color'] = $theme_options['above-header-text-color-responsive']; + } + if ( isset( $theme_options['above-header-link-color-responsive'] ) ) { + $theme_options['header-html-3link-color'] = $theme_options['above-header-link-color-responsive']; + } + if ( isset( $theme_options['above-header-link-hover-color-responsive'] ) ) { + $theme_options['header-html-3link-h-color'] = $theme_options['above-header-link-hover-color-responsive']; + } + if ( isset( $theme_options['font-size-above-header-content'] ) ) { + $theme_options['font-size-section-hb-html-3'] = $theme_options['font-size-above-header-content']; + } + if ( isset( $theme_options['font-weight-above-header-content'] ) ) { + $theme_options['font-weight-section-hb-html-3'] = $theme_options['font-weight-above-header-content']; + } + if ( isset( $theme_options['line-height-above-header-content'] ) ) { + $theme_options['line-height-section-hb-html-3'] = $theme_options['line-height-above-header-content']; + } + if ( isset( $theme_options['font-family-above-header-content'] ) ) { + $theme_options['font-family-section-hb-html-3'] = $theme_options['font-family-above-header-content']; + } + if ( isset( $theme_options['text-transform-above-header-content'] ) ) { + $theme_options['text-transform-section-hb-html-3'] = $theme_options['text-transform-above-header-content']; + } + } + + if ( 'widget' === $above_header_section_1 || 'widget' === $above_header_section_2 ) { + if ( isset( $theme_options['above-header-text-color-responsive'] ) ) { + $theme_options['header-widget-3-color'] = $theme_options['above-header-text-color-responsive']; + $theme_options['header-widget-3-title-color'] = $theme_options['above-header-text-color-responsive']; + } + if ( isset( $theme_options['above-header-link-color-responsive'] ) ) { + $theme_options['header-widget-3-link-color'] = $theme_options['above-header-link-color-responsive']; + } + if ( isset( $theme_options['above-header-link-hover-color-responsive'] ) ) { + $theme_options['header-widget-3-link-h-color'] = $theme_options['above-header-link-hover-color-responsive']; + } + if ( isset( $theme_options['font-size-above-header-content'] ) ) { + $theme_options['header-widget-3-content-font-size'] = $theme_options['font-size-above-header-content']; + } + if ( isset( $theme_options['font-weight-above-header-content'] ) ) { + $theme_options['header-widget-3-content-font-weight'] = $theme_options['font-weight-above-header-content']; + } + if ( isset( $theme_options['line-height-above-header-content'] ) ) { + $theme_options['header-widget-3-content-line-height'] = $theme_options['line-height-above-header-content']; + } + if ( isset( $theme_options['font-family-above-header-content'] ) ) { + $theme_options['header-widget-3-content-font-family'] = $theme_options['font-family-above-header-content']; + } + if ( isset( $theme_options['text-transform-above-header-content'] ) ) { + $theme_options['header-widget-3-content-text-transform'] = $theme_options['text-transform-above-header-content']; + } + } + + switch ( $above_header_layout ) { + + case 'above-header-layout-1': + $theme_options['header-desktop-items']['above'] = array( + 'above_left' => ( '' !== $new_above_header_section_1_item ) ? array( $new_above_header_section_1_item ) : array(), + 'above_left_center' => array(), + 'above_center' => array(), + 'above_right_center' => array(), + 'above_right' => ( '' !== $new_above_header_section_2_item ) ? array( $new_above_header_section_2_item ) : array(), + ); + break; + + case 'above-header-layout-2': + $theme_options['header-desktop-items']['above'] = array( + 'above_left' => array(), + 'above_left_center' => array(), + 'above_center' => ( '' !== $new_above_header_section_1_item ) ? array( $new_above_header_section_1_item ) : array(), + 'above_right_center' => array(), + 'above_right' => array(), + ); + break; + } + + if ( $above_header_on_mobile ) { + + if ( $above_header_swap_mobile && ( 'menu' === $above_header_section_1 || 'menu' === $above_header_section_2 ) ) { + $temp = $new_above_header_section_1_item; + $new_above_header_section_1_item = $new_above_header_section_2_item; + $new_above_header_section_2_item = $temp; + } + + if ( $above_header_merge_menu && ( 'menu' === $above_header_section_1 || 'menu' === $above_header_section_2 ) ) { + if ( '' !== $new_above_header_section_1_item ) { + $theme_options['header-mobile-items']['popup']['popup_content'][] = $new_above_header_section_1_item; + } + if ( '' !== $new_above_header_section_2_item ) { + $theme_options['header-mobile-items']['popup']['popup_content'][] = $new_above_header_section_2_item; + } + $theme_options['header-menu3-menu-stack-on-mobile'] = true; + $theme_options['header-mobile-items']['above'] = array( + 'above_left' => array(), + 'above_center' => array(), + 'above_right' => array(), + ); + } else { + switch ( $above_header_layout ) { + + case 'above-header-layout-1': + $theme_options['header-mobile-items']['above'] = array( + 'above_left' => ( '' !== $new_above_header_section_1_item ) ? array( $new_above_header_section_1_item ) : array(), + 'above_center' => array(), + 'above_right' => ( '' !== $new_above_header_section_2_item ) ? array( $new_above_header_section_2_item ) : array(), + ); + break; + + case 'above-header-layout-2': + $theme_options['header-mobile-items']['above'] = array( + 'above_left' => array(), + 'above_center' => ( '' !== $new_above_header_section_1_item ) ? array( $new_above_header_section_1_item ) : array(), + 'above_right' => array(), + ); + break; + } + } + } + + return array( + 'theme_options' => $theme_options, + 'used_elements' => $used_elements, + 'widget_options' => $widget_options, + ); + +} + +/** + * Header Footer builder - Migration of Below Header. + * + * @since 3.0.0 + * @param array $theme_options Theme options. + * @param array $used_elements Used Elements array. + * @param array $widget_options Widget options. + * @return array + */ +function astra_below_header_builder_migration( $theme_options, $used_elements, $widget_options ) { + /** + * Below Header + */ + + $below_header_layout = ( isset( $theme_options['below-header-layout'] ) ) ? $theme_options['below-header-layout'] : ''; + $below_header_on_mobile = ( isset( $theme_options['below-header-on-mobile'] ) ) ? $theme_options['below-header-on-mobile'] : ''; + $below_header_merge_menu = ( isset( $theme_options['below-header-merge-menu'] ) ) ? $theme_options['below-header-merge-menu'] : ''; + $below_header_swap_mobile = ( isset( $theme_options['below-header-swap-mobile'] ) ) ? $theme_options['below-header-swap-mobile'] : ''; + + if ( isset( $theme_options['below-header-height'] ) ) { + $theme_options['hbb-header-height'] = array( + 'desktop' => $theme_options['below-header-height'], + 'tablet' => '', + 'mobile' => '', + ); + } + + if ( isset( $theme_options['below-header-divider'] ) ) { + $theme_options['hbb-header-separator'] = $theme_options['below-header-divider']; + } + if ( isset( $theme_options['below-header-divider-color'] ) ) { + $theme_options['hbb-header-bottom-border-color'] = $theme_options['below-header-divider-color']; + } + if ( isset( $theme_options['below-header-bg-obj-responsive'] ) ) { + $theme_options['hbb-header-bg-obj-responsive'] = $theme_options['below-header-bg-obj-responsive']; + } + if ( isset( $theme_options['below-header-spacing'] ) ) { + $theme_options['section-below-header-builder-padding'] = $theme_options['below-header-spacing']; + } + // Below Header Section 1. + $below_header_section_1 = ( isset( $theme_options['below-header-section-1'] ) ) ? $theme_options['below-header-section-1'] : ''; + $new_below_header_section_1_item = ''; + switch ( $below_header_section_1 ) { + case 'menu': + $new_below_header_section_1_item = 'menu-2'; + break; + + case 'search': + if ( ! in_array( 'search', $used_elements ) ) { + $new_below_header_section_1_item = 'search'; + if ( isset( $theme_options['below-header-section-1-search-box-type'] ) ) { + $theme_options['header-search-box-type'] = $theme_options['below-header-section-1-search-box-type']; + } + } + break; + + case 'text-html': + if ( ! in_array( 'html-2', $used_elements ) ) { + $new_below_header_section_1_item = 'html-2'; + if ( isset( $theme_options['below-header-section-1-html'] ) ) { + $theme_options['header-html-2'] = $theme_options['below-header-section-1-html']; + } + } + + break; + + case 'widget': + if ( ! in_array( 'widget-2', $used_elements ) ) { + $new_below_header_section_1_item = 'widget-2'; + if ( isset( $widget_options['below-header-widget-1'] ) ) { + $widget_options['header-widget-2'] = $widget_options['below-header-widget-1']; + } + } + break; + + case 'woocommerce': + if ( ! in_array( 'woo-cart', $used_elements ) ) { + $new_below_header_section_1_item = 'woo-cart'; + } + break; + + case 'edd': + if ( ! in_array( 'edd-cart', $used_elements ) ) { + $new_below_header_section_1_item = 'edd-cart'; + } + break; + } + + // Below Header Section 2. + $below_header_section_2 = ( isset( $theme_options['below-header-section-2'] ) ) ? $theme_options['below-header-section-2'] : ''; + $new_below_header_section_2_item = ''; + switch ( $below_header_section_2 ) { + case 'menu': + $new_below_header_section_2_item = 'menu-2'; + break; + + case 'search': + if ( ! in_array( 'search', $used_elements ) ) { + $new_below_header_section_2_item = 'search'; + if ( isset( $theme_options['below-header-section-2-search-box-type'] ) ) { + $theme_options['header-search-box-type'] = $theme_options['below-header-section-2-search-box-type']; + } + } + break; + + case 'text-html': + if ( ! in_array( 'html-2', $used_elements ) ) { + $new_below_header_section_2_item = 'html-2'; + if ( isset( $theme_options['below-header-section-2-html'] ) ) { + $theme_options['header-html-2'] = $theme_options['below-header-section-2-html']; + } + } + break; + + case 'widget': + if ( ! in_array( 'widget-2', $used_elements ) ) { + $new_below_header_section_2_item = 'widget-2'; + if ( isset( $widget_options['below-header-widget-2'] ) ) { + $widget_options['header-widget-2'] = $widget_options['below-header-widget-2']; + } + } + break; + + case 'woocommerce': + if ( ! in_array( 'woo-cart', $used_elements ) ) { + $new_below_header_section_2_item = 'woo-cart'; + } + break; + + case 'edd': + if ( ! in_array( 'edd-cart', $used_elements ) ) { + $new_below_header_section_2_item = 'edd-cart'; + } + break; + } + + if ( 'menu' === $below_header_section_1 || 'menu' === $below_header_section_2 ) { + $theme_options['header-menu2-menu-stack-on-mobile'] = false; + /** + * Menu - 2 + */ + if ( isset( $theme_options['below-header-submenu-container-animation'] ) ) { + $theme_options['header-menu2-submenu-container-animation'] = $theme_options['below-header-submenu-container-animation']; + } + if ( isset( $theme_options['below-header-submenu-border'] ) ) { + $theme_options['header-menu2-submenu-border'] = $theme_options['below-header-submenu-border']; + } + if ( isset( $theme_options['below-header-submenu-b-color'] ) ) { + $theme_options['header-menu2-submenu-b-color'] = $theme_options['below-header-submenu-b-color']; + } + if ( isset( $theme_options['below-header-submenu-item-border'] ) ) { + $theme_options['header-menu2-submenu-item-border'] = $theme_options['below-header-submenu-item-border']; + } + if ( isset( $theme_options['below-header-submenu-item-b-color'] ) ) { + $theme_options['header-menu2-submenu-item-b-color'] = $theme_options['below-header-submenu-item-b-color']; + } + + if ( isset( $theme_options['below-header-menu-text-color-responsive'] ) ) { + $theme_options['header-menu2-color-responsive'] = $theme_options['below-header-menu-text-color-responsive']; + } + if ( isset( $theme_options['below-header-menu-bg-obj-responsive'] ) ) { + $theme_options['header-menu2-bg-obj-responsive'] = $theme_options['below-header-menu-bg-obj-responsive']; + } + + if ( isset( $theme_options['below-header-menu-text-hover-color-responsive'] ) ) { + $theme_options['header-menu2-h-color-responsive'] = $theme_options['below-header-menu-text-hover-color-responsive']; + } + if ( isset( $theme_options['below-header-menu-bg-hover-color-responsive'] ) ) { + $theme_options['header-menu2-h-bg-color-responsive'] = $theme_options['below-header-menu-bg-hover-color-responsive']; + } + + if ( isset( $theme_options['below-header-current-menu-text-color-responsive'] ) ) { + $theme_options['header-menu2-a-color-responsive'] = $theme_options['below-header-current-menu-text-color-responsive']; + } + if ( isset( $theme_options['below-header-current-menu-bg-color-responsive'] ) ) { + $theme_options['header-menu2-a-bg-color-responsive'] = $theme_options['below-header-current-menu-bg-color-responsive']; + } + + if ( isset( $theme_options['below-header-font-size'] ) ) { + $theme_options['header-menu2-font-size'] = $theme_options['below-header-font-size']; + } + if ( isset( $theme_options['below-header-font-weight'] ) ) { + $theme_options['header-menu2-font-weight'] = $theme_options['below-header-font-weight']; + } + if ( isset( $theme_options['below-header-line-height'] ) ) { + $theme_options['header-menu2-line-height'] = $theme_options['below-header-line-height']; + } + if ( isset( $theme_options['below-header-font-family'] ) ) { + $theme_options['header-menu2-font-family'] = $theme_options['below-header-font-family']; + } + if ( isset( $theme_options['below-header-text-transform'] ) ) { + $theme_options['header-menu2-text-transform'] = $theme_options['below-header-text-transform']; + } + + if ( isset( $theme_options['below-header-menu-spacing'] ) ) { + $theme_options['header-menu2-menu-spacing'] = $theme_options['below-header-menu-spacing']; + } + + // Menu 2 - Submenu. + if ( isset( $theme_options['below-header-submenu-text-color-responsive'] ) ) { + $theme_options['header-menu2-submenu-color-responsive'] = $theme_options['below-header-submenu-text-color-responsive']; + } + if ( isset( $theme_options['below-header-submenu-bg-color-responsive'] ) ) { + $theme_options['header-menu2-submenu-bg-color-responsive'] = $theme_options['below-header-submenu-bg-color-responsive']; + } + + if ( isset( $theme_options['below-header-submenu-hover-color-responsive'] ) ) { + $theme_options['header-menu2-submenu-h-color-responsive'] = $theme_options['below-header-submenu-hover-color-responsive']; + } + if ( isset( $theme_options['below-header-submenu-bg-hover-color-responsive'] ) ) { + $theme_options['header-menu2-submenu-h-bg-color-responsive'] = $theme_options['below-header-submenu-bg-hover-color-responsive']; + } + + if ( isset( $theme_options['below-header-submenu-active-color-responsive'] ) ) { + $theme_options['header-menu2-submenu-a-color-responsive'] = $theme_options['below-header-submenu-active-color-responsive']; + } + if ( isset( $theme_options['below-header-submenu-active-bg-color-responsive'] ) ) { + $theme_options['header-menu2-submenu-a-bg-color-responsive'] = $theme_options['below-header-submenu-active-bg-color-responsive']; + } + + if ( isset( $theme_options['font-size-below-header-dropdown-menu'] ) ) { + $theme_options['header-font-size-menu2-sub-menu'] = $theme_options['font-size-below-header-dropdown-menu']; + } + if ( isset( $theme_options['font-weight-below-header-dropdown-menu'] ) ) { + $theme_options['header-font-weight-menu2-sub-menu'] = $theme_options['font-weight-below-header-dropdown-menu']; + } + if ( isset( $theme_options['line-height-below-header-dropdown-menu'] ) ) { + $theme_options['header-line-height-menu2-sub-menu'] = $theme_options['line-height-below-header-dropdown-menu']; + } + if ( isset( $theme_options['font-family-below-header-dropdown-menu'] ) ) { + $theme_options['header-font-family-menu2-sub-menu'] = $theme_options['font-family-below-header-dropdown-menu']; + } + if ( isset( $theme_options['text-transform-below-header-dropdown-menu'] ) ) { + $theme_options['header-text-transform-menu2-sub-menu'] = $theme_options['text-transform-below-header-dropdown-menu']; + } + + if ( isset( $theme_options['below-header-submenu-spacing'] ) ) { + $theme_options['header-menu2-submenu-spacing'] = $theme_options['below-header-submenu-spacing']; + } + } + + if ( 'search' === $below_header_section_1 || 'search' === $below_header_section_2 ) { + if ( isset( $theme_options['below-header-text-color-responsive'] ) ) { + $theme_options['header-search-icon-color'] = $theme_options['below-header-text-color-responsive']; + } + } + + if ( 'text-html' === $below_header_section_1 || 'text-html' === $below_header_section_2 ) { + if ( isset( $theme_options['below-header-text-color-responsive'] ) ) { + $theme_options['header-html-2color'] = $theme_options['below-header-text-color-responsive']; + } + if ( isset( $theme_options['below-header-link-color-responsive'] ) ) { + $theme_options['header-html-2link-color'] = $theme_options['below-header-link-color-responsive']; + } + if ( isset( $theme_options['below-header-link-hover-color-responsive'] ) ) { + $theme_options['header-html-2link-h-color'] = $theme_options['below-header-link-hover-color-responsive']; + } + if ( isset( $theme_options['font-size-below-header-content'] ) ) { + $theme_options['font-size-section-hb-html-2'] = $theme_options['font-size-below-header-content']; + } + if ( isset( $theme_options['font-weight-below-header-content'] ) ) { + $theme_options['font-weight-section-hb-html-2'] = $theme_options['font-weight-below-header-content']; + } + if ( isset( $theme_options['line-height-below-header-content'] ) ) { + $theme_options['line-height-section-hb-html-2'] = $theme_options['line-height-below-header-content']; + } + if ( isset( $theme_options['font-family-below-header-content'] ) ) { + $theme_options['font-family-section-hb-html-2'] = $theme_options['font-family-below-header-content']; + } + if ( isset( $theme_options['text-transform-below-header-content'] ) ) { + $theme_options['text-transform-section-hb-html-2'] = $theme_options['text-transform-below-header-content']; + } + } + + if ( 'widget' === $below_header_section_1 || 'widget' === $below_header_section_2 ) { + if ( isset( $theme_options['below-header-text-color-responsive'] ) ) { + $theme_options['header-widget-2-color'] = $theme_options['below-header-text-color-responsive']; + $theme_options['header-widget-2-title-color'] = $theme_options['below-header-text-color-responsive']; + } + if ( isset( $theme_options['below-header-link-color-responsive'] ) ) { + $theme_options['header-widget-2-link-color'] = $theme_options['below-header-link-color-responsive']; + } + if ( isset( $theme_options['below-header-link-hover-color-responsive'] ) ) { + $theme_options['header-widget-2-link-h-color'] = $theme_options['below-header-link-hover-color-responsive']; + } + if ( isset( $theme_options['font-size-below-header-content'] ) ) { + $theme_options['header-widget-2-content-font-size'] = $theme_options['font-size-below-header-content']; + } + if ( isset( $theme_options['font-weight-below-header-content'] ) ) { + $theme_options['header-widget-2-content-font-weight'] = $theme_options['font-weight-below-header-content']; + } + if ( isset( $theme_options['line-height-below-header-content'] ) ) { + $theme_options['header-widget-2-content-line-height'] = $theme_options['line-height-below-header-content']; + } + if ( isset( $theme_options['font-family-below-header-content'] ) ) { + $theme_options['header-widget-2-content-font-family'] = $theme_options['font-family-below-header-content']; + } + if ( isset( $theme_options['text-transform-below-header-content'] ) ) { + $theme_options['header-widget-2-content-text-transform'] = $theme_options['text-transform-below-header-content']; + } + } + + switch ( $below_header_layout ) { + + case 'below-header-layout-1': + $theme_options['header-desktop-items']['below'] = array( + 'below_left' => ( '' !== $new_below_header_section_1_item ) ? array( $new_below_header_section_1_item ) : array(), + 'below_left_center' => array(), + 'below_center' => array(), + 'below_right_center' => array(), + 'below_right' => ( '' !== $new_below_header_section_2_item ) ? array( $new_below_header_section_2_item ) : array(), + ); + break; + + case 'below-header-layout-2': + $theme_options['header-desktop-items']['below'] = array( + 'below_left' => array(), + 'below_left_center' => array(), + 'below_center' => ( '' !== $new_below_header_section_1_item ) ? array( $new_below_header_section_1_item ) : array(), + 'below_right_center' => array(), + 'below_right' => array(), + ); + break; + } + + if ( $below_header_on_mobile ) { + + if ( $below_header_swap_mobile && ( 'menu' === $below_header_section_1 || 'menu' === $below_header_section_2 ) ) { + $temp = $new_below_header_section_1_item; + $new_below_header_section_1_item = $new_below_header_section_2_item; + $new_below_header_section_2_item = $temp; + } + + if ( $below_header_merge_menu && ( 'menu' === $below_header_section_1 || 'menu' === $below_header_section_2 ) ) { + if ( '' !== $new_below_header_section_1_item ) { + $theme_options['header-mobile-items']['popup']['popup_content'][] = $new_below_header_section_1_item; + } + if ( '' !== $new_below_header_section_2_item ) { + $theme_options['header-mobile-items']['popup']['popup_content'][] = $new_below_header_section_2_item; + } + $theme_options['header-menu2-menu-stack-on-mobile'] = true; + $theme_options['header-mobile-items']['below'] = array( + 'below_left' => array(), + 'below_center' => array(), + 'below_right' => array(), + ); + } else { + switch ( $below_header_layout ) { + + case 'below-header-layout-1': + $theme_options['header-mobile-items']['below'] = array( + 'below_left' => ( '' !== $new_below_header_section_1_item ) ? array( $new_below_header_section_1_item ) : array(), + 'below_center' => array(), + 'below_right' => ( '' !== $new_below_header_section_2_item ) ? array( $new_below_header_section_2_item ) : array(), + ); + break; + + case 'below-header-layout-2': + $theme_options['header-mobile-items']['below'] = array( + 'below_left' => array(), + 'below_center' => ( '' !== $new_below_header_section_1_item ) ? array( $new_below_header_section_1_item ) : array(), + 'below_right' => array(), + ); + break; + } + } + } + + return array( + 'theme_options' => $theme_options, + 'used_elements' => $used_elements, + 'widget_options' => $widget_options, + ); +} + +/** + * Header Footer builder - Migration of Footer. + * + * @since 3.0.0 + * @param array $theme_options Theme options. + * @param array $used_elements Used Elements array. + * @param array $widget_options Widget options. + * @return array + */ +function astra_footer_builder_migration( $theme_options, $used_elements, $widget_options ) { + /** + * Footer + */ + $footer_layout = ( isset( $theme_options['footer-sml-layout'] ) ) ? $theme_options['footer-sml-layout'] : ''; + + if ( isset( $theme_options['footer-layout-width'] ) ) { + $theme_options['hb-footer-layout-width'] = $theme_options['footer-layout-width']; + } + if ( isset( $theme_options['footer-sml-divider'] ) ) { + $theme_options['hbb-footer-separator'] = $theme_options['footer-sml-divider']; + } + if ( isset( $theme_options['footer-sml-divider-color'] ) ) { + $theme_options['hbb-footer-top-border-color'] = $theme_options['footer-sml-divider-color']; + } + if ( isset( $theme_options['footer-bg-obj'] ) ) { + $theme_options['hbb-footer-bg-obj-responsive'] = array( + 'desktop' => $theme_options['footer-bg-obj'], + 'tablet' => '', + 'mobile' => '', + ); + } + if ( isset( $theme_options['footer-sml-spacing'] ) ) { + $theme_options['section-below-footer-builder-padding'] = $theme_options['footer-sml-spacing']; + } + + // Footer Section 1. + $footer_section_1 = ( isset( $theme_options['footer-sml-section-1'] ) ) ? $theme_options['footer-sml-section-1'] : ''; + $new_section_1_item = ''; + $used_elements[] = $new_section_1_item; + + $footer_section_2 = ( isset( $theme_options['footer-sml-section-2'] ) ) ? $theme_options['footer-sml-section-2'] : ''; + $new_section_2_item = ''; + $used_elements[] = $new_section_2_item; + + switch ( $footer_section_1 ) { + case 'custom': + $new_section_1_item = 'copyright'; + $theme_options['footer-copyright-alignment'] = array( + 'desktop' => ( 'footer-sml-layout-1' === $footer_layout ) ? 'center' : 'left', + 'tablet' => ( 'footer-sml-layout-1' === $footer_layout ) ? 'center' : 'left', + 'mobile' => 'center', + ); + break; + + case 'widget': + $new_section_1_item = 'widget-1'; + $theme_options['footer-widget-alignment-1'] = array( + 'desktop' => ( 'footer-sml-layout-1' === $footer_layout ) ? 'center' : 'left', + 'tablet' => ( 'footer-sml-layout-1' === $footer_layout ) ? 'center' : 'left', + 'mobile' => 'center', + ); + if ( isset( $theme_options['footer-color'] ) ) { + $theme_options['footer-widget-1-color'] = array( + 'desktop' => $theme_options['footer-color'], + 'tablet' => '', + 'mobile' => '', + ); + } + if ( isset( $theme_options['footer-link-color'] ) ) { + $theme_options['footer-widget-1-link-color'] = array( + 'desktop' => $theme_options['footer-link-color'], + 'tablet' => '', + 'mobile' => '', + ); + } + if ( isset( $theme_options['footer-link-h-color'] ) ) { + $theme_options['footer-widget-1-link-h-color'] = array( + 'desktop' => $theme_options['footer-link-h-color'], + 'tablet' => '', + 'mobile' => '', + ); + } + + if ( isset( $theme_options['font-size-footer-content'] ) ) { + $theme_options['footer-widget-1-content-font-size'] = $theme_options['font-size-footer-content']; + } + + if ( isset( $theme_options['font-weight-footer-content'] ) ) { + $theme_options['footer-widget-1-content-font-weight'] = $theme_options['font-weight-footer-content']; + } + + if ( isset( $theme_options['line-height-footer-content'] ) ) { + $theme_options['footer-widget-1-content-line-height'] = $theme_options['line-height-footer-content']; + } + + if ( isset( $theme_options['font-family-footer-content'] ) ) { + $theme_options['footer-widget-1-content-font-family'] = $theme_options['font-family-footer-content']; + } + + if ( isset( $theme_options['text-transform-footer-content'] ) ) { + $theme_options['footer-widget-1-content-text-transform'] = $theme_options['text-transform-footer-content']; + } + + + break; + + case 'menu': + $theme_options['footer-menu-alignment'] = array( + 'desktop' => ( 'footer-sml-layout-1' === $footer_layout ) ? 'center' : 'flex-start', + 'tablet' => ( 'footer-sml-layout-1' === $footer_layout ) ? 'center' : 'flex-start', + 'mobile' => 'center', + ); + $new_section_1_item = 'menu'; + break; + } + + // Footer Section 2. + switch ( $footer_section_2 ) { + case 'custom': + $new_section_2_item = ( 'copyright' !== $new_section_1_item ) ? 'copyright' : 'html-1'; + if ( 'copyright' !== $new_section_1_item ) { + $theme_options['footer-copyright-alignment'] = array( + 'desktop' => ( 'footer-sml-layout-1' === $footer_layout ) ? 'center' : 'right', + 'tablet' => ( 'footer-sml-layout-1' === $footer_layout ) ? 'center' : 'right', + 'mobile' => 'center', + ); + if ( isset( $theme_options['footer-sml-section-2-credit'] ) ) { + $theme_options['footer-copyright-editor'] = $theme_options['footer-sml-section-2-credit']; + } + } else { + $theme_options['footer-html-1-alignment'] = array( + 'desktop' => ( 'footer-sml-layout-1' === $footer_layout ) ? 'center' : 'right', + 'tablet' => ( 'footer-sml-layout-1' === $footer_layout ) ? 'center' : 'right', + 'mobile' => 'center', + ); + if ( isset( $theme_options['footer-sml-section-2-credit'] ) ) { + $theme_options['footer-html-1'] = $theme_options['footer-sml-section-2-credit']; + } + } + + break; + + case 'widget': + $new_section_2_item = 'widget-2'; + $theme_options['footer-widget-alignment-2'] = array( + 'desktop' => ( 'footer-sml-layout-1' === $footer_layout ) ? 'center' : 'right', + 'tablet' => ( 'footer-sml-layout-1' === $footer_layout ) ? 'center' : 'right', + 'mobile' => 'center', + ); + if ( isset( $theme_options['footer-color'] ) ) { + $theme_options['footer-widget-2-color'] = array( + 'desktop' => $theme_options['footer-color'], + 'tablet' => '', + 'mobile' => '', + ); + } + if ( isset( $theme_options['footer-link-color'] ) ) { + $theme_options['footer-widget-2-link-color'] = array( + 'desktop' => $theme_options['footer-link-color'], + 'tablet' => '', + 'mobile' => '', + ); + } + if ( isset( $theme_options['footer-link-h-color'] ) ) { + $theme_options['footer-widget-2-link-h-color'] = array( + 'desktop' => $theme_options['footer-link-h-color'], + 'tablet' => '', + 'mobile' => '', + ); + } + + if ( isset( $theme_options['font-size-footer-content'] ) ) { + $theme_options['footer-widget-2-content-font-size'] = $theme_options['font-size-footer-content']; + } + + if ( isset( $theme_options['font-weight-footer-content'] ) ) { + $theme_options['footer-widget-2-content-font-weight'] = $theme_options['font-weight-footer-content']; + } + + if ( isset( $theme_options['line-height-footer-content'] ) ) { + $theme_options['footer-widget-2-content-line-height'] = $theme_options['line-height-footer-content']; + } + + if ( isset( $theme_options['font-family-footer-content'] ) ) { + $theme_options['footer-widget-2-content-font-family'] = $theme_options['font-family-footer-content']; + } + + if ( isset( $theme_options['text-transform-footer-content'] ) ) { + $theme_options['footer-widget-2-content-text-transform'] = $theme_options['text-transform-footer-content']; + } + + + break; + + case 'menu': + $new_section_2_item = 'menu'; + $theme_options['footer-menu-alignment'] = array( + 'desktop' => ( 'footer-sml-layout-1' === $footer_layout ) ? 'center' : 'flex-end', + 'tablet' => ( 'footer-sml-layout-1' === $footer_layout ) ? 'center' : 'flex-end', + 'mobile' => 'center', + ); + break; + } + + if ( 'custom' === $footer_section_1 || 'custom' === $footer_section_2 ) { + + // Footer Content Color migrated to Copyright. + if ( isset( $theme_options['footer-sml-section-1-credit'] ) ) { + $theme_options['footer-copyright-editor'] = $theme_options['footer-sml-section-1-credit']; + } + if ( isset( $theme_options['footer-color'] ) ) { + $theme_options['footer-copyright-color'] = $theme_options['footer-color']; + } + if ( isset( $theme_options['footer-link-color'] ) ) { + $theme_options['footer-copyright-link-color'] = $theme_options['footer-link-color']; + } + if ( isset( $theme_options['footer-link-h-color'] ) ) { + $theme_options['footer-copyright-link-h-color'] = $theme_options['footer-link-h-color']; + } + + if ( isset( $theme_options['font-size-footer-content'] ) ) { + $theme_options['font-size-section-footer-copyright'] = $theme_options['font-size-footer-content']; + } + + if ( isset( $theme_options['font-weight-footer-content'] ) ) { + $theme_options['font-weight-section-footer-copyright'] = $theme_options['font-weight-footer-content']; + } + + if ( isset( $theme_options['line-height-footer-content'] ) ) { + $theme_options['line-height-section-footer-copyright'] = $theme_options['line-height-footer-content']; + } + + if ( isset( $theme_options['font-family-footer-content'] ) ) { + $theme_options['font-family-section-footer-copyright'] = $theme_options['font-family-footer-content']; + } + + if ( isset( $theme_options['text-transform-footer-content'] ) ) { + $theme_options['text-transform-section-footer-copyright'] = $theme_options['text-transform-footer-content']; + } + + if ( 'html-1' === $new_section_2_item ) { + // Footer Content Color migrated to HTML 1. + if ( isset( $theme_options['footer-color'] ) ) { + $theme_options['footer-html-1-color'] = array( + 'desktop' => $theme_options['footer-color'], + 'tablet' => '', + 'mobile' => '', + ); + } + if ( isset( $theme_options['footer-link-color'] ) ) { + $theme_options['footer-html-1-link-color'] = array( + 'desktop' => $theme_options['footer-link-color'], + 'tablet' => '', + 'mobile' => '', + ); + } + if ( isset( $theme_options['footer-link-h-color'] ) ) { + $theme_options['footer-html-1-link-h-color'] = array( + 'desktop' => $theme_options['footer-link-h-color'], + 'tablet' => '', + 'mobile' => '', + ); + } + + if ( isset( $theme_options['font-size-footer-content'] ) ) { + $theme_options['font-size-section-fb-html-1'] = $theme_options['font-size-footer-content']; + } + + if ( isset( $theme_options['font-weight-footer-content'] ) ) { + $theme_options['font-weight-section-fb-html-1'] = $theme_options['font-weight-footer-content']; + } + + if ( isset( $theme_options['line-height-footer-content'] ) ) { + $theme_options['line-height-section-fb-html-1'] = $theme_options['line-height-footer-content']; + } + + if ( isset( $theme_options['font-family-footer-content'] ) ) { + $theme_options['font-family-section-fb-html-1'] = $theme_options['font-family-footer-content']; + } + + if ( isset( $theme_options['text-transform-footer-content'] ) ) { + $theme_options['text-transform-section-fb-html-1'] = $theme_options['text-transform-footer-content']; + } + } + } + + if ( 'menu' === $footer_section_1 || 'menu' === $footer_section_2 ) { + if ( isset( $theme_options['footer-link-color'] ) ) { + $theme_options['footer-menu-color-responsive'] = array( + 'desktop' => $theme_options['footer-link-color'], + 'tablet' => '', + 'mobile' => '', + ); + } + if ( isset( $theme_options['footer-link-h-color'] ) ) { + $theme_options['footer-menu-h-color-responsive'] = array( + 'desktop' => $theme_options['footer-link-h-color'], + 'tablet' => '', + 'mobile' => '', + ); + } + + $theme_options['footer-menu-layout'] = array( + 'desktop' => 'horizontal', + 'tablet' => 'horizontal', + 'mobile' => 'horizontal', + ); + + if ( isset( $theme_options['font-size-footer-content'] ) ) { + $theme_options['footer-menu-font-size'] = $theme_options['font-size-footer-content']; + } + + if ( isset( $theme_options['font-weight-footer-content'] ) ) { + $theme_options['footer-menu-font-weight'] = $theme_options['font-weight-footer-content']; + } + + if ( isset( $theme_options['line-height-footer-content'] ) ) { + $theme_options['footer-menu-line-height'] = $theme_options['line-height-footer-content']; + } + + if ( isset( $theme_options['font-family-footer-content'] ) ) { + $theme_options['footer-menu-font-family'] = $theme_options['font-family-footer-content']; + } + + if ( isset( $theme_options['text-transform-footer-content'] ) ) { + $theme_options['footer-menu-text-transform'] = $theme_options['text-transform-footer-content']; + } + + if ( isset( $theme_options['footer-menu-spacing'] ) ) { + $theme_options['footer-main-menu-spacing'] = $theme_options['footer-menu-spacing']; + } + } + + if ( '' !== $footer_layout ) { + + $theme_options['footer-desktop-items'] = array( + 'above' => + array( + 'above_1' => array(), + 'above_2' => array(), + 'above_3' => array(), + 'above_4' => array(), + 'above_5' => array(), + ), + 'primary' => + array( + 'primary_1' => array(), + 'primary_2' => array(), + 'primary_3' => array(), + 'primary_4' => array(), + 'primary_5' => array(), + ), + 'below' => + array( + 'below_1' => array(), + 'below_2' => array(), + 'below_3' => array(), + 'below_4' => array(), + 'below_5' => array(), + ), + ); + + switch ( $footer_layout ) { + case 'footer-sml-layout-1': + $theme_options['footer-desktop-items']['below'] = array( + 'below_1' => array( $new_section_1_item, $new_section_2_item ), + 'below_2' => array(), + 'below_3' => array(), + 'below_4' => array(), + 'below_5' => array(), + ); + $theme_options['hbb-footer-column'] = 1; + $theme_options['hbb-footer-layout'] = array( + 'desktop' => 'full', + 'tablet' => 'full', + 'mobile' => 'full', + ); + break; + + case 'footer-sml-layout-2': + $theme_options['footer-desktop-items']['below'] = array( + 'below_1' => array( $new_section_1_item ), + 'below_2' => array( $new_section_2_item ), + 'below_3' => array(), + 'below_4' => array(), + 'below_5' => array(), + ); + $theme_options['hbb-footer-column'] = 2; + $theme_options['hbb-footer-layout'] = array( + 'desktop' => '2-equal', + 'tablet' => '2-equal', + 'mobile' => 'full', + ); + break; + + default: + $theme_options['footer-desktop-items']['below'] = array( + 'below_1' => array( 'copyright' ), + 'below_2' => array(), + 'below_3' => array(), + 'below_4' => array(), + 'below_5' => array(), + ); + } + } + + return array( + 'theme_options' => $theme_options, + 'used_elements' => $used_elements, + 'widget_options' => $widget_options, + ); +} + +/** + * Header Footer builder - Migration of Footer Widgets. + * + * @since 3.0.0 + * @param array $theme_options Theme options. + * @param array $used_elements Used Elements array. + * @param array $widget_options Widget options. + * @return array + */ +function astra_footer_widgets_migration( $theme_options, $used_elements, $widget_options ) { + + $footer_widget_layouts = ( isset( $theme_options['footer-adv'] ) ) ? $theme_options['footer-adv'] : ''; + + if ( '' !== $footer_widget_layouts ) { + + $column = 2; + $layout = array( + 'desktop' => '2-equal', + 'tablet' => '2-equal', + 'mobile' => 'full', + ); + $items = array( + 'above_1' => array(), + 'above_2' => array(), + 'above_3' => array(), + 'above_4' => array(), + 'above_5' => array(), + ); + + switch ( $footer_widget_layouts ) { + case 'layout-1': + $column = '1'; + $layout = array( + 'desktop' => 'full', + 'tablet' => 'full', + 'mobile' => 'full', + ); + $items = array( + 'above_1' => array( 'widget-1' ), + 'above_2' => array(), + 'above_3' => array(), + 'above_4' => array(), + 'above_5' => array(), + ); + break; + + case 'layout-2': + $column = '2'; + $layout = array( + 'desktop' => '2-equal', + 'tablet' => '2-equal', + 'mobile' => '2-equal', + ); + $items = array( + 'above_1' => array( 'widget-1' ), + 'above_2' => array( 'widget-2' ), + 'above_3' => array(), + 'above_4' => array(), + 'above_5' => array(), + ); + break; + + case 'layout-3': + $column = '3'; + $layout = array( + 'desktop' => '3-equal', + 'tablet' => 'full', + 'mobile' => 'full', + ); + $items = array( + 'above_1' => array( 'widget-1' ), + 'above_2' => array( 'widget-2' ), + 'above_3' => array( 'widget-3' ), + 'above_4' => array(), + 'above_5' => array(), + ); + break; + + case 'layout-4': + $column = '4'; + $layout = array( + 'desktop' => '4-equal', + 'tablet' => 'full', + 'mobile' => 'full', + ); + $items = array( + 'above_1' => array( 'widget-1' ), + 'above_2' => array( 'widget-2' ), + 'above_3' => array( 'widget-3' ), + 'above_4' => array( 'widget-4' ), + 'above_5' => array(), + ); + break; + + case 'layout-5': + $column = '5'; + $layout = array( + 'desktop' => '5-equal', + 'tablet' => 'full', + 'mobile' => 'full', + ); + $items = array( + 'above_1' => array( 'widget-1' ), + 'above_2' => array( 'widget-2' ), + 'above_3' => array( 'widget-3' ), + 'above_4' => array( 'widget-4' ), + 'above_5' => array( 'widget-5' ), + ); + break; + + case 'layout-6': + case 'layout-7': + $column = '3'; + $layout = array( + 'desktop' => '3-lheavy', + 'tablet' => 'full', + 'mobile' => 'full', + ); + $items = array( + 'above_1' => array( 'widget-1' ), + 'above_2' => array( 'widget-2' ), + 'above_3' => array( 'widget-3' ), + 'above_4' => array(), + 'above_5' => array(), + ); + break; + } + + $theme_options['hba-footer-column'] = $column; + $theme_options['hba-footer-layout'] = $layout; + if ( isset( $theme_options['footer-desktop-items'] ) ) { + $theme_options['footer-desktop-items']['above'] = $items; + } + + for ( $i = 1; $i <= $column; $i++ ) { + + if ( isset( $theme_options['footer-adv-wgt-title-color'] ) ) { + $theme_options[ 'footer-widget-' . $i . '-title-color' ] = array( + 'desktop' => $theme_options['footer-adv-wgt-title-color'], + 'tablet' => '', + 'mobile' => '', + ); + } + + if ( isset( $theme_options['footer-adv-text-color'] ) ) { + $theme_options[ 'footer-widget-' . $i . '-color' ] = array( + 'desktop' => $theme_options['footer-adv-text-color'], + 'tablet' => '', + 'mobile' => '', + ); + } + + if ( isset( $theme_options['footer-adv-link-color'] ) ) { + $theme_options[ 'footer-widget-' . $i . '-link-color' ] = array( + 'desktop' => $theme_options['footer-adv-link-color'], + 'tablet' => '', + 'mobile' => '', + ); + } + + if ( isset( $theme_options['footer-adv-link-h-color'] ) ) { + $theme_options[ 'footer-widget-' . $i . '-link-h-color' ] = array( + 'desktop' => $theme_options['footer-adv-link-h-color'], + 'tablet' => '', + 'mobile' => '', + ); + } + + + if ( isset( $theme_options['footer-adv-wgt-title-font-size'] ) ) { + $theme_options[ 'footer-widget-' . $i . '-font-size' ] = $theme_options['footer-adv-wgt-title-font-size']; + } + + if ( isset( $theme_options['footer-adv-wgt-title-font-weight'] ) ) { + $theme_options[ 'footer-widget-' . $i . '-font-weight' ] = $theme_options['footer-adv-wgt-title-font-weight']; + } + + if ( isset( $theme_options['footer-adv-wgt-title-line-height'] ) ) { + $theme_options[ 'footer-widget-' . $i . '-line-height' ] = $theme_options['footer-adv-wgt-title-line-height']; + } + + if ( isset( $theme_options['footer-adv-wgt-title-font-family'] ) ) { + $theme_options[ 'footer-widget-' . $i . '-font-family' ] = $theme_options['footer-adv-wgt-title-font-family']; + } + + if ( isset( $theme_options['footer-adv-wgt-title-text-transform'] ) ) { + $theme_options[ 'footer-widget-' . $i . '-text-transform' ] = $theme_options['footer-adv-wgt-title-text-transform']; + } + + + if ( isset( $theme_options['footer-adv-wgt-content-font-size'] ) ) { + $theme_options[ 'footer-widget-' . $i . '-content-font-size' ] = $theme_options['footer-adv-wgt-content-font-size']; + } + + if ( isset( $theme_options['footer-adv-wgt-content-font-weight'] ) ) { + $theme_options[ 'footer-widget-' . $i . '-content-font-weight' ] = $theme_options['footer-adv-wgt-content-font-weight']; + } + + if ( isset( $theme_options['footer-adv-wgt-content-line-height'] ) ) { + $theme_options[ 'footer-widget-' . $i . '-content-line-height' ] = $theme_options['footer-adv-wgt-content-line-height']; + } + + if ( isset( $theme_options['footer-adv-wgt-content-font-family'] ) ) { + $theme_options[ 'footer-widget-' . $i . '-content-font-family' ] = $theme_options['footer-adv-wgt-content-font-family']; + } + + if ( isset( $theme_options['footer-adv-wgt-content-text-transform'] ) ) { + $theme_options[ 'footer-widget-' . $i . '-content-text-transform' ] = $theme_options['footer-adv-wgt-content-text-transform']; + } + + if ( isset( $widget_options[ 'advanced-footer-widget-' . $i ] ) ) { + $widget_options[ 'footer-widget-' . $i ] = $widget_options[ 'advanced-footer-widget-' . $i ]; + } + } + } + + if ( isset( $theme_options['footer-adv-border-width'] ) ) { + $theme_options['hba-footer-separator'] = $theme_options['footer-adv-border-width']; + } + + if ( isset( $theme_options['footer-adv-border-color'] ) ) { + $theme_options['hba-footer-top-border-color'] = $theme_options['footer-adv-border-color']; + } + + if ( isset( $theme_options['footer-adv-bg-obj'] ) ) { + $theme_options['hba-footer-bg-obj-responsive'] = array( + 'desktop' => $theme_options['footer-adv-bg-obj'], + 'tablet' => '', + 'mobile' => '', + ); + } + + if ( isset( $theme_options['footer-adv-area-padding'] ) ) { + $theme_options['section-above-footer-builder-padding'] = $theme_options['footer-adv-area-padding']; + } + + return array( + 'theme_options' => $theme_options, + 'used_elements' => $used_elements, + 'widget_options' => $widget_options, + ); +} + +/** + * Do not apply new Media & Text block padding CSS & not remove padding for #primary on mobile devices directly for existing users. + * + * @since 2.6.1 + * + * @return void + */ +function astra_gutenberg_media_text_block_css_compatibility() { + $theme_options = get_option( 'astra-settings', array() ); + + if ( ! isset( $theme_options['guntenberg-media-text-block-padding-css'] ) ) { + $theme_options['guntenberg-media-text-block-padding-css'] = false; + update_option( 'astra-settings', $theme_options ); + } +} + +/** + * Gutenberg pattern compatibility changes. + * + * @since 3.3.0 + * + * @return void + */ +function astra_gutenberg_pattern_compatibility() { + $theme_options = get_option( 'astra-settings', array() ); + + if ( ! isset( $theme_options['guntenberg-button-pattern-compat-css'] ) ) { + $theme_options['guntenberg-button-pattern-compat-css'] = false; + update_option( 'astra-settings', $theme_options ); + } +} + +/** + * Set flag to provide backward compatibility of float based CSS for existing users. + * + * @since 3.3.0 + * @return void. + */ +function astra_check_flex_based_css() { + $theme_options = get_option( 'astra-settings', array() ); + + if ( ! isset( $theme_options['is-flex-based-css'] ) ) { + $theme_options['is-flex-based-css'] = false; + update_option( 'astra-settings', $theme_options ); + } +} + +/** + * Update the Cart Style, Icon color & Border radius if None style is selected. + * + * @since 3.4.0 + * @return void. + */ +function astra_update_cart_style() { + $theme_options = get_option( 'astra-settings', array() ); + if ( isset( $theme_options['woo-header-cart-icon-style'] ) && 'none' === $theme_options['woo-header-cart-icon-style'] ) { + $theme_options['woo-header-cart-icon-style'] = 'outline'; + $theme_options['header-woo-cart-icon-color'] = ''; + $theme_options['woo-header-cart-icon-color'] = ''; + $theme_options['woo-header-cart-icon-radius'] = ''; + } + + if ( isset( $theme_options['edd-header-cart-icon-style'] ) && 'none' === $theme_options['edd-header-cart-icon-style'] ) { + $theme_options['edd-header-cart-icon-style'] = 'outline'; + $theme_options['edd-header-cart-icon-color'] = ''; + $theme_options['edd-header-cart-icon-radius'] = ''; + } + + update_option( 'astra-settings', $theme_options ); +} + +/** + * Update existing 'Grid Column Layout' option in responsive way in Related Posts. + * Till this update 3.5.0 we have 'Grid Column Layout' only for singular option, but now we are improving it as responsive. + * + * @since 3.5.0 + * @return void. + */ +function astra_update_related_posts_grid_layout() { + + $theme_options = get_option( 'astra-settings', array() ); + + if ( ! isset( $theme_options['related-posts-grid-responsive'] ) && isset( $theme_options['related-posts-grid'] ) ) { + + /** + * Managed here switch case to reduce further conditions in dynamic-css to get CSS value based on grid-template-columns. Because there are following CSS props used. + * + * '1' = grid-template-columns: 1fr; + * '2' = grid-template-columns: repeat(2,1fr); + * '3' = grid-template-columns: repeat(3,1fr); + * '4' = grid-template-columns: repeat(4,1fr); + * + * And we already have Astra_Builder_Helper::$grid_size_mapping (used for footer layouts) for getting CSS values based on grid layouts. So migrating old value of grid here to new grid value. + */ + switch ( $theme_options['related-posts-grid'] ) { + case '1': + $grid_layout = 'full'; + break; + + case '2': + $grid_layout = '2-equal'; + break; + + case '3': + $grid_layout = '3-equal'; + break; + + case '4': + $grid_layout = '4-equal'; + break; + } + + $theme_options['related-posts-grid-responsive'] = array( + 'desktop' => $grid_layout, + 'tablet' => $grid_layout, + 'mobile' => 'full', + ); + + update_option( 'astra-settings', $theme_options ); + } +} + +/** + * Migrate Site Title & Site Tagline options to new responsive array. + * + * @since 3.5.0 + * + * @return void + */ +function astra_site_title_tagline_responsive_control_migration() { + + $theme_options = get_option( 'astra-settings', array() ); + + if ( false === get_option( 'display-site-title-responsive', false ) && isset( $theme_options['display-site-title'] ) ) { + $theme_options['display-site-title-responsive']['desktop'] = $theme_options['display-site-title']; + $theme_options['display-site-title-responsive']['tablet'] = $theme_options['display-site-title']; + $theme_options['display-site-title-responsive']['mobile'] = $theme_options['display-site-title']; + } + + if ( false === get_option( 'display-site-tagline-responsive', false ) && isset( $theme_options['display-site-tagline'] ) ) { + $theme_options['display-site-tagline-responsive']['desktop'] = $theme_options['display-site-tagline']; + $theme_options['display-site-tagline-responsive']['tablet'] = $theme_options['display-site-tagline']; + $theme_options['display-site-tagline-responsive']['mobile'] = $theme_options['display-site-tagline']; + } + + update_option( 'astra-settings', $theme_options ); +} + +/** + * Do not apply new font-weight heading support CSS in editor/frontend directly. + * + * 1. Adding Font-weight support to widget titles. + * 2. Customizer font CSS not supporting in editor. + * + * @since 3.6.0 + * + * @return void + */ +function astra_headings_font_support() { + $theme_options = get_option( 'astra-settings', array() ); + + if ( ! isset( $theme_options['can-support-widget-and-editor-fonts'] ) ) { + $theme_options['can-support-widget-and-editor-fonts'] = false; + update_option( 'astra-settings', $theme_options ); + } +} + +/** + * Set flag to avoid direct reflections on live site & to maintain backward compatibility for existing users. + * + * @since 3.6.0 + * @return void. + */ +function astra_remove_logo_max_width() { + $theme_options = get_option( 'astra-settings', array() ); + + if ( ! isset( $theme_options['can-remove-logo-max-width-css'] ) ) { + $theme_options['can-remove-logo-max-width-css'] = false; + update_option( 'astra-settings', $theme_options ); + } +} + +/** + * Set flag to maintain backward compatibility for existing users for Transparent Header border bottom default value i.e from '' to 0. + * + * @since 3.6.0 + * @return void. + */ +function astra_transparent_header_default_value() { + $theme_options = get_option( 'astra-settings', array() ); + + if ( ! isset( $theme_options['transparent-header-default-border'] ) ) { + $theme_options['transparent-header-default-border'] = false; + update_option( 'astra-settings', $theme_options ); + } +} + +/** + * Clear Astra + Astra Pro assets cache. + * + * @since 3.6.1 + * @return void. + */ +function astra_clear_all_assets_cache() { + if ( class_exists( 'Astra_Cache_Base' ) ) { + // Clear Astra theme cache. + $astra_cache_base_instance = new Astra_Cache_Base( 'astra' ); + $astra_cache_base_instance->refresh_assets( 'astra' ); + + // Clear Astra Addon's cache. + $astra_addon_cache_base_instance = new Astra_Cache_Base( 'astra-addon' ); + $astra_addon_cache_base_instance->refresh_assets( 'astra-addon' ); + } +} + +/** + * Set flag for updated default values for buttons & add GB Buttons padding support. + * + * @since 3.6.3 + * @return void. + */ +function astra_button_default_values_updated() { + $theme_options = get_option( 'astra-settings', array() ); + + if ( ! isset( $theme_options['btn-default-padding-updated'] ) ) { + $theme_options['btn-default-padding-updated'] = false; + update_option( 'astra-settings', $theme_options ); + } +} + +/** + * Set flag for old users, to not directly apply underline to content links. + * + * @since 3.6.4 + * @return void. + */ +function astra_update_underline_link_setting() { + $theme_options = get_option( 'astra-settings', array() ); + + if ( ! isset( $theme_options['underline-content-links'] ) ) { + $theme_options['underline-content-links'] = false; + update_option( 'astra-settings', $theme_options ); + } +} + +/** + * Add compatibility support for WP-5.8. as some of settings & blocks already their in WP-5.7 versions, that's why added backward here. + * + * @since 3.6.5 + * @return void + */ +function astra_support_block_editor() { + $theme_options = get_option( 'astra-settings' ); + + // Set flag on existing user's site to not reflect changes directly. + if ( ! isset( $theme_options['support-block-editor'] ) ) { + $theme_options['support-block-editor'] = false; + update_option( 'astra-settings', $theme_options ); + } +} diff --git a/inc/theme-update/class-astra-pb-compatibility.php b/inc/theme-update/class-astra-pb-compatibility.php index 1b707d5..b2df80f 100644 --- a/inc/theme-update/class-astra-pb-compatibility.php +++ b/inc/theme-update/class-astra-pb-compatibility.php @@ -1,186 +1,186 @@ -update_meta_values( $current_post_id ); - } - } - - // get all post types. - $all_post_type = get_post_types( - array( - 'public' => true, - ) - ); - unset( $all_post_type['attachment'] ); - - // wp_query array. - $query = array( - 'post_type' => $all_post_type, - 'posts_per_page' => '30', - 'no_found_rows' => true, - 'post_status' => 'any', - 'offset' => $offset_comp, - 'date_query' => array( - array( - 'before' => $comp_time, - 'inclusive' => true, - ), - ), - 'fields' => 'ids', - ); - - // exicute wp_query. - $posts = new WP_Query( $query ); - - $continue = false; - foreach ( $posts->posts as $id ) { - $this->update_meta_values( $id ); - $continue = true; - } - - if ( $continue ) { - $offset_comp += 30; - update_option( '_astra_pb_compatibility_offset', $offset_comp ); - } else { - delete_option( '_astra_pb_compatibility_offset' ); - delete_option( '_astra_pb_compatibility_time' ); - astra_update_option( '_astra_pb_compatibility_completed', true ); - } - } - - /** - * Update meta values - * - * @since 1.0.13 - * @param int $id Post id. - * @return void - */ - public function update_meta_values( $id ) { - - $layout_flag = get_post_meta( $id, '_astra_content_layout_flag', true ); - if ( empty( $layout_flag ) ) { - $site_content = get_post_meta( $id, 'site-content-layout', true ); - - if ( 'default' == $site_content ) { - $post_type = get_post_type( $id ); - if ( 'page' == $post_type ) { - $site_content = astra_get_option( 'single-page-content-layout', '' ); - } elseif ( 'post' == $post_type ) { - $site_content = astra_get_option( 'single-post-content-layout', '' ); - } - - if ( 'default' == $site_content ) { - $site_content = astra_get_option( 'site-content-layout', '' ); - } - } - - $elementor = get_post_meta( $id, '_elementor_edit_mode', true ); - $vc = get_post_meta( $id, '_wpb_vc_js_status', true ); - if ( 'page-builder' === $site_content ) { - update_post_meta( $id, '_astra_content_layout_flag', 'disabled' ); - update_post_meta( $id, 'site-post-title', 'disabled' ); - update_post_meta( $id, 'ast-title-bar-display', 'disabled' ); - update_post_meta( $id, 'site-sidebar-layout', 'no-sidebar' ); - } elseif ( 'builder' === $elementor || true === $vc || 'true' === $vc ) { - update_post_meta( $id, '_astra_content_layout_flag', 'disabled' ); - } - } - } - } -} - - - -/** - * Kicking this off by calling 'get_instance()' method - */ -Astra_PB_Compatibility::get_instance(); +update_meta_values( $current_post_id ); + } + } + + // get all post types. + $all_post_type = get_post_types( + array( + 'public' => true, + ) + ); + unset( $all_post_type['attachment'] ); + + // wp_query array. + $query = array( + 'post_type' => $all_post_type, + 'posts_per_page' => '30', + 'no_found_rows' => true, + 'post_status' => 'any', + 'offset' => $offset_comp, + 'date_query' => array( + array( + 'before' => $comp_time, + 'inclusive' => true, + ), + ), + 'fields' => 'ids', + ); + + // exicute wp_query. + $posts = new WP_Query( $query ); + + $continue = false; + foreach ( $posts->posts as $id ) { + $this->update_meta_values( $id ); + $continue = true; + } + + if ( $continue ) { + $offset_comp += 30; + update_option( '_astra_pb_compatibility_offset', $offset_comp ); + } else { + delete_option( '_astra_pb_compatibility_offset' ); + delete_option( '_astra_pb_compatibility_time' ); + astra_update_option( '_astra_pb_compatibility_completed', true ); + } + } + + /** + * Update meta values + * + * @since 1.0.13 + * @param int $id Post id. + * @return void + */ + public function update_meta_values( $id ) { + + $layout_flag = get_post_meta( $id, '_astra_content_layout_flag', true ); + if ( empty( $layout_flag ) ) { + $site_content = get_post_meta( $id, 'site-content-layout', true ); + + if ( 'default' == $site_content ) { + $post_type = get_post_type( $id ); + if ( 'page' == $post_type ) { + $site_content = astra_get_option( 'single-page-content-layout', '' ); + } elseif ( 'post' == $post_type ) { + $site_content = astra_get_option( 'single-post-content-layout', '' ); + } + + if ( 'default' == $site_content ) { + $site_content = astra_get_option( 'site-content-layout', '' ); + } + } + + $elementor = get_post_meta( $id, '_elementor_edit_mode', true ); + $vc = get_post_meta( $id, '_wpb_vc_js_status', true ); + if ( 'page-builder' === $site_content ) { + update_post_meta( $id, '_astra_content_layout_flag', 'disabled' ); + update_post_meta( $id, 'site-post-title', 'disabled' ); + update_post_meta( $id, 'ast-title-bar-display', 'disabled' ); + update_post_meta( $id, 'site-sidebar-layout', 'no-sidebar' ); + } elseif ( 'builder' === $elementor || true === $vc || 'true' === $vc ) { + update_post_meta( $id, '_astra_content_layout_flag', 'disabled' ); + } + } + } + } +} + + + +/** + * Kicking this off by calling 'get_instance()' method + */ +Astra_PB_Compatibility::get_instance(); diff --git a/inc/theme-update/class-astra-theme-background-updater.php b/inc/theme-update/class-astra-theme-background-updater.php index 82f69e2..a9d1792 100644 --- a/inc/theme-update/class-astra-theme-background-updater.php +++ b/inc/theme-update/class-astra-theme-background-updater.php @@ -1,400 +1,400 @@ - array( - 'astra_submenu_below_header', - ), - '2.2.0' => array( - 'astra_page_builder_button_color_compatibility', - 'astra_vertical_horizontal_padding_migration', - ), - '2.3.0' => array( - 'astra_header_button_new_options', - ), - '2.3.3' => array( - 'astra_elementor_default_color_typo_comp', - ), - '2.3.4' => array( - 'astra_breadcrumb_separator_fix', - ), - '2.4.0' => array( - 'astra_responsive_base_background_option', - 'astra_update_theme_tablet_breakpoint', - ), - '2.4.4' => array( - 'astra_gtn_full_wide_image_group_css', - ), - '2.5.0' => array( - 'astra_global_button_woo_css', - 'astra_gtn_full_wide_group_cover_css', - ), - '2.5.2' => array( - 'astra_footer_widget_bg', - ), - '2.6.0' => array( - 'astra_bg_control_migration', - 'astra_bg_responsive_control_migration', - 'astra_gutenberg_core_blocks_design_compatibility', - ), - '2.6.1' => array( - 'astra_gutenberg_media_text_block_css_compatibility', - ), - '3.0.0' => array( - 'astra_header_builder_compatibility', - ), - '3.0.1' => array( - 'astra_clear_assets_cache', - ), - '3.3.0' => array( - 'astra_gutenberg_pattern_compatibility', - 'astra_icons_svg_compatibility', - 'astra_check_flex_based_css', - ), - '3.4.0' => array( - 'astra_update_cart_style', - ), - '3.5.0' => array( - 'astra_update_related_posts_grid_layout', - 'astra_site_title_tagline_responsive_control_migration', - ), - '3.6.0' => array( - 'astra_headings_font_support', - 'astra_remove_logo_max_width', - 'astra_transparent_header_default_value', - ), - '3.6.1' => array( - 'astra_clear_all_assets_cache', - ), - '3.6.3' => array( - 'astra_button_default_values_updated', - 'astra_clear_all_assets_cache', - ), - '3.6.4' => array( - 'astra_update_underline_link_setting', - ), - '3.6.5' => array( - 'astra_support_block_editor', - ), - ); - - /** - * Constructor - */ - public function __construct() { - - // Theme Updates. - if ( is_admin() ) { - add_action( 'admin_init', array( $this, 'install_actions' ) ); - } else { - add_action( 'wp', array( $this, 'install_actions' ) ); - } - - // Core Helpers - Batch Processing. - require_once ASTRA_THEME_DIR . 'inc/lib/batch-processing/class-astra-wp-async-request.php';// phpcs:ignore: WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound - require_once ASTRA_THEME_DIR . 'inc/lib/batch-processing/class-astra-wp-background-process.php';// phpcs:ignore: WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound - require_once ASTRA_THEME_DIR . 'inc/theme-update/class-astra-theme-wp-background-process.php';// phpcs:ignore: WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound - - self::$background_updater = new Astra_Theme_WP_Background_Process(); - - } - - /** - * Check Cron Status - * - * Gets the current cron status by performing a test spawn. Cached for one hour when all is well. - * - * @since 2.3.0 - * - * @return true if there is a problem spawning a call to Wp-Cron system. - */ - public function test_cron() { - - global $wp_version; - - if ( defined( 'DISABLE_WP_CRON' ) && DISABLE_WP_CRON ) { - return true; - } - - if ( defined( 'ALTERNATE_WP_CRON' ) && ALTERNATE_WP_CRON ) { - return true; - } - - $cached_status = get_transient( 'astra-theme-cron-test-ok' ); - - if ( $cached_status ) { - return false; - } - - $sslverify = version_compare( $wp_version, 4.0, '<' ); - $doing_wp_cron = sprintf( '%.22F', microtime( true ) ); - - $cron_request = apply_filters( - 'cron_request', - array( - 'url' => site_url( 'wp-cron.php?doing_wp_cron=' . $doing_wp_cron ), - 'args' => array( - 'timeout' => 3, - 'blocking' => true, - 'sslverify' => apply_filters( 'https_local_ssl_verify', $sslverify ), - ), - ) - ); - - $result = wp_remote_post( $cron_request['url'], $cron_request['args'] ); - - if ( wp_remote_retrieve_response_code( $result ) >= 300 ) { - return true; - } else { - set_transient( 'astra-theme-cron-test-ok', 1, 3600 ); - return false; - } - - return $migration_fallback; - } - - /** - * Install actions when a update button is clicked within the admin area. - * - * This function is hooked into admin_init to affect admin and wp to affect the frontend. - */ - public function install_actions() { - - do_action( 'astra_update_initiated', self::$background_updater ); - - if ( true === $this->is_new_install() ) { - self::update_db_version(); - return; - } - - $fallback = $this->test_cron(); - $db_migrated = $this->check_if_data_migrated(); - - $is_queue_running = astra_get_option( 'is_theme_queue_running', false ); - - $fallback = ( $db_migrated ) ? $db_migrated : $fallback; - - if ( $this->needs_db_update() && ! $is_queue_running ) { - $this->update( $fallback ); - } else { - if ( ! $is_queue_running ) { - self::update_db_version(); - } - } - } - - /** - * Is this a brand new theme install? - * - * @since 2.1.3 - * @return boolean - */ - public function is_new_install() { - - // Get auto saved version number. - $saved_version = astra_get_option( 'theme-auto-version', false ); - - if ( false === $saved_version ) { - return true; - } - - return false; - } - - /** - * Is a DB update needed? - * - * @since 2.1.3 - * @return boolean - */ - private function needs_db_update() { - $current_theme_version = astra_get_option( 'theme-auto-version', null ); - $updates = $this->get_db_update_callbacks(); - - if ( empty( $updates ) ) { - return false; - } - - return ! is_null( $current_theme_version ) && version_compare( $current_theme_version, max( array_keys( $updates ) ), '<' ); - } - - /** - * Get list of DB update callbacks. - * - * @since 2.1.3 - * @return array - */ - public function get_db_update_callbacks() { - return self::$db_updates; - } - - /** - * Check if database is migrated - * - * @since 2.3.1 - * - * @return true If the database migration should not be run through CRON. - */ - public function check_if_data_migrated() { - - $fallback = false; - - $is_db_version_updated = $this->is_db_version_updated(); - if ( ! $is_db_version_updated ) { - - $db_migrated = get_transient( 'astra-theme-db-migrated' ); - - if ( ! $db_migrated ) { - $db_migrated = array(); - } - - array_push( $db_migrated, $is_db_version_updated ); - set_transient( 'astra-theme-db-migrated', $db_migrated, 3600 ); - - $db_migrate_count = count( $db_migrated ); - if ( $db_migrate_count >= 5 ) { - astra_delete_option( 'is_theme_queue_running' ); - $fallback = true; - } - } - return $fallback; - } - - /** - * Checks if astra addon version is updated in the database - * - * @since 2.3.1 - * - * @return true if astra addon version is updated. - */ - public function is_db_version_updated() { - // Get auto saved version number. - $saved_version = astra_get_option( 'theme-auto-version', false ); - - return version_compare( $saved_version, ASTRA_THEME_VERSION, '=' ); - } - - - /** - * Push all needed DB updates to the queue for processing. - * - * @param bool $fallback Fallback migration. - * - * @return void - */ - private function update( $fallback ) { - $current_db_version = astra_get_option( 'theme-auto-version' ); - - if ( count( $this->get_db_update_callbacks() ) > 0 ) { - foreach ( $this->get_db_update_callbacks() as $version => $update_callbacks ) { - if ( version_compare( $current_db_version, $version, '<' ) ) { - foreach ( $update_callbacks as $update_callback ) { - if ( $fallback ) { - call_user_func( $update_callback ); - } else { - self::$background_updater->push_to_queue( $update_callback ); - } - } - } - } - if ( $fallback ) { - self::update_db_version(); - } else { - astra_update_option( 'is_theme_queue_running', true ); - self::$background_updater->push_to_queue( 'update_db_version' ); - } - } else { - self::$background_updater->push_to_queue( 'update_db_version' ); - } - self::$background_updater->save()->dispatch(); - } - - /** - * Update DB version to current. - * - * @param string|null $version New Astra theme version or null. - */ - public static function update_db_version( $version = null ) { - - do_action( 'astra_theme_update_before' ); - - // Get auto saved version number. - $saved_version = astra_get_option( 'theme-auto-version', false ); - - if ( false === $saved_version ) { - - $saved_version = ASTRA_THEME_VERSION; - - // Update auto saved version number. - astra_update_option( 'theme-auto-version', ASTRA_THEME_VERSION ); - } - - // If equals then return. - if ( version_compare( $saved_version, ASTRA_THEME_VERSION, '=' ) ) { - do_action( 'astra_theme_update_after' ); - astra_update_option( 'is_theme_queue_running', false ); - return; - } - - // Not have stored? - if ( empty( $saved_version ) ) { - - // Get old version. - $theme_version = get_option( '_astra_auto_version', ASTRA_THEME_VERSION ); - - // Remove option. - delete_option( '_astra_auto_version' ); - - } else { - - // Get latest version. - $theme_version = ASTRA_THEME_VERSION; - } - - // Update auto saved version number. - astra_update_option( 'theme-auto-version', $theme_version ); - - astra_update_option( 'is_theme_queue_running', false ); - - // Update variables. - Astra_Theme_Options::refresh(); - - delete_transient( 'astra-addon-db-migrated' ); - - do_action( 'astra_theme_update_after' ); - } - } -} - - -/** - * Kicking this off by creating a new instance - */ -new Astra_Theme_Background_Updater(); + array( + 'astra_submenu_below_header', + ), + '2.2.0' => array( + 'astra_page_builder_button_color_compatibility', + 'astra_vertical_horizontal_padding_migration', + ), + '2.3.0' => array( + 'astra_header_button_new_options', + ), + '2.3.3' => array( + 'astra_elementor_default_color_typo_comp', + ), + '2.3.4' => array( + 'astra_breadcrumb_separator_fix', + ), + '2.4.0' => array( + 'astra_responsive_base_background_option', + 'astra_update_theme_tablet_breakpoint', + ), + '2.4.4' => array( + 'astra_gtn_full_wide_image_group_css', + ), + '2.5.0' => array( + 'astra_global_button_woo_css', + 'astra_gtn_full_wide_group_cover_css', + ), + '2.5.2' => array( + 'astra_footer_widget_bg', + ), + '2.6.0' => array( + 'astra_bg_control_migration', + 'astra_bg_responsive_control_migration', + 'astra_gutenberg_core_blocks_design_compatibility', + ), + '2.6.1' => array( + 'astra_gutenberg_media_text_block_css_compatibility', + ), + '3.0.0' => array( + 'astra_header_builder_compatibility', + ), + '3.0.1' => array( + 'astra_clear_assets_cache', + ), + '3.3.0' => array( + 'astra_gutenberg_pattern_compatibility', + 'astra_icons_svg_compatibility', + 'astra_check_flex_based_css', + ), + '3.4.0' => array( + 'astra_update_cart_style', + ), + '3.5.0' => array( + 'astra_update_related_posts_grid_layout', + 'astra_site_title_tagline_responsive_control_migration', + ), + '3.6.0' => array( + 'astra_headings_font_support', + 'astra_remove_logo_max_width', + 'astra_transparent_header_default_value', + ), + '3.6.1' => array( + 'astra_clear_all_assets_cache', + ), + '3.6.3' => array( + 'astra_button_default_values_updated', + 'astra_clear_all_assets_cache', + ), + '3.6.4' => array( + 'astra_update_underline_link_setting', + ), + '3.6.5' => array( + 'astra_support_block_editor', + ), + ); + + /** + * Constructor + */ + public function __construct() { + + // Theme Updates. + if ( is_admin() ) { + add_action( 'admin_init', array( $this, 'install_actions' ) ); + } else { + add_action( 'wp', array( $this, 'install_actions' ) ); + } + + // Core Helpers - Batch Processing. + require_once ASTRA_THEME_DIR . 'inc/lib/batch-processing/class-astra-wp-async-request.php';// phpcs:ignore: WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound + require_once ASTRA_THEME_DIR . 'inc/lib/batch-processing/class-astra-wp-background-process.php';// phpcs:ignore: WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound + require_once ASTRA_THEME_DIR . 'inc/theme-update/class-astra-theme-wp-background-process.php';// phpcs:ignore: WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound + + self::$background_updater = new Astra_Theme_WP_Background_Process(); + + } + + /** + * Check Cron Status + * + * Gets the current cron status by performing a test spawn. Cached for one hour when all is well. + * + * @since 2.3.0 + * + * @return true if there is a problem spawning a call to Wp-Cron system. + */ + public function test_cron() { + + global $wp_version; + + if ( defined( 'DISABLE_WP_CRON' ) && DISABLE_WP_CRON ) { + return true; + } + + if ( defined( 'ALTERNATE_WP_CRON' ) && ALTERNATE_WP_CRON ) { + return true; + } + + $cached_status = get_transient( 'astra-theme-cron-test-ok' ); + + if ( $cached_status ) { + return false; + } + + $sslverify = version_compare( $wp_version, 4.0, '<' ); + $doing_wp_cron = sprintf( '%.22F', microtime( true ) ); + + $cron_request = apply_filters( + 'cron_request', + array( + 'url' => site_url( 'wp-cron.php?doing_wp_cron=' . $doing_wp_cron ), + 'args' => array( + 'timeout' => 3, + 'blocking' => true, + 'sslverify' => apply_filters( 'https_local_ssl_verify', $sslverify ), + ), + ) + ); + + $result = wp_remote_post( $cron_request['url'], $cron_request['args'] ); + + if ( wp_remote_retrieve_response_code( $result ) >= 300 ) { + return true; + } else { + set_transient( 'astra-theme-cron-test-ok', 1, 3600 ); + return false; + } + + return $migration_fallback; + } + + /** + * Install actions when a update button is clicked within the admin area. + * + * This function is hooked into admin_init to affect admin and wp to affect the frontend. + */ + public function install_actions() { + + do_action( 'astra_update_initiated', self::$background_updater ); + + if ( true === $this->is_new_install() ) { + self::update_db_version(); + return; + } + + $fallback = $this->test_cron(); + $db_migrated = $this->check_if_data_migrated(); + + $is_queue_running = astra_get_option( 'is_theme_queue_running', false ); + + $fallback = ( $db_migrated ) ? $db_migrated : $fallback; + + if ( $this->needs_db_update() && ! $is_queue_running ) { + $this->update( $fallback ); + } else { + if ( ! $is_queue_running ) { + self::update_db_version(); + } + } + } + + /** + * Is this a brand new theme install? + * + * @since 2.1.3 + * @return boolean + */ + public function is_new_install() { + + // Get auto saved version number. + $saved_version = astra_get_option( 'theme-auto-version', false ); + + if ( false === $saved_version ) { + return true; + } + + return false; + } + + /** + * Is a DB update needed? + * + * @since 2.1.3 + * @return boolean + */ + private function needs_db_update() { + $current_theme_version = astra_get_option( 'theme-auto-version', null ); + $updates = $this->get_db_update_callbacks(); + + if ( empty( $updates ) ) { + return false; + } + + return ! is_null( $current_theme_version ) && version_compare( $current_theme_version, max( array_keys( $updates ) ), '<' ); + } + + /** + * Get list of DB update callbacks. + * + * @since 2.1.3 + * @return array + */ + public function get_db_update_callbacks() { + return self::$db_updates; + } + + /** + * Check if database is migrated + * + * @since 2.3.1 + * + * @return true If the database migration should not be run through CRON. + */ + public function check_if_data_migrated() { + + $fallback = false; + + $is_db_version_updated = $this->is_db_version_updated(); + if ( ! $is_db_version_updated ) { + + $db_migrated = get_transient( 'astra-theme-db-migrated' ); + + if ( ! $db_migrated ) { + $db_migrated = array(); + } + + array_push( $db_migrated, $is_db_version_updated ); + set_transient( 'astra-theme-db-migrated', $db_migrated, 3600 ); + + $db_migrate_count = count( $db_migrated ); + if ( $db_migrate_count >= 5 ) { + astra_delete_option( 'is_theme_queue_running' ); + $fallback = true; + } + } + return $fallback; + } + + /** + * Checks if astra addon version is updated in the database + * + * @since 2.3.1 + * + * @return true if astra addon version is updated. + */ + public function is_db_version_updated() { + // Get auto saved version number. + $saved_version = astra_get_option( 'theme-auto-version', false ); + + return version_compare( $saved_version, ASTRA_THEME_VERSION, '=' ); + } + + + /** + * Push all needed DB updates to the queue for processing. + * + * @param bool $fallback Fallback migration. + * + * @return void + */ + private function update( $fallback ) { + $current_db_version = astra_get_option( 'theme-auto-version' ); + + if ( count( $this->get_db_update_callbacks() ) > 0 ) { + foreach ( $this->get_db_update_callbacks() as $version => $update_callbacks ) { + if ( version_compare( $current_db_version, $version, '<' ) ) { + foreach ( $update_callbacks as $update_callback ) { + if ( $fallback ) { + call_user_func( $update_callback ); + } else { + self::$background_updater->push_to_queue( $update_callback ); + } + } + } + } + if ( $fallback ) { + self::update_db_version(); + } else { + astra_update_option( 'is_theme_queue_running', true ); + self::$background_updater->push_to_queue( 'update_db_version' ); + } + } else { + self::$background_updater->push_to_queue( 'update_db_version' ); + } + self::$background_updater->save()->dispatch(); + } + + /** + * Update DB version to current. + * + * @param string|null $version New Astra theme version or null. + */ + public static function update_db_version( $version = null ) { + + do_action( 'astra_theme_update_before' ); + + // Get auto saved version number. + $saved_version = astra_get_option( 'theme-auto-version', false ); + + if ( false === $saved_version ) { + + $saved_version = ASTRA_THEME_VERSION; + + // Update auto saved version number. + astra_update_option( 'theme-auto-version', ASTRA_THEME_VERSION ); + } + + // If equals then return. + if ( version_compare( $saved_version, ASTRA_THEME_VERSION, '=' ) ) { + do_action( 'astra_theme_update_after' ); + astra_update_option( 'is_theme_queue_running', false ); + return; + } + + // Not have stored? + if ( empty( $saved_version ) ) { + + // Get old version. + $theme_version = get_option( '_astra_auto_version', ASTRA_THEME_VERSION ); + + // Remove option. + delete_option( '_astra_auto_version' ); + + } else { + + // Get latest version. + $theme_version = ASTRA_THEME_VERSION; + } + + // Update auto saved version number. + astra_update_option( 'theme-auto-version', $theme_version ); + + astra_update_option( 'is_theme_queue_running', false ); + + // Update variables. + Astra_Theme_Options::refresh(); + + delete_transient( 'astra-addon-db-migrated' ); + + do_action( 'astra_theme_update_after' ); + } + } +} + + +/** + * Kicking this off by creating a new instance + */ +new Astra_Theme_Background_Updater(); diff --git a/inc/theme-update/class-astra-theme-update.php b/inc/theme-update/class-astra-theme-update.php index 88919b1..6369dbb 100644 --- a/inc/theme-update/class-astra-theme-update.php +++ b/inc/theme-update/class-astra-theme-update.php @@ -1,984 +1,984 @@ -' ) ) { - self::v_1_0_8(); - } - - // Update to older version than 1.0.12 version. - if ( version_compare( $saved_version, '1.0.12', '<' ) ) { - self::v_1_0_12(); - } - - // Update to older version than 1.0.14 version. - if ( version_compare( $saved_version, '1.0.14', '<' ) ) { - self::v_1_0_14(); - } - - // Update astra meta settings for Beaver Themer Backwards Compatibility. - if ( version_compare( $saved_version, '1.0.28', '<' ) ) { - self::v_1_0_28(); - } - - // Update astra meta settings for Beaver Themer Backwards Compatibility. - if ( version_compare( $saved_version, '1.1.0-beta.3', '<' ) ) { - self::v_1_1_0_beta_3(); - } - - // Update astra meta settings for Beaver Themer Backwards Compatibility. - if ( version_compare( $saved_version, '1.1.0-beta.4', '<' ) ) { - self::v_1_1_0_beta_4(); - } - - // Update astra meta settings for Beaver Themer Backwards Compatibility. - if ( version_compare( $saved_version, '1.2.2', '<' ) ) { - self::v_1_2_2(); - } - - // Update astra Theme colors values same as Link color. - if ( version_compare( $saved_version, '1.2.4', '<' ) ) { - self::v_1_2_4(); - } - - // Update astra Google Fonts values with fallback font. - if ( version_compare( $saved_version, '1.2.7', '<' ) ) { - self::v_1_2_7(); - } - - // Update astra background image data. - if ( version_compare( $saved_version, '1.3.0', '<' ) ) { - self::v_1_3_0(); - } - - // Update astra setting for inherit site logo compatibility. - if ( version_compare( $saved_version, '1.4.0-beta.3', '<' ) ) { - self::v_1_4_0_beta_3(); - } - - if ( version_compare( $saved_version, '1.4.0-beta.4', '<' ) ) { - self::v_1_4_0_beta_4(); - } - - if ( version_compare( $saved_version, '1.4.0-beta.5', '<' ) ) { - self::v_1_4_0_beta_5(); - } - - if ( version_compare( $saved_version, '1.4.3-alpha.1', '<' ) ) { - self::v_1_4_3_alpha_1(); - } - - if ( version_compare( $saved_version, '1.4.9', '<' ) ) { - self::v_1_4_9(); - } - - if ( version_compare( $saved_version, '1.5.0-beta.4', '<' ) ) { - self::v_1_5_0_beta_4(); - } - - if ( version_compare( $saved_version, '1.5.0-rc.1', '<' ) ) { - self::v_1_5_0_rc_1(); - } - - if ( version_compare( $saved_version, '1.5.0', '<' ) ) { - self::v_1_5_0_rc_3(); - } - - if ( version_compare( $saved_version, '1.5.1', '<' ) ) { - self::v_1_5_1(); - } - - if ( version_compare( $saved_version, '1.5.2', '<' ) ) { - self::v_1_5_2(); - } - - if ( version_compare( $saved_version, '1.6.0', '<' ) ) { - self::v_1_6_0(); - } - - if ( version_compare( $saved_version, '1.6.1-alpha.3', '<' ) ) { - self::v_1_6_1(); - } - if ( version_compare( $saved_version, '2.0.0', '<' ) ) { - self::v_2_0_0(); - } - } - - /** - * Footer Widgets compatibilty for astra pro. - */ - public static function astra_pro_compatibility() { - - if ( defined( 'ASTRA_EXT_VER' ) && version_compare( ASTRA_EXT_VER, '1.0.0-beta.6', '<' ) ) { - remove_action( 'astra_footer_content', 'astra_advanced_footer_markup', 1 ); - } - } - - /** - * Update options of older version than 1.0.4. - * - * @since 1.0.4 - */ - public static function v_1_0_4() { - - $options = array( - 'font-size-body', - 'body-line-height', - 'font-size-site-title', - 'font-size-site-tagline', - 'font-size-entry-title', - 'font-size-page-title', - 'font-size-h1', - 'font-size-h2', - 'font-size-h3', - 'font-size-h4', - 'font-size-h5', - 'font-size-h6', - - // Addon Options. - 'footer-adv-wgt-title-font-size', - 'footer-adv-wgt-title-line-height', - 'footer-adv-wgt-content-font-size', - 'footer-adv-wgt-content-line-height', - 'above-header-font-size', - 'font-size-below-header-primary-menu', - 'font-size-below-header-dropdown-menu', - 'font-size-below-header-content', - 'font-size-related-post', - 'line-height-related-post', - 'title-bar-title-font-size', - 'title-bar-title-line-height', - 'title-bar-breadcrumb-font-size', - 'title-bar-breadcrumb-line-height', - 'line-height-page-title', - 'font-size-post-meta', - 'line-height-post-meta', - 'font-size-post-pagination', - 'line-height-h1', - 'line-height-h2', - 'line-height-h3', - 'line-height-h4', - 'line-height-h5', - 'line-height-h6', - 'font-size-footer-content', - 'line-height-footer-content', - 'line-height-site-title', - 'line-height-site-tagline', - 'font-size-primary-menu', - 'line-height-primary-menu', - 'font-size-primary-dropdown-menu', - 'line-height-primary-dropdown-menu', - 'font-size-widget-title', - 'line-height-widget-title', - 'font-size-widget-content', - 'line-height-widget-content', - 'line-height-entry-title', - ); - - $astra_options = get_option( 'ast-settings', array() ); - - if ( 0 < count( $astra_options ) ) { - foreach ( $options as $key ) { - - if ( array_key_exists( $key, $astra_options ) && ! is_array( $astra_options[ $key ] ) ) { - - $astra_options[ $key ] = array( - 'desktop' => $astra_options[ $key ], - 'tablet' => '', - 'mobile' => '', - 'desktop-unit' => 'px', - 'tablet-unit' => 'px', - 'mobile-unit' => 'px', - ); - } - } - } - - update_option( 'ast-settings', $astra_options ); - } - - /** - * Update options of older version than 1.0.5. - * - * @since 1.0.5 - */ - public static function v_1_0_5() { - - $astra_old_options = get_option( 'ast-settings', array() ); - $astra_new_options = get_option( ASTRA_THEME_SETTINGS, array() ); - - // Merge old customizer options in new option. - $astra_options = wp_parse_args( $astra_new_options, $astra_old_options ); - - // Update option. - update_option( ASTRA_THEME_SETTINGS, $astra_options ); - - // Delete old option. - delete_option( 'ast-settings' ); - } - - /** - * Update options of older version than 1.0.8. - * - * @since 1.0.8 - */ - public static function v_1_0_8() { - - $options = array( - 'body-line-height', - - // Addon Options. - 'footer-adv-wgt-title-line-height', - 'footer-adv-wgt-content-line-height', - 'line-height-related-post', - 'title-bar-title-line-height', - 'title-bar-breadcrumb-line-height', - 'line-height-page-title', - 'line-height-post-meta', - 'line-height-h1', - 'line-height-h2', - 'line-height-h3', - 'line-height-h4', - 'line-height-h5', - 'line-height-h6', - 'line-height-footer-content', - 'line-height-site-title', - 'line-height-site-tagline', - 'line-height-primary-menu', - 'line-height-primary-dropdown-menu', - 'line-height-widget-title', - 'line-height-widget-content', - 'line-height-entry-title', - ); - - $astra_options = get_option( ASTRA_THEME_SETTINGS, array() ); - - if ( 0 < count( $astra_options ) ) { - foreach ( $options as $key ) { - - if ( array_key_exists( $key, $astra_options ) && is_array( $astra_options[ $key ] ) ) { - - if ( in_array( $astra_options[ $key ]['desktop-unit'], array( '', 'em' ) ) ) { - $astra_options[ $key ] = $astra_options[ $key ]['desktop']; - } else { - $astra_options[ $key ] = ''; - } - } - } - } - - update_option( ASTRA_THEME_SETTINGS, $astra_options ); - } - - /** - * Update options of older version than 1.0.12. - * - * @since 1.0.12 - */ - public static function v_1_0_12() { - - $options = array( - 'site-content-layout' => 'plain-container', - 'single-page-content-layout' => 'plain-container', - 'single-post-content-layout' => 'content-boxed-container', - 'archive-post-content-layout' => 'content-boxed-container', - ); - - $astra_options = get_option( ASTRA_THEME_SETTINGS, array() ); - - foreach ( $options as $key => $value ) { - if ( ! isset( $astra_options[ $key ] ) ) { - $astra_options[ $key ] = $value; - } - } - - update_option( ASTRA_THEME_SETTINGS, $astra_options ); - } - - /** - * Update options of older version than 1.0.14. - * - * @since 1.0.14 - * @return void - */ - public static function v_1_0_14() { - - $options = array( - 'footer-sml-divider' => '4', - 'footer-sml-divider-color' => '#fff', - 'footer-adv' => 'layout-4', - 'single-page-sidebar-layout' => 'no-sidebar', - 'single-post-sidebar-layout' => 'right-sidebar', - 'archive-post-sidebar-layout' => 'right-sidebar', - ); - - $astra_options = get_option( ASTRA_THEME_SETTINGS, array() ); - - foreach ( $options as $key => $value ) { - if ( ! isset( $astra_options[ $key ] ) ) { - $astra_options[ $key ] = $value; - } - } - - update_option( ASTRA_THEME_SETTINGS, $astra_options ); - - update_option( '_astra_pb_compatibility_offset', 1 ); - update_option( '_astra_pb_compatibility_time', gmdate( 'Y-m-d H:i:s' ) ); - } - - /** - * Update page meta settings for all the themer layouts which are not already set. - * Default settings to previous versions was `no-sidebar` and `page-builder` through filters. - * - * @since 1.0.28 - * @return void - */ - public static function v_1_0_28() { - - $query = array( - 'post_type' => 'fl-theme-layout', - 'no_found_rows' => true, - 'post_status' => 'any', - 'fields' => 'ids', - ); - - // Execute the query. - $posts = new WP_Query( $query ); - - foreach ( $posts->posts as $id ) { - - $sidebar = get_post_meta( $id, 'site-sidebar-layout', true ); - - if ( '' == $sidebar ) { - update_post_meta( $id, 'site-sidebar-layout', 'no-sidebar' ); - } - - $content_layout = get_post_meta( $id, 'site-content-layout', true ); - - if ( '' == $content_layout ) { - update_post_meta( $id, 'site-content-layout', 'page-builder' ); - } - } - - } - - /** - * Update options of older version than 1.1.0-beta.3. - * - * @since 1.1.0-beta.3 - */ - public static function v_1_1_0_beta_3() { - - $astra_options = get_option( ASTRA_THEME_SETTINGS, array() ); - - if ( isset( $astra_options['shop-grid'] ) ) { - - $astra_options['shop-grids'] = array( - 'desktop' => $astra_options['shop-grid'], - 'tablet' => 2, - 'mobile' => 1, - ); - - unset( $astra_options['shop-grid'] ); - } - - update_option( ASTRA_THEME_SETTINGS, $astra_options ); - } - - /** - * Update options of older version than 1.1.0-beta.3. - * - * Container Style - * Sidebar - * Grid - * - * @since 1.1.0-beta.3 - */ - public static function v_1_1_0_beta_4() { - - $options = array( - 'woocommerce-content-layout' => 'default', - 'woocommerce-sidebar-layout' => 'default', - /* Shop */ - 'shop-grids' => array( - 'desktop' => 3, - 'tablet' => 2, - 'mobile' => 1, - ), - 'shop-no-of-products' => '9', - ); - - $astra_options = get_option( ASTRA_THEME_SETTINGS, array() ); - - foreach ( $options as $key => $value ) { - if ( ! isset( $astra_options[ $key ] ) ) { - $astra_options[ $key ] = $value; - } - } - - update_option( ASTRA_THEME_SETTINGS, $astra_options ); - } - - /** - * Update options of older version than 1.2.2. - * - * Logo Width - * - * @since 1.2.2 - */ - public static function v_1_2_2() { - - $astra_options = get_option( ASTRA_THEME_SETTINGS, array() ); - - if ( isset( $astra_options['ast-header-logo-width'] ) && ! is_array( $astra_options['ast-header-logo-width'] ) ) { - $astra_options['ast-header-responsive-logo-width'] = array( - 'desktop' => $astra_options['ast-header-logo-width'], - 'tablet' => '', - 'mobile' => '', - ); - } - - if ( isset( $astra_options['blog-width'] ) ) { - $astra_options['shop-archive-width'] = $astra_options['blog-width']; - } - - if ( isset( $astra_options['blog-max-width'] ) ) { - $astra_options['shop-archive-max-width'] = $astra_options['blog-max-width']; - } - - update_option( ASTRA_THEME_SETTINGS, $astra_options ); - } - - /** - * Update Theme Color value same as Link Color for older version than 1.2.4. - * - * Theme Color update - * - * @since 1.2.4 - */ - public static function v_1_2_4() { - - $astra_options = get_option( ASTRA_THEME_SETTINGS, array() ); - - if ( isset( $astra_options['link-color'] ) ) { - $astra_options['theme-color'] = $astra_options['link-color']; - } - - update_option( ASTRA_THEME_SETTINGS, $astra_options ); - } - - /** - * Update Google Fonts value with font categories - * - * Google Font Update - * - * @since 1.2.7 - */ - public static function v_1_2_7() { - - $astra_options = get_option( ASTRA_THEME_SETTINGS, array() ); - $google_fonts = Astra_Font_Families::get_google_fonts(); - - foreach ( $astra_options as $key => $value ) { - - if ( ! is_array( $value ) && ! empty( $value ) && ! is_bool( $value ) ) { - - if ( array_key_exists( $value, $google_fonts ) ) { - $astra_options[ $key ] = "'" . $value . "', " . $google_fonts[ $value ][1]; - } - } - } - - update_option( ASTRA_THEME_SETTINGS, $astra_options ); - } - - /** - * Update options of older version than 1.3.0. - * - * Background options - * - * @since 1.3.0 - */ - public static function v_1_3_0() { - $astra_options = get_option( ASTRA_THEME_SETTINGS, array() ); - - $astra_options['header-bg-obj'] = array( - 'background-color' => isset( $astra_options['header-bg-color'] ) ? $astra_options['header-bg-color'] : '', - ); - - $astra_options['content-bg-obj'] = array( - 'background-color' => isset( $astra_options['content-bg-color'] ) ? $astra_options['content-bg-color'] : '#ffffff', - ); - - $astra_options['footer-adv-bg-obj'] = array( - 'background-color' => isset( $astra_options['footer-adv-bg-color'] ) ? $astra_options['footer-adv-bg-color'] : '', - 'background-image' => isset( $astra_options['footer-adv-bg-img'] ) ? $astra_options['footer-adv-bg-img'] : '', - 'background-repeat' => isset( $astra_options['footer-adv-bg-repeat'] ) ? $astra_options['footer-adv-bg-repeat'] : 'no-repeat', - 'background-position' => isset( $astra_options['footer-adv-bg-pos'] ) ? $astra_options['footer-adv-bg-pos'] : 'center center', - 'background-size' => isset( $astra_options['footer-adv-bg-size'] ) ? $astra_options['footer-adv-bg-size'] : 'cover', - 'background-attachment' => isset( $astra_options['footer-adv-bg-attac'] ) ? $astra_options['footer-adv-bg-attac'] : 'scroll', - ); - - $astra_options['footer-bg-obj'] = array( - 'background-color' => isset( $astra_options['footer-bg-color'] ) ? $astra_options['footer-bg-color'] : '', - 'background-image' => isset( $astra_options['footer-bg-img'] ) ? $astra_options['footer-bg-img'] : '', - 'background-repeat' => isset( $astra_options['footer-bg-rep'] ) ? $astra_options['footer-bg-rep'] : 'repeat', - 'background-position' => isset( $astra_options['footer-bg-pos'] ) ? $astra_options['footer-bg-pos'] : 'center center', - 'background-size' => isset( $astra_options['footer-bg-size'] ) ? $astra_options['footer-bg-size'] : 'auto', - 'background-attachment' => isset( $astra_options['footer-bg-atch'] ) ? $astra_options['footer-bg-atch'] : 'scroll', - ); - - // Site layout background image and color. - $site_layout = isset( $astra_options['site-layout'] ) ? $astra_options['site-layout'] : ''; - switch ( $site_layout ) { - case 'ast-box-layout': - $astra_options['site-layout-outside-bg-obj'] = array( - 'background-color' => isset( $astra_options['site-layout-outside-bg-color'] ) ? $astra_options['site-layout-outside-bg-color'] : '', - 'background-image' => isset( $astra_options['site-layout-box-bg-img'] ) ? $astra_options['site-layout-box-bg-img'] : '', - 'background-repeat' => isset( $astra_options['site-layout-box-bg-rep'] ) ? $astra_options['site-layout-box-bg-rep'] : 'no-repeat', - 'background-position' => isset( $astra_options['site-layout-box-bg-pos'] ) ? $astra_options['site-layout-box-bg-pos'] : 'center center', - 'background-size' => isset( $astra_options['site-layout-box-bg-size'] ) ? $astra_options['site-layout-box-bg-size'] : 'cover', - 'background-attachment' => isset( $astra_options['site-layout-box-bg-atch'] ) ? $astra_options['site-layout-box-bg-atch'] : 'scroll', - ); - break; - - case 'ast-padded-layout': - $bg_color = isset( $astra_options['site-layout-outside-bg-color'] ) ? $astra_options['site-layout-outside-bg-color'] : ''; - $bg_image = isset( $astra_options['site-layout-padded-bg-img'] ) ? $astra_options['site-layout-padded-bg-img'] : ''; - - $astra_options['site-layout-outside-bg-obj'] = array( - 'background-color' => empty( $bg_image ) ? $bg_color : '', - 'background-image' => $bg_image, - 'background-repeat' => isset( $astra_options['site-layout-padded-bg-rep'] ) ? $astra_options['site-layout-padded-bg-rep'] : 'no-repeat', - 'background-position' => isset( $astra_options['site-layout-padded-bg-pos'] ) ? $astra_options['site-layout-padded-bg-pos'] : 'center center', - 'background-size' => isset( $astra_options['site-layout-padded-bg-size'] ) ? $astra_options['site-layout-padded-bg-size'] : 'cover', - 'background-attachment' => '', - ); - break; - - case 'ast-full-width-layout': - case 'ast-fluid-width-layout': - default: - $astra_options['site-layout-outside-bg-obj'] = array( - 'background-color' => isset( $astra_options['site-layout-outside-bg-color'] ) ? $astra_options['site-layout-outside-bg-color'] : '', - ); - break; - } - - update_option( ASTRA_THEME_SETTINGS, $astra_options ); - } - - /** - * Mobile Header - Border new param introduced for Top, Right, Bottom and left border. - * Update options of older version than 1.4.0-beta.3. - * - * @since 1.4.0-beta.3 - */ - public static function v_1_4_0_beta_3() { - - $theme_options = get_option( 'astra-settings' ); - $mobile_logo_width = astra_get_option( 'mobile-header-logo-width' ); - - if ( '' != $mobile_logo_width ) { - $theme_options['ast-header-responsive-logo-width']['tablet'] = $mobile_logo_width; - } - - $mobile_logo = ( isset( $theme_options['mobile-header-logo'] ) && '' !== $theme_options['mobile-header-logo'] ) ? $theme_options['mobile-header-logo'] : false; - - if ( '' != $mobile_logo ) { - $theme_options['inherit-sticky-logo'] = false; - } - - update_option( 'astra-settings', $theme_options ); - } - - /** - * Introduced different logo for mobile devices option - * - * @since 1.4.0-beta.4 - */ - public static function v_1_4_0_beta_4() { - - $mobile_header_logo = astra_get_option( 'mobile-header-logo' ); - $theme_options = get_option( 'astra-settings' ); - - if ( '' != $mobile_header_logo ) { - $theme_options['different-mobile-logo'] = true; - } - - update_option( 'astra-settings', $theme_options ); - } - - /** - * Function to backward compatibility for version less than 1.4.0 - * - * @since 1.4.0-beta.5 - */ - public static function v_1_4_0_beta_5() { - - // Set default toggle button style. - $theme_options = get_option( 'astra-settings' ); - - if ( ! isset( $theme_options['mobile-header-toggle-btn-style'] ) ) { - $theme_options['mobile-header-toggle-btn-style'] = 'fill'; - } - - $theme_options['hide-custom-menu-mobile'] = 0; - - update_option( 'astra-settings', $theme_options ); - - } - - /** - * Function to backward compatibility for version less than 1.4.3 - * Set the new option different-retina-logo to true for users who are already using a retina logo. - * - * @since 1.4.3-aplha.1 - */ - public static function v_1_4_3_alpha_1() { - - $mobile_header_logo = astra_get_option( 'ast-header-retina-logo' ); - $theme_options = get_option( 'astra-settings' ); - - if ( '' != $mobile_header_logo ) { - $theme_options['different-retina-logo'] = '1'; - } - - update_option( 'astra-settings', $theme_options ); - } - - /** - * Manage backwards compatibility when migrating to v1.4.9 - * - * @since 1.4.9 - * @return void - */ - public static function v_1_4_9() { - $theme_options = get_option( 'astra-settings' ); - - // Set flag to use anchors CSS selectors in the CSS for headings. - if ( ! isset( $theme_options['include-headings-in-typography'] ) ) { - $theme_options['include-headings-in-typography'] = true; - update_option( 'astra-settings', $theme_options ); - } - } - - /** - * Added Submenu Border options into theme from Addon - * - * @since 1.5.0-beta.4 - * - * @return void - */ - public static function v_1_5_0_beta_4() { - - $border_disabled_values = array( - 'top' => '0', - 'bottom' => '0', - 'left' => '0', - 'right' => '0', - ); - $inside_border_disabled_values = array( - 'bottom' => '0', - ); - - $border_enabled_values = array( - 'top' => '1', - 'bottom' => '1', - 'left' => '1', - 'right' => '1', - ); - $inside_border_enabled_values = array( - 'bottom' => '1', - ); - - $theme_options = get_option( 'astra-settings' ); - $submenu_border = isset( $theme_options['primary-submenu-border'] ) ? $theme_options['primary-submenu-border'] : true; - - // Primary Header. - if ( $submenu_border ) { - $theme_options['primary-submenu-border'] = $border_enabled_values; - $theme_options['primary-submenu-item-border'] = $inside_border_enabled_values; - } else { - $theme_options['primary-submenu-border'] = $border_disabled_values; - $theme_options['primary-submenu-item-border'] = $inside_border_disabled_values; - } - - update_option( 'astra-settings', $theme_options ); - } - - /** - * Set flag 'submenu-below-header' to false to load fallback CSS to force menu load right after the container cropping logo and header. - * - * @see https://github.com/brainstormforce/astra/pull/820/ - * - * @return void - */ - public static function v_1_5_0_rc_1() { - $theme_options = get_option( 'astra-settings' ); - - // Set flag to use anchors CSS selectors in the CSS for headings. - if ( ! isset( $theme_options['submenu-below-header'] ) ) { - $theme_options['submenu-below-header'] = false; - update_option( 'astra-settings', $theme_options ); - } - } - - /** - * Set Primary Header submenu border color 'primary-submenu-b-color' to '#eaeaea' for old users who doesn't set any color and set the theme color who install the fresh 1.5.0-rc.3 theme. - * - * @see https://github.com/brainstormforce/astra/pull/835 - * - * @return void - */ - public static function v_1_5_0_rc_3() { - - $theme_options = get_option( 'astra-settings' ); - - // Set the default #eaeaea sub menu border color who doesn't set any color. - if ( ! isset( $theme_options['primary-submenu-b-color'] ) || empty( $theme_options['primary-submenu-b-color'] ) ) { - $theme_options['primary-submenu-b-color'] = '#eaeaea'; - } - - // Set the primary sub menu animation to default for existing user. - if ( ! isset( $theme_options['header-main-submenu-container-animation'] ) ) { - $theme_options['header-main-submenu-container-animation'] = ''; - } - - update_option( 'astra-settings', $theme_options ); - - } - - /** - * Change the Primary submenu option to be checkbpx rather than border selection. - * - * @return void - */ - public static function v_1_5_1() { - $theme_options = get_option( 'astra-settings', array() ); - $primary_submenu_otem_border = isset( $theme_options['primary-submenu-item-border'] ) ? $theme_options['primary-submenu-item-border'] : array(); - - if ( is_array( $primary_submenu_otem_border ) && '0' != $primary_submenu_otem_border['bottom'] ) { - $theme_options['primary-submenu-item-border'] = 1; - } else { - $theme_options['primary-submenu-item-border'] = 0; - } - if ( isset( $theme_options['primary-submenu-b-color'] ) && ! empty( $theme_options['primary-submenu-b-color'] ) ) { - $theme_options['primary-submenu-item-b-color'] = $theme_options['primary-submenu-b-color']; - } - - update_option( 'astra-settings', $theme_options ); - } - - /** - * Add same font variant as font weight for body and heading. - * - * @return void - */ - public static function v_1_5_2() { - $theme_options = get_option( 'astra-settings', array() ); - if ( isset( $theme_options['body-font-weight'] ) && is_numeric( $theme_options['body-font-weight'] ) ) { - $theme_options['body-font-variant'] = $theme_options['body-font-weight']; - } - if ( isset( $theme_options['headings-font-weight'] ) && is_numeric( $theme_options['headings-font-weight'] ) ) { - $theme_options['headings-font-variant'] = $theme_options['headings-font-weight']; - } - - update_option( 'astra-settings', $theme_options ); - } - - /** - * Disable transparent header in customizer if the transparent header addon was disabled. - * - * @return void - */ - public static function v_1_6_0() { - $theme_options = get_option( 'astra-settings', array() ); - - // Disable Transparent header is Transparent Header addon was deactivated from Astra Pro. - if ( is_callable( 'Astra_Ext_Extension::get_enabled_addons' ) ) { - $addons = Astra_Ext_Extension::get_enabled_addons(); - - // If transparent header is addon was disabled, disable the transparent header. - if ( 'transparent-header' !== $addons['transparent-header'] ) { - $theme_options['transparent-header-enable'] = 0; - } - } - - update_option( 'astra-settings', $theme_options ); - } - - /** - * Add backward compatibility for Heading tags previous default values. - * Set Inline Logo & Site Title as false if user had not changed its value. - * Change default value for blog archive blog title. - * - * @return void - */ - public static function v_1_6_1() { - $theme_options = get_option( 'astra-settings', array() ); - - // If user was using a default value for h1, Set the default in the option. - if ( ! isset( $theme_options['font-size-h1'] ) ) { - $theme_options['font-size-h1'] = array( - 'desktop' => '48', - 'tablet' => '', - 'mobile' => '', - 'desktop-unit' => 'px', - 'tablet-unit' => 'px', - 'mobile-unit' => 'px', - ); - } - // If user was using a default value for h2, Set the default in the option. - if ( ! isset( $theme_options['font-size-h2'] ) ) { - $theme_options['font-size-h2'] = array( - 'desktop' => '42', - 'tablet' => '', - 'mobile' => '', - 'desktop-unit' => 'px', - 'tablet-unit' => 'px', - 'mobile-unit' => 'px', - ); - } - // If user was using a default value for h3, Set the default in the option. - if ( ! isset( $theme_options['font-size-h3'] ) ) { - $theme_options['font-size-h3'] = array( - 'desktop' => '30', - 'tablet' => '', - 'mobile' => '', - 'desktop-unit' => 'px', - 'tablet-unit' => 'px', - 'mobile-unit' => 'px', - ); - } - - // If user was using a default value for h3, Set the default in the option. - if ( ! isset( $theme_options['font-size-page-title'] ) ) { - $theme_options['font-size-page-title'] = array( - 'desktop' => '30', - 'tablet' => '', - 'mobile' => '', - 'desktop-unit' => 'px', - 'tablet-unit' => 'px', - 'mobile-unit' => 'px', - ); - } - - // If inline-logo option was unset previously, set to to false as new default is `true`. - if ( ! isset( $theme_options['logo-title-inline'] ) ) { - $theme_options['logo-title-inline'] = 0; - } - - update_option( 'astra-settings', $theme_options ); - } - - /** - * Flush bundled products After udpating to version 2.0.0 - * - * @return void - */ - public static function v_2_0_0() { - update_site_option( 'bsf_force_check_extensions', true ); - } - } -} - -/** - * Kicking this off by calling 'get_instance()' method - */ -Astra_Theme_Update::get_instance(); +' ) ) { + self::v_1_0_8(); + } + + // Update to older version than 1.0.12 version. + if ( version_compare( $saved_version, '1.0.12', '<' ) ) { + self::v_1_0_12(); + } + + // Update to older version than 1.0.14 version. + if ( version_compare( $saved_version, '1.0.14', '<' ) ) { + self::v_1_0_14(); + } + + // Update astra meta settings for Beaver Themer Backwards Compatibility. + if ( version_compare( $saved_version, '1.0.28', '<' ) ) { + self::v_1_0_28(); + } + + // Update astra meta settings for Beaver Themer Backwards Compatibility. + if ( version_compare( $saved_version, '1.1.0-beta.3', '<' ) ) { + self::v_1_1_0_beta_3(); + } + + // Update astra meta settings for Beaver Themer Backwards Compatibility. + if ( version_compare( $saved_version, '1.1.0-beta.4', '<' ) ) { + self::v_1_1_0_beta_4(); + } + + // Update astra meta settings for Beaver Themer Backwards Compatibility. + if ( version_compare( $saved_version, '1.2.2', '<' ) ) { + self::v_1_2_2(); + } + + // Update astra Theme colors values same as Link color. + if ( version_compare( $saved_version, '1.2.4', '<' ) ) { + self::v_1_2_4(); + } + + // Update astra Google Fonts values with fallback font. + if ( version_compare( $saved_version, '1.2.7', '<' ) ) { + self::v_1_2_7(); + } + + // Update astra background image data. + if ( version_compare( $saved_version, '1.3.0', '<' ) ) { + self::v_1_3_0(); + } + + // Update astra setting for inherit site logo compatibility. + if ( version_compare( $saved_version, '1.4.0-beta.3', '<' ) ) { + self::v_1_4_0_beta_3(); + } + + if ( version_compare( $saved_version, '1.4.0-beta.4', '<' ) ) { + self::v_1_4_0_beta_4(); + } + + if ( version_compare( $saved_version, '1.4.0-beta.5', '<' ) ) { + self::v_1_4_0_beta_5(); + } + + if ( version_compare( $saved_version, '1.4.3-alpha.1', '<' ) ) { + self::v_1_4_3_alpha_1(); + } + + if ( version_compare( $saved_version, '1.4.9', '<' ) ) { + self::v_1_4_9(); + } + + if ( version_compare( $saved_version, '1.5.0-beta.4', '<' ) ) { + self::v_1_5_0_beta_4(); + } + + if ( version_compare( $saved_version, '1.5.0-rc.1', '<' ) ) { + self::v_1_5_0_rc_1(); + } + + if ( version_compare( $saved_version, '1.5.0', '<' ) ) { + self::v_1_5_0_rc_3(); + } + + if ( version_compare( $saved_version, '1.5.1', '<' ) ) { + self::v_1_5_1(); + } + + if ( version_compare( $saved_version, '1.5.2', '<' ) ) { + self::v_1_5_2(); + } + + if ( version_compare( $saved_version, '1.6.0', '<' ) ) { + self::v_1_6_0(); + } + + if ( version_compare( $saved_version, '1.6.1-alpha.3', '<' ) ) { + self::v_1_6_1(); + } + if ( version_compare( $saved_version, '2.0.0', '<' ) ) { + self::v_2_0_0(); + } + } + + /** + * Footer Widgets compatibilty for astra pro. + */ + public static function astra_pro_compatibility() { + + if ( defined( 'ASTRA_EXT_VER' ) && version_compare( ASTRA_EXT_VER, '1.0.0-beta.6', '<' ) ) { + remove_action( 'astra_footer_content', 'astra_advanced_footer_markup', 1 ); + } + } + + /** + * Update options of older version than 1.0.4. + * + * @since 1.0.4 + */ + public static function v_1_0_4() { + + $options = array( + 'font-size-body', + 'body-line-height', + 'font-size-site-title', + 'font-size-site-tagline', + 'font-size-entry-title', + 'font-size-page-title', + 'font-size-h1', + 'font-size-h2', + 'font-size-h3', + 'font-size-h4', + 'font-size-h5', + 'font-size-h6', + + // Addon Options. + 'footer-adv-wgt-title-font-size', + 'footer-adv-wgt-title-line-height', + 'footer-adv-wgt-content-font-size', + 'footer-adv-wgt-content-line-height', + 'above-header-font-size', + 'font-size-below-header-primary-menu', + 'font-size-below-header-dropdown-menu', + 'font-size-below-header-content', + 'font-size-related-post', + 'line-height-related-post', + 'title-bar-title-font-size', + 'title-bar-title-line-height', + 'title-bar-breadcrumb-font-size', + 'title-bar-breadcrumb-line-height', + 'line-height-page-title', + 'font-size-post-meta', + 'line-height-post-meta', + 'font-size-post-pagination', + 'line-height-h1', + 'line-height-h2', + 'line-height-h3', + 'line-height-h4', + 'line-height-h5', + 'line-height-h6', + 'font-size-footer-content', + 'line-height-footer-content', + 'line-height-site-title', + 'line-height-site-tagline', + 'font-size-primary-menu', + 'line-height-primary-menu', + 'font-size-primary-dropdown-menu', + 'line-height-primary-dropdown-menu', + 'font-size-widget-title', + 'line-height-widget-title', + 'font-size-widget-content', + 'line-height-widget-content', + 'line-height-entry-title', + ); + + $astra_options = get_option( 'ast-settings', array() ); + + if ( 0 < count( $astra_options ) ) { + foreach ( $options as $key ) { + + if ( array_key_exists( $key, $astra_options ) && ! is_array( $astra_options[ $key ] ) ) { + + $astra_options[ $key ] = array( + 'desktop' => $astra_options[ $key ], + 'tablet' => '', + 'mobile' => '', + 'desktop-unit' => 'px', + 'tablet-unit' => 'px', + 'mobile-unit' => 'px', + ); + } + } + } + + update_option( 'ast-settings', $astra_options ); + } + + /** + * Update options of older version than 1.0.5. + * + * @since 1.0.5 + */ + public static function v_1_0_5() { + + $astra_old_options = get_option( 'ast-settings', array() ); + $astra_new_options = get_option( ASTRA_THEME_SETTINGS, array() ); + + // Merge old customizer options in new option. + $astra_options = wp_parse_args( $astra_new_options, $astra_old_options ); + + // Update option. + update_option( ASTRA_THEME_SETTINGS, $astra_options ); + + // Delete old option. + delete_option( 'ast-settings' ); + } + + /** + * Update options of older version than 1.0.8. + * + * @since 1.0.8 + */ + public static function v_1_0_8() { + + $options = array( + 'body-line-height', + + // Addon Options. + 'footer-adv-wgt-title-line-height', + 'footer-adv-wgt-content-line-height', + 'line-height-related-post', + 'title-bar-title-line-height', + 'title-bar-breadcrumb-line-height', + 'line-height-page-title', + 'line-height-post-meta', + 'line-height-h1', + 'line-height-h2', + 'line-height-h3', + 'line-height-h4', + 'line-height-h5', + 'line-height-h6', + 'line-height-footer-content', + 'line-height-site-title', + 'line-height-site-tagline', + 'line-height-primary-menu', + 'line-height-primary-dropdown-menu', + 'line-height-widget-title', + 'line-height-widget-content', + 'line-height-entry-title', + ); + + $astra_options = get_option( ASTRA_THEME_SETTINGS, array() ); + + if ( 0 < count( $astra_options ) ) { + foreach ( $options as $key ) { + + if ( array_key_exists( $key, $astra_options ) && is_array( $astra_options[ $key ] ) ) { + + if ( in_array( $astra_options[ $key ]['desktop-unit'], array( '', 'em' ) ) ) { + $astra_options[ $key ] = $astra_options[ $key ]['desktop']; + } else { + $astra_options[ $key ] = ''; + } + } + } + } + + update_option( ASTRA_THEME_SETTINGS, $astra_options ); + } + + /** + * Update options of older version than 1.0.12. + * + * @since 1.0.12 + */ + public static function v_1_0_12() { + + $options = array( + 'site-content-layout' => 'plain-container', + 'single-page-content-layout' => 'plain-container', + 'single-post-content-layout' => 'content-boxed-container', + 'archive-post-content-layout' => 'content-boxed-container', + ); + + $astra_options = get_option( ASTRA_THEME_SETTINGS, array() ); + + foreach ( $options as $key => $value ) { + if ( ! isset( $astra_options[ $key ] ) ) { + $astra_options[ $key ] = $value; + } + } + + update_option( ASTRA_THEME_SETTINGS, $astra_options ); + } + + /** + * Update options of older version than 1.0.14. + * + * @since 1.0.14 + * @return void + */ + public static function v_1_0_14() { + + $options = array( + 'footer-sml-divider' => '4', + 'footer-sml-divider-color' => '#fff', + 'footer-adv' => 'layout-4', + 'single-page-sidebar-layout' => 'no-sidebar', + 'single-post-sidebar-layout' => 'right-sidebar', + 'archive-post-sidebar-layout' => 'right-sidebar', + ); + + $astra_options = get_option( ASTRA_THEME_SETTINGS, array() ); + + foreach ( $options as $key => $value ) { + if ( ! isset( $astra_options[ $key ] ) ) { + $astra_options[ $key ] = $value; + } + } + + update_option( ASTRA_THEME_SETTINGS, $astra_options ); + + update_option( '_astra_pb_compatibility_offset', 1 ); + update_option( '_astra_pb_compatibility_time', gmdate( 'Y-m-d H:i:s' ) ); + } + + /** + * Update page meta settings for all the themer layouts which are not already set. + * Default settings to previous versions was `no-sidebar` and `page-builder` through filters. + * + * @since 1.0.28 + * @return void + */ + public static function v_1_0_28() { + + $query = array( + 'post_type' => 'fl-theme-layout', + 'no_found_rows' => true, + 'post_status' => 'any', + 'fields' => 'ids', + ); + + // Execute the query. + $posts = new WP_Query( $query ); + + foreach ( $posts->posts as $id ) { + + $sidebar = get_post_meta( $id, 'site-sidebar-layout', true ); + + if ( '' == $sidebar ) { + update_post_meta( $id, 'site-sidebar-layout', 'no-sidebar' ); + } + + $content_layout = get_post_meta( $id, 'site-content-layout', true ); + + if ( '' == $content_layout ) { + update_post_meta( $id, 'site-content-layout', 'page-builder' ); + } + } + + } + + /** + * Update options of older version than 1.1.0-beta.3. + * + * @since 1.1.0-beta.3 + */ + public static function v_1_1_0_beta_3() { + + $astra_options = get_option( ASTRA_THEME_SETTINGS, array() ); + + if ( isset( $astra_options['shop-grid'] ) ) { + + $astra_options['shop-grids'] = array( + 'desktop' => $astra_options['shop-grid'], + 'tablet' => 2, + 'mobile' => 1, + ); + + unset( $astra_options['shop-grid'] ); + } + + update_option( ASTRA_THEME_SETTINGS, $astra_options ); + } + + /** + * Update options of older version than 1.1.0-beta.3. + * + * Container Style + * Sidebar + * Grid + * + * @since 1.1.0-beta.3 + */ + public static function v_1_1_0_beta_4() { + + $options = array( + 'woocommerce-content-layout' => 'default', + 'woocommerce-sidebar-layout' => 'default', + /* Shop */ + 'shop-grids' => array( + 'desktop' => 3, + 'tablet' => 2, + 'mobile' => 1, + ), + 'shop-no-of-products' => '9', + ); + + $astra_options = get_option( ASTRA_THEME_SETTINGS, array() ); + + foreach ( $options as $key => $value ) { + if ( ! isset( $astra_options[ $key ] ) ) { + $astra_options[ $key ] = $value; + } + } + + update_option( ASTRA_THEME_SETTINGS, $astra_options ); + } + + /** + * Update options of older version than 1.2.2. + * + * Logo Width + * + * @since 1.2.2 + */ + public static function v_1_2_2() { + + $astra_options = get_option( ASTRA_THEME_SETTINGS, array() ); + + if ( isset( $astra_options['ast-header-logo-width'] ) && ! is_array( $astra_options['ast-header-logo-width'] ) ) { + $astra_options['ast-header-responsive-logo-width'] = array( + 'desktop' => $astra_options['ast-header-logo-width'], + 'tablet' => '', + 'mobile' => '', + ); + } + + if ( isset( $astra_options['blog-width'] ) ) { + $astra_options['shop-archive-width'] = $astra_options['blog-width']; + } + + if ( isset( $astra_options['blog-max-width'] ) ) { + $astra_options['shop-archive-max-width'] = $astra_options['blog-max-width']; + } + + update_option( ASTRA_THEME_SETTINGS, $astra_options ); + } + + /** + * Update Theme Color value same as Link Color for older version than 1.2.4. + * + * Theme Color update + * + * @since 1.2.4 + */ + public static function v_1_2_4() { + + $astra_options = get_option( ASTRA_THEME_SETTINGS, array() ); + + if ( isset( $astra_options['link-color'] ) ) { + $astra_options['theme-color'] = $astra_options['link-color']; + } + + update_option( ASTRA_THEME_SETTINGS, $astra_options ); + } + + /** + * Update Google Fonts value with font categories + * + * Google Font Update + * + * @since 1.2.7 + */ + public static function v_1_2_7() { + + $astra_options = get_option( ASTRA_THEME_SETTINGS, array() ); + $google_fonts = Astra_Font_Families::get_google_fonts(); + + foreach ( $astra_options as $key => $value ) { + + if ( ! is_array( $value ) && ! empty( $value ) && ! is_bool( $value ) ) { + + if ( array_key_exists( $value, $google_fonts ) ) { + $astra_options[ $key ] = "'" . $value . "', " . $google_fonts[ $value ][1]; + } + } + } + + update_option( ASTRA_THEME_SETTINGS, $astra_options ); + } + + /** + * Update options of older version than 1.3.0. + * + * Background options + * + * @since 1.3.0 + */ + public static function v_1_3_0() { + $astra_options = get_option( ASTRA_THEME_SETTINGS, array() ); + + $astra_options['header-bg-obj'] = array( + 'background-color' => isset( $astra_options['header-bg-color'] ) ? $astra_options['header-bg-color'] : '', + ); + + $astra_options['content-bg-obj'] = array( + 'background-color' => isset( $astra_options['content-bg-color'] ) ? $astra_options['content-bg-color'] : '#ffffff', + ); + + $astra_options['footer-adv-bg-obj'] = array( + 'background-color' => isset( $astra_options['footer-adv-bg-color'] ) ? $astra_options['footer-adv-bg-color'] : '', + 'background-image' => isset( $astra_options['footer-adv-bg-img'] ) ? $astra_options['footer-adv-bg-img'] : '', + 'background-repeat' => isset( $astra_options['footer-adv-bg-repeat'] ) ? $astra_options['footer-adv-bg-repeat'] : 'no-repeat', + 'background-position' => isset( $astra_options['footer-adv-bg-pos'] ) ? $astra_options['footer-adv-bg-pos'] : 'center center', + 'background-size' => isset( $astra_options['footer-adv-bg-size'] ) ? $astra_options['footer-adv-bg-size'] : 'cover', + 'background-attachment' => isset( $astra_options['footer-adv-bg-attac'] ) ? $astra_options['footer-adv-bg-attac'] : 'scroll', + ); + + $astra_options['footer-bg-obj'] = array( + 'background-color' => isset( $astra_options['footer-bg-color'] ) ? $astra_options['footer-bg-color'] : '', + 'background-image' => isset( $astra_options['footer-bg-img'] ) ? $astra_options['footer-bg-img'] : '', + 'background-repeat' => isset( $astra_options['footer-bg-rep'] ) ? $astra_options['footer-bg-rep'] : 'repeat', + 'background-position' => isset( $astra_options['footer-bg-pos'] ) ? $astra_options['footer-bg-pos'] : 'center center', + 'background-size' => isset( $astra_options['footer-bg-size'] ) ? $astra_options['footer-bg-size'] : 'auto', + 'background-attachment' => isset( $astra_options['footer-bg-atch'] ) ? $astra_options['footer-bg-atch'] : 'scroll', + ); + + // Site layout background image and color. + $site_layout = isset( $astra_options['site-layout'] ) ? $astra_options['site-layout'] : ''; + switch ( $site_layout ) { + case 'ast-box-layout': + $astra_options['site-layout-outside-bg-obj'] = array( + 'background-color' => isset( $astra_options['site-layout-outside-bg-color'] ) ? $astra_options['site-layout-outside-bg-color'] : '', + 'background-image' => isset( $astra_options['site-layout-box-bg-img'] ) ? $astra_options['site-layout-box-bg-img'] : '', + 'background-repeat' => isset( $astra_options['site-layout-box-bg-rep'] ) ? $astra_options['site-layout-box-bg-rep'] : 'no-repeat', + 'background-position' => isset( $astra_options['site-layout-box-bg-pos'] ) ? $astra_options['site-layout-box-bg-pos'] : 'center center', + 'background-size' => isset( $astra_options['site-layout-box-bg-size'] ) ? $astra_options['site-layout-box-bg-size'] : 'cover', + 'background-attachment' => isset( $astra_options['site-layout-box-bg-atch'] ) ? $astra_options['site-layout-box-bg-atch'] : 'scroll', + ); + break; + + case 'ast-padded-layout': + $bg_color = isset( $astra_options['site-layout-outside-bg-color'] ) ? $astra_options['site-layout-outside-bg-color'] : ''; + $bg_image = isset( $astra_options['site-layout-padded-bg-img'] ) ? $astra_options['site-layout-padded-bg-img'] : ''; + + $astra_options['site-layout-outside-bg-obj'] = array( + 'background-color' => empty( $bg_image ) ? $bg_color : '', + 'background-image' => $bg_image, + 'background-repeat' => isset( $astra_options['site-layout-padded-bg-rep'] ) ? $astra_options['site-layout-padded-bg-rep'] : 'no-repeat', + 'background-position' => isset( $astra_options['site-layout-padded-bg-pos'] ) ? $astra_options['site-layout-padded-bg-pos'] : 'center center', + 'background-size' => isset( $astra_options['site-layout-padded-bg-size'] ) ? $astra_options['site-layout-padded-bg-size'] : 'cover', + 'background-attachment' => '', + ); + break; + + case 'ast-full-width-layout': + case 'ast-fluid-width-layout': + default: + $astra_options['site-layout-outside-bg-obj'] = array( + 'background-color' => isset( $astra_options['site-layout-outside-bg-color'] ) ? $astra_options['site-layout-outside-bg-color'] : '', + ); + break; + } + + update_option( ASTRA_THEME_SETTINGS, $astra_options ); + } + + /** + * Mobile Header - Border new param introduced for Top, Right, Bottom and left border. + * Update options of older version than 1.4.0-beta.3. + * + * @since 1.4.0-beta.3 + */ + public static function v_1_4_0_beta_3() { + + $theme_options = get_option( 'astra-settings' ); + $mobile_logo_width = astra_get_option( 'mobile-header-logo-width' ); + + if ( '' != $mobile_logo_width ) { + $theme_options['ast-header-responsive-logo-width']['tablet'] = $mobile_logo_width; + } + + $mobile_logo = ( isset( $theme_options['mobile-header-logo'] ) && '' !== $theme_options['mobile-header-logo'] ) ? $theme_options['mobile-header-logo'] : false; + + if ( '' != $mobile_logo ) { + $theme_options['inherit-sticky-logo'] = false; + } + + update_option( 'astra-settings', $theme_options ); + } + + /** + * Introduced different logo for mobile devices option + * + * @since 1.4.0-beta.4 + */ + public static function v_1_4_0_beta_4() { + + $mobile_header_logo = astra_get_option( 'mobile-header-logo' ); + $theme_options = get_option( 'astra-settings' ); + + if ( '' != $mobile_header_logo ) { + $theme_options['different-mobile-logo'] = true; + } + + update_option( 'astra-settings', $theme_options ); + } + + /** + * Function to backward compatibility for version less than 1.4.0 + * + * @since 1.4.0-beta.5 + */ + public static function v_1_4_0_beta_5() { + + // Set default toggle button style. + $theme_options = get_option( 'astra-settings' ); + + if ( ! isset( $theme_options['mobile-header-toggle-btn-style'] ) ) { + $theme_options['mobile-header-toggle-btn-style'] = 'fill'; + } + + $theme_options['hide-custom-menu-mobile'] = 0; + + update_option( 'astra-settings', $theme_options ); + + } + + /** + * Function to backward compatibility for version less than 1.4.3 + * Set the new option different-retina-logo to true for users who are already using a retina logo. + * + * @since 1.4.3-aplha.1 + */ + public static function v_1_4_3_alpha_1() { + + $mobile_header_logo = astra_get_option( 'ast-header-retina-logo' ); + $theme_options = get_option( 'astra-settings' ); + + if ( '' != $mobile_header_logo ) { + $theme_options['different-retina-logo'] = '1'; + } + + update_option( 'astra-settings', $theme_options ); + } + + /** + * Manage backwards compatibility when migrating to v1.4.9 + * + * @since 1.4.9 + * @return void + */ + public static function v_1_4_9() { + $theme_options = get_option( 'astra-settings' ); + + // Set flag to use anchors CSS selectors in the CSS for headings. + if ( ! isset( $theme_options['include-headings-in-typography'] ) ) { + $theme_options['include-headings-in-typography'] = true; + update_option( 'astra-settings', $theme_options ); + } + } + + /** + * Added Submenu Border options into theme from Addon + * + * @since 1.5.0-beta.4 + * + * @return void + */ + public static function v_1_5_0_beta_4() { + + $border_disabled_values = array( + 'top' => '0', + 'bottom' => '0', + 'left' => '0', + 'right' => '0', + ); + $inside_border_disabled_values = array( + 'bottom' => '0', + ); + + $border_enabled_values = array( + 'top' => '1', + 'bottom' => '1', + 'left' => '1', + 'right' => '1', + ); + $inside_border_enabled_values = array( + 'bottom' => '1', + ); + + $theme_options = get_option( 'astra-settings' ); + $submenu_border = isset( $theme_options['primary-submenu-border'] ) ? $theme_options['primary-submenu-border'] : true; + + // Primary Header. + if ( $submenu_border ) { + $theme_options['primary-submenu-border'] = $border_enabled_values; + $theme_options['primary-submenu-item-border'] = $inside_border_enabled_values; + } else { + $theme_options['primary-submenu-border'] = $border_disabled_values; + $theme_options['primary-submenu-item-border'] = $inside_border_disabled_values; + } + + update_option( 'astra-settings', $theme_options ); + } + + /** + * Set flag 'submenu-below-header' to false to load fallback CSS to force menu load right after the container cropping logo and header. + * + * @see https://github.com/brainstormforce/astra/pull/820/ + * + * @return void + */ + public static function v_1_5_0_rc_1() { + $theme_options = get_option( 'astra-settings' ); + + // Set flag to use anchors CSS selectors in the CSS for headings. + if ( ! isset( $theme_options['submenu-below-header'] ) ) { + $theme_options['submenu-below-header'] = false; + update_option( 'astra-settings', $theme_options ); + } + } + + /** + * Set Primary Header submenu border color 'primary-submenu-b-color' to '#eaeaea' for old users who doesn't set any color and set the theme color who install the fresh 1.5.0-rc.3 theme. + * + * @see https://github.com/brainstormforce/astra/pull/835 + * + * @return void + */ + public static function v_1_5_0_rc_3() { + + $theme_options = get_option( 'astra-settings' ); + + // Set the default #eaeaea sub menu border color who doesn't set any color. + if ( ! isset( $theme_options['primary-submenu-b-color'] ) || empty( $theme_options['primary-submenu-b-color'] ) ) { + $theme_options['primary-submenu-b-color'] = '#eaeaea'; + } + + // Set the primary sub menu animation to default for existing user. + if ( ! isset( $theme_options['header-main-submenu-container-animation'] ) ) { + $theme_options['header-main-submenu-container-animation'] = ''; + } + + update_option( 'astra-settings', $theme_options ); + + } + + /** + * Change the Primary submenu option to be checkbpx rather than border selection. + * + * @return void + */ + public static function v_1_5_1() { + $theme_options = get_option( 'astra-settings', array() ); + $primary_submenu_otem_border = isset( $theme_options['primary-submenu-item-border'] ) ? $theme_options['primary-submenu-item-border'] : array(); + + if ( is_array( $primary_submenu_otem_border ) && '0' != $primary_submenu_otem_border['bottom'] ) { + $theme_options['primary-submenu-item-border'] = 1; + } else { + $theme_options['primary-submenu-item-border'] = 0; + } + if ( isset( $theme_options['primary-submenu-b-color'] ) && ! empty( $theme_options['primary-submenu-b-color'] ) ) { + $theme_options['primary-submenu-item-b-color'] = $theme_options['primary-submenu-b-color']; + } + + update_option( 'astra-settings', $theme_options ); + } + + /** + * Add same font variant as font weight for body and heading. + * + * @return void + */ + public static function v_1_5_2() { + $theme_options = get_option( 'astra-settings', array() ); + if ( isset( $theme_options['body-font-weight'] ) && is_numeric( $theme_options['body-font-weight'] ) ) { + $theme_options['body-font-variant'] = $theme_options['body-font-weight']; + } + if ( isset( $theme_options['headings-font-weight'] ) && is_numeric( $theme_options['headings-font-weight'] ) ) { + $theme_options['headings-font-variant'] = $theme_options['headings-font-weight']; + } + + update_option( 'astra-settings', $theme_options ); + } + + /** + * Disable transparent header in customizer if the transparent header addon was disabled. + * + * @return void + */ + public static function v_1_6_0() { + $theme_options = get_option( 'astra-settings', array() ); + + // Disable Transparent header is Transparent Header addon was deactivated from Astra Pro. + if ( is_callable( 'Astra_Ext_Extension::get_enabled_addons' ) ) { + $addons = Astra_Ext_Extension::get_enabled_addons(); + + // If transparent header is addon was disabled, disable the transparent header. + if ( 'transparent-header' !== $addons['transparent-header'] ) { + $theme_options['transparent-header-enable'] = 0; + } + } + + update_option( 'astra-settings', $theme_options ); + } + + /** + * Add backward compatibility for Heading tags previous default values. + * Set Inline Logo & Site Title as false if user had not changed its value. + * Change default value for blog archive blog title. + * + * @return void + */ + public static function v_1_6_1() { + $theme_options = get_option( 'astra-settings', array() ); + + // If user was using a default value for h1, Set the default in the option. + if ( ! isset( $theme_options['font-size-h1'] ) ) { + $theme_options['font-size-h1'] = array( + 'desktop' => '48', + 'tablet' => '', + 'mobile' => '', + 'desktop-unit' => 'px', + 'tablet-unit' => 'px', + 'mobile-unit' => 'px', + ); + } + // If user was using a default value for h2, Set the default in the option. + if ( ! isset( $theme_options['font-size-h2'] ) ) { + $theme_options['font-size-h2'] = array( + 'desktop' => '42', + 'tablet' => '', + 'mobile' => '', + 'desktop-unit' => 'px', + 'tablet-unit' => 'px', + 'mobile-unit' => 'px', + ); + } + // If user was using a default value for h3, Set the default in the option. + if ( ! isset( $theme_options['font-size-h3'] ) ) { + $theme_options['font-size-h3'] = array( + 'desktop' => '30', + 'tablet' => '', + 'mobile' => '', + 'desktop-unit' => 'px', + 'tablet-unit' => 'px', + 'mobile-unit' => 'px', + ); + } + + // If user was using a default value for h3, Set the default in the option. + if ( ! isset( $theme_options['font-size-page-title'] ) ) { + $theme_options['font-size-page-title'] = array( + 'desktop' => '30', + 'tablet' => '', + 'mobile' => '', + 'desktop-unit' => 'px', + 'tablet-unit' => 'px', + 'mobile-unit' => 'px', + ); + } + + // If inline-logo option was unset previously, set to to false as new default is `true`. + if ( ! isset( $theme_options['logo-title-inline'] ) ) { + $theme_options['logo-title-inline'] = 0; + } + + update_option( 'astra-settings', $theme_options ); + } + + /** + * Flush bundled products After udpating to version 2.0.0 + * + * @return void + */ + public static function v_2_0_0() { + update_site_option( 'bsf_force_check_extensions', true ); + } + } +} + +/** + * Kicking this off by calling 'get_instance()' method + */ +Astra_Theme_Update::get_instance(); diff --git a/inc/theme-update/class-astra-theme-wp-background-process.php b/inc/theme-update/class-astra-theme-wp-background-process.php index 0b334f1..a19661b 100644 --- a/inc/theme-update/class-astra-theme-wp-background-process.php +++ b/inc/theme-update/class-astra-theme-wp-background-process.php @@ -1,68 +1,68 @@ -