1783 lines
		
	
	
		
			87 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			1783 lines
		
	
	
		
			87 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/**
 | 
						|
 * Migrate Background Gradient Start/End to new Multi-stops format.
 | 
						|
 *
 | 
						|
 * This migration will take four existing settings and combine them into one
 | 
						|
 * new, unified setting:
 | 
						|
 *
 | 
						|
 * OLD:
 | 
						|
 * - background_color_gradient_start: #rrggbb
 | 
						|
 * - background_color_gradient_start_position: xx%
 | 
						|
 * - background_color_gradient_end: rgba(rr,gg,bb,aa)
 | 
						|
 * - background_color_gradient_end_position: xx%
 | 
						|
 *
 | 
						|
 * NEW:
 | 
						|
 * - background_gradient_stops: #rrggbb xx%|rgba(rr,gg,bb,aa) xx%
 | 
						|
 *
 | 
						|
 * This new format is not limited to only having defined points for gradient
 | 
						|
 * start and end. In this way, we can enable unlimited gradient stops in our
 | 
						|
 * gradient background settings.
 | 
						|
 *
 | 
						|
 * @package    Divi
 | 
						|
 * @subpackage Builder/Migration
 | 
						|
 * @since 4.16.0
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 * Background Gradient Stops migrations class.
 | 
						|
 */
 | 
						|
class ET_Builder_Module_Settings_Migration_BackgroundGradientStops extends ET_Builder_Module_Settings_Migration {
 | 
						|
 | 
						|
 | 
						|
	/**
 | 
						|
	 * The Divi release where this migration was introduced.
 | 
						|
	 *
 | 
						|
	 * @var string
 | 
						|
	 *
 | 
						|
	 * @since 4.16.0
 | 
						|
	 */
 | 
						|
	public $version = '4.16';
 | 
						|
 | 
						|
	/**
 | 
						|
	 * This migration should add the defined field(s).
 | 
						|
	 *
 | 
						|
	 * This migration adds a new, combined field for background gradient stops. Older modules do not
 | 
						|
	 * have this field, so it needs to be added.
 | 
						|
	 *
 | 
						|
	 * @var bool
 | 
						|
	 *
 | 
						|
	 * @since 4.16.1
 | 
						|
	 */
 | 
						|
	public $add_missing_fields = true;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Array of modules to inspect for settings to migrate.
 | 
						|
	 *
 | 
						|
	 * Pass attribute and it will return selected modules only. Default return all affected modules.
 | 
						|
	 *
 | 
						|
	 * @param string $attr Attribute name.
 | 
						|
	 *
 | 
						|
	 * @return array Collection of module types.
 | 
						|
	 *
 | 
						|
	 * @since 4.16.0
 | 
						|
	 */
 | 
						|
	public function get_modules( $attr = '' ) {
 | 
						|
		$all_module_slugs = ET_Builder_Element::get_all_module_slugs();
 | 
						|
		$modules          = array();
 | 
						|
 | 
						|
		$module_bg           = array(
 | 
						|
			// Structure Elements.
 | 
						|
			'et_pb_column_inner',
 | 
						|
			'et_pb_column_specialty',
 | 
						|
			'et_pb_column',
 | 
						|
			'et_pb_section_fullwidth',
 | 
						|
			'et_pb_section_specialty',
 | 
						|
			'et_pb_section',
 | 
						|
			'et_pb_row_inner',
 | 
						|
			'et_pb_row',
 | 
						|
			// Divi Content Modules.
 | 
						|
			'et_pb_accordion_item',
 | 
						|
			'et_pb_accordion',
 | 
						|
			'et_pb_audio',
 | 
						|
			'et_pb_blog',
 | 
						|
			'et_pb_blurb',
 | 
						|
			'et_pb_circle_counter',
 | 
						|
			'et_pb_code',
 | 
						|
			'et_pb_comments',
 | 
						|
			'et_pb_contact_field',
 | 
						|
			'et_pb_contact_form',
 | 
						|
			'et_pb_countdown_timer',
 | 
						|
			'et_pb_counter',
 | 
						|
			'et_pb_counters',
 | 
						|
			'et_pb_cta',
 | 
						|
			'et_pb_divider',
 | 
						|
			'et_pb_filterable_portfolio',
 | 
						|
			'et_pb_gallery',
 | 
						|
			'et_pb_icon',
 | 
						|
			'et_pb_image',
 | 
						|
			'et_pb_login',
 | 
						|
			'et_pb_map',
 | 
						|
			'et_pb_menu',
 | 
						|
			'et_pb_number_counter',
 | 
						|
			'et_pb_portfolio',
 | 
						|
			'et_pb_post_content',
 | 
						|
			'et_pb_post_nav',
 | 
						|
			'et_pb_post_slider',
 | 
						|
			'et_pb_post_title',
 | 
						|
			'et_pb_pricing_table',
 | 
						|
			'et_pb_pricing_tables',
 | 
						|
			'et_pb_search',
 | 
						|
			'et_pb_shop',
 | 
						|
			'et_pb_sidebar',
 | 
						|
			'et_pb_signup_custom_field',
 | 
						|
			'et_pb_signup',
 | 
						|
			'et_pb_slide_fullwidth',
 | 
						|
			'et_pb_slide',
 | 
						|
			'et_pb_slider',
 | 
						|
			'et_pb_social_media_follow',
 | 
						|
			'et_pb_tab',
 | 
						|
			'et_pb_tabs',
 | 
						|
			'et_pb_team_member',
 | 
						|
			'et_pb_testimonial',
 | 
						|
			'et_pb_text',
 | 
						|
			'et_pb_toggle',
 | 
						|
			'et_pb_video_slider',
 | 
						|
			'et_pb_video',
 | 
						|
			'et_pb_fullwidth_code',
 | 
						|
			'et_pb_fullwidth_header',
 | 
						|
			'et_pb_fullwidth_image',
 | 
						|
			'et_pb_fullwidth_map',
 | 
						|
			'et_pb_fullwidth_menu',
 | 
						|
			'et_pb_fullwidth_portfolio',
 | 
						|
			'et_pb_fullwidth_post_content',
 | 
						|
			'et_pb_fullwidth_post_slider',
 | 
						|
			'et_pb_fullwidth_post_title',
 | 
						|
			'et_pb_fullwidth_slider',
 | 
						|
			// WooCommerce Modules.
 | 
						|
			'et_pb_wc_add_to_cart',
 | 
						|
			'et_pb_wc_additional_info',
 | 
						|
			'et_pb_wc_breadcrumb',
 | 
						|
			'et_pb_wc_cart_notice',
 | 
						|
			'et_pb_wc_description',
 | 
						|
			'et_pb_wc_gallery',
 | 
						|
			'et_pb_wc_images',
 | 
						|
			'et_pb_wc_meta',
 | 
						|
			'et_pb_wc_price',
 | 
						|
			'et_pb_wc_rating',
 | 
						|
			'et_pb_wc_related_products',
 | 
						|
			'et_pb_wc_reviews',
 | 
						|
			'et_pb_wc_stock',
 | 
						|
			'et_pb_wc_tabs',
 | 
						|
			'et_pb_wc_title',
 | 
						|
			'et_pb_wc_upsells',
 | 
						|
		);
 | 
						|
		$button_bg           = array(
 | 
						|
			// Divi Content Modules.
 | 
						|
			'et_pb_button',
 | 
						|
			'et_pb_comments',
 | 
						|
			'et_pb_contact_form',
 | 
						|
			'et_pb_cta',
 | 
						|
			'et_pb_login',
 | 
						|
			'et_pb_post_slider',
 | 
						|
			'et_pb_pricing_table',
 | 
						|
			'et_pb_pricing_tables',
 | 
						|
			'et_pb_signup',
 | 
						|
			'et_pb_slide_fullwidth',
 | 
						|
			'et_pb_slide',
 | 
						|
			'et_pb_slider',
 | 
						|
			'et_pb_social_media_follow',
 | 
						|
			'et_pb_fullwidth_slider',
 | 
						|
			// WooCommerce Modules.
 | 
						|
			'et_pb_wc_add_to_cart',
 | 
						|
			'et_pb_wc_cart_notice',
 | 
						|
			'et_pb_wc_reviews',
 | 
						|
		);
 | 
						|
		$fw_header_button_bg = array(
 | 
						|
			// Divi Content Modules.
 | 
						|
			'et_pb_fullwidth_header',
 | 
						|
		);
 | 
						|
 | 
						|
		// Any modules not caught by the preceding lists (generally this will be 3rd-party modules).
 | 
						|
		$module_catchall = array_diff( $all_module_slugs, $module_bg, $button_bg, $fw_header_button_bg );
 | 
						|
 | 
						|
		// Background.
 | 
						|
		if ( in_array( $attr, array( '', 'module_bg' ), true ) ) {
 | 
						|
			$modules = array_merge( $modules, $module_bg, $module_catchall );
 | 
						|
		}
 | 
						|
 | 
						|
		// Button BG.
 | 
						|
		if ( in_array( $attr, array( '', 'button_bg' ), true ) ) {
 | 
						|
			$modules = array_merge( $modules, $button_bg, $module_catchall );
 | 
						|
		}
 | 
						|
 | 
						|
		// Fullwidth Header Button One/Two BG.
 | 
						|
		if ( in_array( $attr, array( '', 'fw_header_button_bg' ), true ) ) {
 | 
						|
			$modules = array_merge( $modules, $fw_header_button_bg, $module_catchall );
 | 
						|
		}
 | 
						|
 | 
						|
		// In the event that no match was made, pass *only* the filtered modules.
 | 
						|
		if ( empty( $modules ) ) {
 | 
						|
			$modules = $module_catchall;
 | 
						|
		}
 | 
						|
 | 
						|
		return $modules;
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Get fields that are affected by this migration.
 | 
						|
	 *
 | 
						|
	 * We need to write gradient stops into the new attribute even if they're
 | 
						|
	 * built using default values for gradient start/end settings, so we want to
 | 
						|
	 * find any case where a background gradient is used (regardless of whether
 | 
						|
	 * or not a custom color or position has been defined). As long as some form
 | 
						|
	 * of `use[_background]_color_gradient` is saved to the module, we want to
 | 
						|
	 * load it and migrate its data for the new `_gradient_stops` field.
 | 
						|
	 *
 | 
						|
	 * @return array Collection of affected attributes.
 | 
						|
	 *
 | 
						|
	 * @since 4.16.0
 | 
						|
	 */
 | 
						|
	public function get_fields() {
 | 
						|
		// Gradient Stops fields.
 | 
						|
		$gradient_stops_fields = array(
 | 
						|
			// Core fields.
 | 
						|
			'background_color_gradient_stops'            => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_stops' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'button_bg_color_gradient_stops'             => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'button_bg_color_gradient_stops' => $this->get_modules( 'button_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'button_one_bg_color_gradient_stops'         => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'button_one_bg_color_gradient_stops' => $this->get_modules( 'fw_header_button_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'button_two_bg_color_gradient_stops'         => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'button_two_bg_color_gradient_stops' => $this->get_modules( 'fw_header_button_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'background_color_gradient_stops_1'          => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_stops_1' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'background_color_gradient_stops_2'          => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_stops_2' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'background_color_gradient_stops_3'          => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_stops_3' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
 | 
						|
			// Tablet View.
 | 
						|
			'background_color_gradient_stops_tablet'     => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_stops_tablet' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'button_bg_color_gradient_stops_tablet'      => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'button_bg_color_gradient_stops_tablet' => $this->get_modules( 'button_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'button_one_bg_color_gradient_stops_tablet'  => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'button_one_bg_color_gradient_stops_tablet' => $this->get_modules( 'fw_header_button_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'button_two_bg_color_gradient_stops_tablet'  => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'button_two_bg_color_gradient_stops_tablet' => $this->get_modules( 'fw_header_button_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'background_color_gradient_stops_tablet_1'   => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_stops_tablet_1' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'background_color_gradient_stops_tablet_2'   => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_stops_tablet_2' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'background_color_gradient_stops_tablet_3'   => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_stops_tablet_3' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
 | 
						|
			// Phone View.
 | 
						|
			'background_color_gradient_stops_phone'      => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_stops_phone' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'button_bg_color_gradient_stops_phone'       => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'button_bg_color_gradient_stops_phone' => $this->get_modules( 'button_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'button_one_bg_color_gradient_stops_phone'   => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'button_one_bg_color_gradient_stops_phone' => $this->get_modules( 'fw_header_button_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'button_two_bg_color_gradient_stops_phone'   => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'button_two_bg_color_gradient_stops_phone' => $this->get_modules( 'fw_header_button_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'background_color_gradient_stops_phone_1'    => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_stops_phone_1' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'background_color_gradient_stops_phone_2'    => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_stops_phone_2' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'background_color_gradient_stops_phone_3'    => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_stops_phone_3' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
 | 
						|
			// Hover Mode.
 | 
						|
			'background_color_gradient_stops__hover'     => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_stops__hover' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'button_bg_color_gradient_stops__hover'      => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'button_bg_color_gradient_stops__hover' => $this->get_modules( 'button_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'button_one_bg_color_gradient_stops__hover'  => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'button_one_bg_color_gradient_stops__hover' => $this->get_modules( 'fw_header_button_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'button_two_bg_color_gradient_stops__hover'  => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'button_two_bg_color_gradient_stops__hover' => $this->get_modules( 'fw_header_button_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'background_color_gradient_stops__hover_1'   => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_stops__hover_1' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'background_color_gradient_stops__hover_2'   => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_stops__hover_2' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'background_color_gradient_stops__hover_3'   => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_stops__hover_3' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
 | 
						|
			// Sticky Mode.
 | 
						|
			'background_color_gradient_stops__sticky'    => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_stops__sticky' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'button_bg_color_gradient_stops__sticky'     => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'button_bg_color_gradient_stops__sticky' => $this->get_modules( 'button_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'button_one_bg_color_gradient_stops__sticky' => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'button_one_bg_color_gradient_stops__sticky' => $this->get_modules( 'fw_header_button_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'button_two_bg_color_gradient_stops__sticky' => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'button_two_bg_color_gradient_stops__sticky' => $this->get_modules( 'fw_header_button_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'background_color_gradient_stops__sticky_1'  => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_stops__sticky_1' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'background_color_gradient_stops__sticky_2'  => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_stops__sticky_2' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'background_color_gradient_stops__sticky_3'  => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_stops__sticky_3' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
		);
 | 
						|
 | 
						|
		// Gradient Type fields.
 | 
						|
		$gradient_type_fields = array(
 | 
						|
			// Core fields.
 | 
						|
			'background_color_gradient_type'            => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_type' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'button_bg_color_gradient_type'             => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'button_bg_color_gradient_type' => $this->get_modules( 'button_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'button_one_bg_color_gradient_type'         => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'button_one_bg_color_gradient_type' => $this->get_modules( 'fw_header_button_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'button_two_bg_color_gradient_type'         => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'button_two_bg_color_gradient_type' => $this->get_modules( 'fw_header_button_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'background_color_gradient_type_1'          => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_type_1' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'background_color_gradient_type_2'          => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_type_2' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'background_color_gradient_type_3'          => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_type_3' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
 | 
						|
			// Tablet View.
 | 
						|
			'background_color_gradient_type_tablet'     => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_type_tablet' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'button_bg_color_gradient_type_tablet'      => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'button_bg_color_gradient_type_tablet' => $this->get_modules( 'button_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'button_one_bg_color_gradient_type_tablet'  => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'button_one_bg_color_gradient_type_tablet' => $this->get_modules( 'fw_header_button_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'button_two_bg_color_gradient_type_tablet'  => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'button_two_bg_color_gradient_type_tablet' => $this->get_modules( 'fw_header_button_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'background_color_gradient_type_tablet_1'   => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_type_tablet_1' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'background_color_gradient_type_tablet_2'   => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_type_tablet_2' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'background_color_gradient_type_tablet_3'   => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_type_tablet_3' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
 | 
						|
			// Phone View.
 | 
						|
			'background_color_gradient_type_phone'      => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_type_phone' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'button_bg_color_gradient_type_phone'       => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'button_bg_color_gradient_type_phone' => $this->get_modules( 'button_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'button_one_bg_color_gradient_type_phone'   => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'button_one_bg_color_gradient_type_phone' => $this->get_modules( 'fw_header_button_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'button_two_bg_color_gradient_type_phone'   => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'button_two_bg_color_gradient_type_phone' => $this->get_modules( 'fw_header_button_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'background_color_gradient_type_phone_1'    => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_type_phone_1' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'background_color_gradient_type_phone_2'    => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_type_phone_2' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'background_color_gradient_type_phone_3'    => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_type_phone_3' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
 | 
						|
			// Hover Mode.
 | 
						|
			'background_color_gradient_type__hover'     => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_type__hover' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'button_bg_color_gradient_type__hover'      => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'button_bg_color_gradient_type__hover' => $this->get_modules( 'button_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'button_one_bg_color_gradient_type__hover'  => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'button_one_bg_color_gradient_type__hover' => $this->get_modules( 'fw_header_button_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'button_two_bg_color_gradient_type__hover'  => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'button_two_bg_color_gradient_type__hover' => $this->get_modules( 'fw_header_button_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'background_color_gradient_type__hover_1'   => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_type__hover_1' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'background_color_gradient_type__hover_2'   => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_type__hover_2' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'background_color_gradient_type__hover_3'   => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_type__hover_3' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
 | 
						|
			// Sticky Mode.
 | 
						|
			'background_color_gradient_type__sticky'    => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_type__sticky' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'button_bg_color_gradient_type__sticky'     => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'button_bg_color_gradient_type__sticky' => $this->get_modules( 'button_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'button_one_bg_color_gradient_type__sticky' => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'button_one_bg_color_gradient_type__sticky' => $this->get_modules( 'fw_header_button_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'button_two_bg_color_gradient_type__sticky' => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'button_two_bg_color_gradient_type__sticky' => $this->get_modules( 'fw_header_button_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'background_color_gradient_type__sticky_1'  => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_type__sticky_1' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'background_color_gradient_type__sticky_2'  => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_type__sticky_2' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
			'background_color_gradient_type__sticky_3'  => array(
 | 
						|
				'affected_fields' => array(
 | 
						|
					'background_color_gradient_type__sticky_3' => $this->get_modules( 'module_bg' ),
 | 
						|
				),
 | 
						|
			),
 | 
						|
		);
 | 
						|
 | 
						|
		return array_merge( $gradient_stops_fields, $gradient_type_fields );
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * The various names of gradient *_type fields.
 | 
						|
	 *
 | 
						|
	 * @return array Collection of affected attributes.
 | 
						|
	 *
 | 
						|
	 * @since 4.16.0
 | 
						|
	 */
 | 
						|
	public function gradientTypeFields() {
 | 
						|
		return array(
 | 
						|
			// Core fields.
 | 
						|
			'background_color_gradient_type',
 | 
						|
			'button_bg_color_gradient_type',
 | 
						|
			'button_one_bg_color_gradient_type',
 | 
						|
			'button_two_bg_color_gradient_type',
 | 
						|
			'background_color_gradient_type_1',
 | 
						|
			'background_color_gradient_type_2',
 | 
						|
			'background_color_gradient_type_3',
 | 
						|
 | 
						|
			// Tablet View.
 | 
						|
			'background_color_gradient_type_tablet',
 | 
						|
			'button_bg_color_gradient_type_tablet',
 | 
						|
			'button_one_bg_color_gradient_type_tablet',
 | 
						|
			'button_two_bg_color_gradient_type_tablet',
 | 
						|
			'background_color_gradient_type_tablet_1',
 | 
						|
			'background_color_gradient_type_tablet_2',
 | 
						|
			'background_color_gradient_type_tablet_3',
 | 
						|
 | 
						|
			// Phone View.
 | 
						|
			'background_color_gradient_type_phone',
 | 
						|
			'button_bg_color_gradient_type_phone',
 | 
						|
			'button_one_bg_color_gradient_type_phone',
 | 
						|
			'button_two_bg_color_gradient_type_phone',
 | 
						|
			'background_color_gradient_type_phone_1',
 | 
						|
			'background_color_gradient_type_phone_2',
 | 
						|
			'background_color_gradient_type_phone_3',
 | 
						|
 | 
						|
			// Hover Mode.
 | 
						|
			'background_color_gradient_type__hover',
 | 
						|
			'button_bg_color_gradient_type__hover',
 | 
						|
			'button_one_bg_color_gradient_type__hover',
 | 
						|
			'button_two_bg_color_gradient_type__hover',
 | 
						|
			'background_color_gradient_type__hover_1',
 | 
						|
			'background_color_gradient_type__hover_2',
 | 
						|
			'background_color_gradient_type__hover_3',
 | 
						|
 | 
						|
			// Sticky Mode.
 | 
						|
			'background_color_gradient_type__sticky',
 | 
						|
			'button_bg_color_gradient_type__sticky',
 | 
						|
			'button_one_bg_color_gradient_type__sticky',
 | 
						|
			'button_two_bg_color_gradient_type__sticky',
 | 
						|
			'background_color_gradient_type__sticky_1',
 | 
						|
			'background_color_gradient_type__sticky_2',
 | 
						|
			'background_color_gradient_type__sticky_3',
 | 
						|
		);
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Check if array key exists and has non-empty value.
 | 
						|
	 *
 | 
						|
	 * @param string $key   Name of an attribute being searched.
 | 
						|
	 * @param array  $array Module attributes.
 | 
						|
	 *
 | 
						|
	 * @return bool Whether a matching attribute exists with a non-empty value.
 | 
						|
	 *
 | 
						|
	 * @since 4.16.0
 | 
						|
	 */
 | 
						|
	public function existsAndIsNotEmpty( $key, $array ) {
 | 
						|
		if ( ! array_key_exists( $key, $array ) ) {
 | 
						|
			return false;
 | 
						|
		}
 | 
						|
 | 
						|
		return ! empty( $array[ $key ] );
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Gradient Type: Replace any "radial" gradient types with "elliptical".
 | 
						|
	 *
 | 
						|
	 * "Gradient Type" has been updated.
 | 
						|
	 *
 | 
						|
	 * Previously, the options were:
 | 
						|
	 * - linear [`linear-gradient(...)`]
 | 
						|
	 * - radial [`radial-gradient(...)`] (defaults to 'ellipse at' unless circle is defined)
 | 
						|
	 *
 | 
						|
	 * The options now are:
 | 
						|
	 * - linear [`linear-gradient(...)`]
 | 
						|
	 * - elliptical [`radial-gradient( ellipse at...)`]
 | 
						|
	 * - circular [`radial-gradient( circle at...)`]
 | 
						|
	 * - conic [`conic-gradient(...)`]
 | 
						|
	 *
 | 
						|
	 * This means that the old "radial" type needs to be updated to "ellipse" wherever it appears.
 | 
						|
	 *
 | 
						|
	 * @param string $current_value The current value (which may need replacing).
 | 
						|
	 *
 | 
						|
	 * @return string Value to assign to the migrated field.
 | 
						|
	 *
 | 
						|
	 * @since 4.16.0
 | 
						|
	 */
 | 
						|
	public function migrateGradientType( $current_value ) {
 | 
						|
		switch ( $current_value ) {
 | 
						|
			case 'radial':
 | 
						|
				return 'circular';
 | 
						|
			default:
 | 
						|
				return $current_value;
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Gradient Stops: Formatting information for the old start/end values to be migrated.
 | 
						|
	 *
 | 
						|
	 * `background_color_gradient_start_position`:
 | 
						|
	 * `background_color_gradient_end_position`:
 | 
						|
	 *   string - percentage value (0%-100%); could also be a fraction of
 | 
						|
	 *            a percent (ex. '25.68%'). We will be rounding these to the
 | 
						|
	 *            nearest whole percent during migration, so:
 | 
						|
	 *              pre-migration '25.48%' = post-migration '25%'
 | 
						|
	 *              pre-migration '25.68%' = post-migration '26%'
 | 
						|
	 *
 | 
						|
	 * `background_color_gradient_start`:
 | 
						|
	 * `background_color_gradient_end`:
 | 
						|
	 *   string - CSS color code. Should be one of:
 | 
						|
	 *              hex (ex. #ff00aa, #f0a)
 | 
						|
	 *              rgba (ex. rgba(255,0,170,0.54)
 | 
						|
	 *            Our color picker converts rgb(...) to hex and hsla(...)
 | 
						|
	 *            to rgba, so they don't appear naturally. Customized layout
 | 
						|
	 *            exports could have modified values, though, so we should
 | 
						|
	 *            be prepared to handle them.
 | 
						|
	 *
 | 
						|
	 * @param string $field_name Name of the field.
 | 
						|
	 * @param string $current_value Current value.
 | 
						|
	 * @param array  $attrs The attrs.
 | 
						|
	 *
 | 
						|
	 * @return string Value to assign to the migrated field.
 | 
						|
	 *
 | 
						|
	 * @since 4.16.0 Added.
 | 
						|
	 * @since 4.17.1 Check inheritance. If all values are inherited, unset the attribute.
 | 
						|
	 */
 | 
						|
	public function migrateGradientStops( $field_name, $current_value, $attrs ) {
 | 
						|
 | 
						|
		// Grab system defaults to insert where needed (due to empty values).
 | 
						|
		$default_settings = array(
 | 
						|
			'start_color'    => ET_Global_Settings::get_value( 'all_background_gradient_start' ),
 | 
						|
			'start_position' => ET_Global_Settings::get_value( 'all_background_gradient_start_position' ),
 | 
						|
			'end_color'      => ET_Global_Settings::get_value( 'all_background_gradient_end' ),
 | 
						|
			'end_position'   => ET_Global_Settings::get_value( 'all_background_gradient_end_position' ),
 | 
						|
		);
 | 
						|
 | 
						|
		// This array will be populated with values from the old fields.
 | 
						|
		$old_values = array(
 | 
						|
			'start_color'    => '',
 | 
						|
			'start_position' => '',
 | 
						|
			'end_color'      => '',
 | 
						|
			'end_position'   => '',
 | 
						|
		);
 | 
						|
 | 
						|
		// This is used to avoid polluting with unnecessary settings.
 | 
						|
		$is_inherited = array(
 | 
						|
			'start_color'    => false,
 | 
						|
			'start_position' => false,
 | 
						|
			'end_color'      => false,
 | 
						|
			'end_position'   => false,
 | 
						|
		);
 | 
						|
 | 
						|
		// Collect the old gradient settings.
 | 
						|
		switch ( $field_name ) {
 | 
						|
			// Core fields.
 | 
						|
			case 'background_color_gradient_stops':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['background_color_gradient_start'];
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['background_color_gradient_start_position'];
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['background_color_gradient_end'];
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['background_color_gradient_end_position'];
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case 'button_bg_color_gradient_stops':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_start', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['button_bg_color_gradient_start'];
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_start_position', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['button_bg_color_gradient_start_position'];
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_end', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['button_bg_color_gradient_end'];
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_end_position', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['button_bg_color_gradient_end_position'];
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case 'button_one_bg_color_gradient_stops':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_start', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['button_one_bg_color_gradient_start'];
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_start_position', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['button_one_bg_color_gradient_start_position'];
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_end', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['button_one_bg_color_gradient_end'];
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_end_position', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['button_one_bg_color_gradient_end_position'];
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case 'button_two_bg_color_gradient_stops':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_start', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['button_two_bg_color_gradient_start'];
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_start_position', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['button_two_bg_color_gradient_start_position'];
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_end', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['button_two_bg_color_gradient_end'];
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_end_position', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['button_two_bg_color_gradient_end_position'];
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case 'background_color_gradient_stops_1':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start_1', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['background_color_gradient_start_1'];
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position_1', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['background_color_gradient_start_position_1'];
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end_1', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['background_color_gradient_end_1'];
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position_1', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['background_color_gradient_end_position_1'];
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case 'background_color_gradient_stops_2':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start_2', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['background_color_gradient_start_2'];
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position_2', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['background_color_gradient_start_position_2'];
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end_2', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['background_color_gradient_end_2'];
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position_2', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['background_color_gradient_end_position_2'];
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case 'background_color_gradient_stops_3':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start_3', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['background_color_gradient_start_3'];
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position_3', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['background_color_gradient_start_position_3'];
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end_3', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['background_color_gradient_end_3'];
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position_3', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['background_color_gradient_end_position_3'];
 | 
						|
				}
 | 
						|
				break;
 | 
						|
 | 
						|
			// Tablet View.
 | 
						|
			// If tablet view settings are not found, check for desktop view settings and inherit (if found).
 | 
						|
			case 'background_color_gradient_stops_tablet':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start_tablet', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['background_color_gradient_start_tablet'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['background_color_gradient_start'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position_tablet', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['background_color_gradient_start_position_tablet'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['background_color_gradient_start_position'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end_tablet', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['background_color_gradient_end_tablet'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['background_color_gradient_end'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position_tablet', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['background_color_gradient_end_position_tablet'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['background_color_gradient_end_position'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case 'button_bg_color_gradient_stops_tablet':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_start_tablet', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['button_bg_color_gradient_start_tablet'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_start', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['button_bg_color_gradient_start'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_start_position_tablet', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['button_bg_color_gradient_start_position_tablet'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_start_position', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['button_bg_color_gradient_start_position'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_end_tablet', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['button_bg_color_gradient_end_tablet'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_end', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['button_bg_color_gradient_end'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_end_position_tablet', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['button_bg_color_gradient_end_position_tablet'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_end_position', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['button_bg_color_gradient_end_position'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case 'button_one_bg_color_gradient_stops_tablet':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_start_tablet', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['button_one_bg_color_gradient_start_tablet'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_start', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['button_one_bg_color_gradient_start'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_start_position_tablet', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['button_one_bg_color_gradient_start_position_tablet'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_start_position', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['button_one_bg_color_gradient_start_position'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_end_tablet', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['button_one_bg_color_gradient_end_tablet'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_end', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['button_one_bg_color_gradient_end'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_end_position_tablet', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['button_one_bg_color_gradient_end_position_tablet'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_end_position', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['button_one_bg_color_gradient_end_position'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case 'button_two_bg_color_gradient_stops_tablet':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_start_tablet', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['button_two_bg_color_gradient_start_tablet'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_start', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['button_two_bg_color_gradient_start'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_start_position_tablet', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['button_two_bg_color_gradient_start_position_tablet'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_start_position', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['button_two_bg_color_gradient_start_position'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_end_tablet', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['button_two_bg_color_gradient_end_tablet'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_end', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['button_two_bg_color_gradient_end'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_end_position_tablet', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['button_two_bg_color_gradient_end_position_tablet'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_end_position', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['button_two_bg_color_gradient_end_position'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case 'background_color_gradient_stops_tablet_1':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start_tablet_1', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['background_color_gradient_start_tablet_1'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_1', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['background_color_gradient_start_1'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position_tablet_1', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['background_color_gradient_start_position_tablet_1'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position_1', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['background_color_gradient_start_position_1'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end_tablet_1', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['background_color_gradient_end_tablet_1'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_1', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['background_color_gradient_end_1'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position_tablet_1', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['background_color_gradient_end_position_tablet_1'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position_1', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['background_color_gradient_end_position_1'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case 'background_color_gradient_stops_tablet_2':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start_tablet_2', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['background_color_gradient_start_tablet_2'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_2', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['background_color_gradient_start_2'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position_tablet_2', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['background_color_gradient_start_position_tablet_2'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position_2', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['background_color_gradient_start_position_2'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end_tablet_2', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['background_color_gradient_end_tablet_2'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_2', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['background_color_gradient_end_2'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position_tablet_2', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['background_color_gradient_end_position_tablet_2'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position_2', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['background_color_gradient_end_position_2'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case 'background_color_gradient_stops_tablet_3':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start_tablet_3', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['background_color_gradient_start_tablet_3'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_3', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['background_color_gradient_start_3'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position_tablet_3', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['background_color_gradient_start_position_tablet_3'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position_3', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['background_color_gradient_start_position_3'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end_tablet_3', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['background_color_gradient_end_tablet_3'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_3', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['background_color_gradient_end_3'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position_tablet_3', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['background_color_gradient_end_position_tablet_3'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position_3', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['background_color_gradient_end_position_3'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
 | 
						|
			// Phone View.
 | 
						|
			// If phone view settings are not found, check for table view settings and inherit (if found).
 | 
						|
			// If tablet view settings are not found, check for desktop view settings and inherit (if found).
 | 
						|
			case 'background_color_gradient_stops_phone':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start_phone', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['background_color_gradient_start_phone'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_tablet', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['background_color_gradient_start_tablet'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['background_color_gradient_start'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position_phone', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['background_color_gradient_start_position_phone'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position_tablet', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['background_color_gradient_start_position_tablet'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['background_color_gradient_start_position'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end_phone', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['background_color_gradient_end_phone'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_tablet', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['background_color_gradient_end_tablet'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['background_color_gradient_end'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position_phone', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['background_color_gradient_end_position_phone'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position_tablet', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['background_color_gradient_end_position_tablet'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['background_color_gradient_end_position'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case 'button_bg_color_gradient_stops_phone':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_start_phone', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['button_bg_color_gradient_start_phone'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_start_tablet', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['button_bg_color_gradient_start_tablet'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_start', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['button_bg_color_gradient_start'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_start_position_phone', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['button_bg_color_gradient_start_position_phone'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_start_position_tablet', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['button_bg_color_gradient_start_position_tablet'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_start_position', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['button_bg_color_gradient_start_position'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_end_phone', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['button_bg_color_gradient_end_phone'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_end_tablet', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['button_bg_color_gradient_end_tablet'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_end', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['button_bg_color_gradient_end'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_end_position_phone', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['button_bg_color_gradient_end_position_phone'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_end_position_tablet', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['button_bg_color_gradient_end_position_tablet'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_end_position', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['button_bg_color_gradient_end_position'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case 'button_one_bg_color_gradient_stops_phone':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_start_phone', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['button_one_bg_color_gradient_start_phone'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_start_tablet', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['button_one_bg_color_gradient_start_tablet'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_start', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['button_one_bg_color_gradient_start'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_start_position_phone', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['button_one_bg_color_gradient_start_position_phone'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_start_position_tablet', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['button_one_bg_color_gradient_start_position_tablet'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_start_position', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['button_one_bg_color_gradient_start_position'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_end_phone', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['button_one_bg_color_gradient_end_phone'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_end_tablet', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['button_one_bg_color_gradient_end_tablet'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_end', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['button_one_bg_color_gradient_end'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_end_position_phone', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['button_one_bg_color_gradient_end_position_phone'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_end_position_tablet', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['button_one_bg_color_gradient_end_position_tablet'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_end_position', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['button_one_bg_color_gradient_end_position'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case 'button_two_bg_color_gradient_stops_phone':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_start_phone', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['button_two_bg_color_gradient_start_phone'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_start_tablet', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['button_two_bg_color_gradient_start_tablet'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_start', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['button_two_bg_color_gradient_start'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_start_position_phone', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['button_two_bg_color_gradient_start_position_phone'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_start_position_tablet', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['button_two_bg_color_gradient_start_position_tablet'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_start_position', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['button_two_bg_color_gradient_start_position'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_end_phone', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['button_two_bg_color_gradient_end_phone'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_end_tablet', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['button_two_bg_color_gradient_end_tablet'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_end', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['button_two_bg_color_gradient_end'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_end_position_phone', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['button_two_bg_color_gradient_end_position_phone'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_end_position_tablet', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['button_two_bg_color_gradient_end_position_tablet'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_end_position', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['button_two_bg_color_gradient_end_position'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case 'background_color_gradient_stops_phone_1':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start_phone_1', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['background_color_gradient_start_phone_1'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_tablet_1', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['background_color_gradient_start_tablet_1'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_1', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['background_color_gradient_start_1'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position_phone_1', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['background_color_gradient_start_position_phone_1'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position_tablet_1', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['background_color_gradient_start_position_tablet_1'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position_1', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['background_color_gradient_start_position_1'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end_phone_1', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['background_color_gradient_end_phone_1'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_tablet_1', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['background_color_gradient_end_tablet_1'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_1', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['background_color_gradient_end_1'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position_phone_1', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['background_color_gradient_end_position_phone_1'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position_tablet_1', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['background_color_gradient_end_position_tablet_1'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position_1', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['background_color_gradient_end_position_1'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case 'background_color_gradient_stops_phone_2':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start_phone_2', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['background_color_gradient_start_phone_2'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_tablet_2', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['background_color_gradient_start_tablet_2'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_2', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['background_color_gradient_start_2'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position_phone_2', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['background_color_gradient_start_position_phone_2'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position_tablet_2', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['background_color_gradient_start_position_tablet_2'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position_2', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['background_color_gradient_start_position_2'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end_phone_2', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['background_color_gradient_end_phone_2'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_tablet_2', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['background_color_gradient_end_tablet_2'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_2', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['background_color_gradient_end_2'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position_phone_2', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['background_color_gradient_end_position_phone_2'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position_tablet_2', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['background_color_gradient_end_position_tablet_2'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position_2', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['background_color_gradient_end_position_2'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case 'background_color_gradient_stops_phone_3':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start_phone_3', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['background_color_gradient_start_phone_3'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_tablet_3', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['background_color_gradient_start_tablet_3'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_3', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['background_color_gradient_start_3'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position_phone_3', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['background_color_gradient_start_position_phone_3'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position_tablet_3', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['background_color_gradient_start_position_tablet_3'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position_3', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['background_color_gradient_start_position_3'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end_phone_3', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['background_color_gradient_end_phone_3'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_tablet_3', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['background_color_gradient_end_tablet_3'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_3', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['background_color_gradient_end_3'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position_phone_3', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['background_color_gradient_end_position_phone_3'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position_tablet_3', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['background_color_gradient_end_position_tablet_3'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position_3', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['background_color_gradient_end_position_3'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
 | 
						|
			// Hover Mode.
 | 
						|
			// If hover view settings are not found, check for desktop view settings and inherit (if found).
 | 
						|
			case 'background_color_gradient_stops__hover':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start__hover', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['background_color_gradient_start__hover'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['background_color_gradient_start'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position__hover', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['background_color_gradient_start_position__hover'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['background_color_gradient_start_position'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end__hover', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['background_color_gradient_end__hover'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['background_color_gradient_end'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position__hover', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['background_color_gradient_end_position__hover'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['background_color_gradient_end_position'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case 'button_bg_color_gradient_stops__hover':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_start__hover', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['button_bg_color_gradient_start__hover'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_start', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['button_bg_color_gradient_start'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_start_position__hover', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['button_bg_color_gradient_start_position__hover'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_start_position', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['button_bg_color_gradient_start_position'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_end__hover', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['button_bg_color_gradient_end__hover'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_end', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['button_bg_color_gradient_end'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_end_position__hover', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['button_bg_color_gradient_end_position__hover'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_end_position', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['button_bg_color_gradient_end_position'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case 'button_one_bg_color_gradient_stops__hover':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_start__hover', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['button_one_bg_color_gradient_start__hover'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_start', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['button_one_bg_color_gradient_start'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_start_position__hover', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['button_one_bg_color_gradient_start_position__hover'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_start_position', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['button_one_bg_color_gradient_start_position'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_end__hover', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['button_one_bg_color_gradient_end__hover'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_end', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['button_one_bg_color_gradient_end'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_end_position__hover', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['button_one_bg_color_gradient_end_position__hover'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_end_position', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['button_one_bg_color_gradient_end_position'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case 'button_two_bg_color_gradient_stops__hover':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_start__hover', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['button_two_bg_color_gradient_start__hover'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_start', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['button_two_bg_color_gradient_start'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_start_position__hover', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['button_two_bg_color_gradient_start_position__hover'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_start_position', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['button_two_bg_color_gradient_start_position'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_end__hover', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['button_two_bg_color_gradient_end__hover'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_end', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['button_two_bg_color_gradient_end'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_end_position__hover', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['button_two_bg_color_gradient_end_position__hover'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_end_position', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['button_two_bg_color_gradient_end_position'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case 'background_color_gradient_stops__hover_1':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start__hover_1', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['background_color_gradient_start__hover_1'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_1', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['background_color_gradient_start_1'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position__hover_1', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['background_color_gradient_start_position__hover_1'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position_1', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['background_color_gradient_start_position_1'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end__hover_1', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['background_color_gradient_end__hover_1'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_1', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['background_color_gradient_end_1'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position__hover_1', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['background_color_gradient_end_position__hover_1'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position_1', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['background_color_gradient_end_position_1'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case 'background_color_gradient_stops__hover_2':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start__hover_2', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['background_color_gradient_start__hover_2'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_2', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['background_color_gradient_start_2'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position__hover_2', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['background_color_gradient_start_position__hover_2'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position_2', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['background_color_gradient_start_position_2'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end__hover_2', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['background_color_gradient_end__hover_2'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_2', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['background_color_gradient_end_2'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position__hover_2', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['background_color_gradient_end_position__hover_2'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position_2', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['background_color_gradient_end_position_2'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case 'background_color_gradient_stops__hover_3':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start__hover_3', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['background_color_gradient_start__hover_3'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_3', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['background_color_gradient_start_3'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position__hover_3', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['background_color_gradient_start_position__hover_3'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position_3', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['background_color_gradient_start_position_3'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end__hover_3', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['background_color_gradient_end__hover_3'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_3', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['background_color_gradient_end_3'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position__hover_3', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['background_color_gradient_end_position__hover_3'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position_3', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['background_color_gradient_end_position_3'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
 | 
						|
			// Sticky Mode.
 | 
						|
			// If sticky view settings are not found, check for desktop view settings and inherit (if found).
 | 
						|
			case 'background_color_gradient_stops__sticky':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start__sticky', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['background_color_gradient_start__sticky'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['background_color_gradient_start'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position__sticky', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['background_color_gradient_start_position__sticky'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['background_color_gradient_start_position'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end__sticky', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['background_color_gradient_end__sticky'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['background_color_gradient_end'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position__sticky', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['background_color_gradient_end_position__sticky'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['background_color_gradient_end_position'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case 'button_bg_color_gradient_stops__sticky':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_start__sticky', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['button_bg_color_gradient_start__sticky'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_start', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['button_bg_color_gradient_start'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_start_position__sticky', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['button_bg_color_gradient_start_position__sticky'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_start_position', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['button_bg_color_gradient_start_position'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_end__sticky', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['button_bg_color_gradient_end__sticky'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_end', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['button_bg_color_gradient_end'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_end_position__sticky', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['button_bg_color_gradient_end_position__sticky'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_bg_color_gradient_end_position', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['button_bg_color_gradient_end_position'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case 'button_one_bg_color_gradient_stops__sticky':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_start__sticky', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['button_one_bg_color_gradient_start__sticky'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_start', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['button_one_bg_color_gradient_start'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_start_position__sticky', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['button_one_bg_color_gradient_start_position__sticky'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_start_position', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['button_one_bg_color_gradient_start_position'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_end__sticky', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['button_one_bg_color_gradient_end__sticky'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_end', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['button_one_bg_color_gradient_end'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_end_position__sticky', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['button_one_bg_color_gradient_end_position__sticky'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_one_bg_color_gradient_end_position', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['button_one_bg_color_gradient_end_position'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case 'button_two_bg_color_gradient_stops__sticky':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_start__sticky', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['button_two_bg_color_gradient_start__sticky'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_start', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['button_two_bg_color_gradient_start'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_start_position__sticky', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['button_two_bg_color_gradient_start_position__sticky'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_start_position', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['button_two_bg_color_gradient_start_position'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_end__sticky', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['button_two_bg_color_gradient_end__sticky'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_end', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['button_two_bg_color_gradient_end'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_end_position__sticky', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['button_two_bg_color_gradient_end_position__sticky'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'button_two_bg_color_gradient_end_position', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['button_two_bg_color_gradient_end_position'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case 'background_color_gradient_stops__sticky_1':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start__sticky_1', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['background_color_gradient_start__sticky_1'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_1', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['background_color_gradient_start_1'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position__sticky_1', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['background_color_gradient_start_position__sticky_1'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position_1', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['background_color_gradient_start_position_1'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end__sticky_1', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['background_color_gradient_end__sticky_1'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_1', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['background_color_gradient_end_1'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position__sticky_1', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['background_color_gradient_end_position__sticky_1'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position_1', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['background_color_gradient_end_position_1'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case 'background_color_gradient_stops__sticky_2':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start__sticky_2', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['background_color_gradient_start__sticky_2'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_2', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['background_color_gradient_start_2'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position__sticky_2', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['background_color_gradient_start_position__sticky_2'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position_2', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['background_color_gradient_start_position_2'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end__sticky_2', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['background_color_gradient_end__sticky_2'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_2', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['background_color_gradient_end_2'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position__sticky_2', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['background_color_gradient_end_position__sticky_2'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position_2', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['background_color_gradient_end_position_2'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case 'background_color_gradient_stops__sticky_3':
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start__sticky_3', $attrs ) ) {
 | 
						|
					$old_values['start_color'] = $attrs['background_color_gradient_start__sticky_3'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_3', $attrs ) ) {
 | 
						|
					$old_values['start_color']   = $attrs['background_color_gradient_start_3'];
 | 
						|
					$is_inherited['start_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position__sticky_3', $attrs ) ) {
 | 
						|
					$old_values['start_position'] = $attrs['background_color_gradient_start_position__sticky_3'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_start_position_3', $attrs ) ) {
 | 
						|
					$old_values['start_position']   = $attrs['background_color_gradient_start_position_3'];
 | 
						|
					$is_inherited['start_position'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end__sticky_3', $attrs ) ) {
 | 
						|
					$old_values['end_color'] = $attrs['background_color_gradient_end__sticky_3'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_3', $attrs ) ) {
 | 
						|
					$old_values['end_color']   = $attrs['background_color_gradient_end_3'];
 | 
						|
					$is_inherited['end_color'] = true;
 | 
						|
				}
 | 
						|
				if ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position__sticky_3', $attrs ) ) {
 | 
						|
					$old_values['end_position'] = $attrs['background_color_gradient_end_position__sticky_3'];
 | 
						|
				} elseif ( self::existsAndIsNotEmpty( 'background_color_gradient_end_position_3', $attrs ) ) {
 | 
						|
					$old_values['end_position']   = $attrs['background_color_gradient_end_position_3'];
 | 
						|
					$is_inherited['end_position'] = true;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
 | 
						|
			default:
 | 
						|
				// Bail, nothing to process.
 | 
						|
				return $current_value;
 | 
						|
		}
 | 
						|
 | 
						|
		// If we didn't find *any* old values, then bail--there's nothing to process here.
 | 
						|
		if ( empty( implode( '', $old_values ) ) ) {
 | 
						|
			return $current_value;
 | 
						|
		}
 | 
						|
 | 
						|
		// If *all* settings have been inherited, then return `null` to unset this attribute (don't pollute).
 | 
						|
		if ( $is_inherited['start_color'] && $is_inherited['start_position'] && $is_inherited['end_color'] && $is_inherited['end_position'] ) {
 | 
						|
			return null;
 | 
						|
		}
 | 
						|
 | 
						|
		// If colors or positions aren't defined, use the system default settings.
 | 
						|
		if ( empty( $old_values['start_color'] ) ) {
 | 
						|
			$old_values['start_color'] = $default_settings['start_color'];
 | 
						|
		}
 | 
						|
		if ( empty( $old_values['start_position'] ) ) {
 | 
						|
			$old_values['start_position'] = $default_settings['start_position'];
 | 
						|
		}
 | 
						|
		if ( empty( $old_values['end_color'] ) ) {
 | 
						|
			$old_values['end_color'] = $default_settings['end_color'];
 | 
						|
		}
 | 
						|
		if ( empty( $old_values['end_position'] ) ) {
 | 
						|
			$old_values['end_position'] = $default_settings['end_position'];
 | 
						|
		}
 | 
						|
 | 
						|
		// Strip percent signs and round to nearest int for our calculations.
 | 
						|
		$pos_start      = round( floatval( $old_values['start_position'] ) );
 | 
						|
		$pos_start_unit = trim( $old_values['start_position'], ',. 0..9' );
 | 
						|
		$pos_end        = round( floatval( $old_values['end_position'] ) );
 | 
						|
		$pos_end_unit   = trim( $old_values['end_position'], ',. 0..9' );
 | 
						|
 | 
						|
		// Our sliders use percent values, but pixel values might be manually set.
 | 
						|
		$pos_units_match = ( $pos_start_unit === $pos_end_unit );
 | 
						|
 | 
						|
		// If (and ONLY if) both values use the same unit of measurement,
 | 
						|
		// adjust the end position value to be no smaller than the start.
 | 
						|
		if ( $pos_units_match && $pos_end < $pos_start ) {
 | 
						|
			$pos_end = $pos_start;
 | 
						|
		}
 | 
						|
 | 
						|
		// Prepare to receive the new gradient settings.
 | 
						|
		$new_values = array(
 | 
						|
			'start' => $old_values['start_color'] . ' ' . $pos_start . $pos_start_unit,
 | 
						|
			'end'   => $old_values['end_color'] . ' ' . $pos_end . $pos_end_unit,
 | 
						|
		);
 | 
						|
 | 
						|
		// Compile and return the migrated value for the Gradient Stops attribute.
 | 
						|
		return implode( '|', $new_values );
 | 
						|
	}
 | 
						|
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Migrate.
 | 
						|
	 *
 | 
						|
	 * @param string        $to_field_name This migration's target field.
 | 
						|
	 * @param string|array  $affected_field_value Affected field reference value.
 | 
						|
	 * @param string|number $module_slug Current module type.
 | 
						|
	 * @param string        $to_field_value Migration target's current value.
 | 
						|
	 * @param string        $affected_field_name Affected field attribute name.
 | 
						|
	 * @param array         $module_attrs Current module's full attributes.
 | 
						|
	 * @param string        $module_content Current module's content.
 | 
						|
	 * @param string|number $module_address Current module's address.
 | 
						|
	 *
 | 
						|
	 * @return string
 | 
						|
	 *
 | 
						|
	 * @since 4.16.0
 | 
						|
	 */
 | 
						|
	public function migrate(
 | 
						|
		$to_field_name,
 | 
						|
		$affected_field_value,
 | 
						|
		$module_slug,
 | 
						|
		$to_field_value,
 | 
						|
		$affected_field_name,
 | 
						|
		$module_attrs,
 | 
						|
		$module_content,
 | 
						|
		$module_address
 | 
						|
	) {
 | 
						|
		if ( in_array( $affected_field_name, self::gradientTypeFields(), true ) ) {
 | 
						|
			// Migrate the gradient type.
 | 
						|
			$to_field_value = self::migrateGradientType( $affected_field_value );
 | 
						|
		} else {
 | 
						|
			// Migrate gradient stops.
 | 
						|
			$to_field_value = self::migrateGradientStops( $affected_field_name, $affected_field_value, $module_attrs );
 | 
						|
		}
 | 
						|
 | 
						|
		return $to_field_value;
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
return new ET_Builder_Module_Settings_Migration_BackgroundGradientStops();
 |