File "class-style-manager.php"

Full Path: /home/vantageo/public_html/cache/cache/.wp-cli/wp-content/plugins/responsive-menu/v4.0.0/inc/classes/class-style-manager.php
File size: 59.75 KB
MIME-type: text/x-php
Charset: utf-8

<?php
/**
 * This file contain the Style_Manager class and it's functions.
 *
 * @version 4.0.0
 * @author  Expresstech System
 *
 * @package responsive-menu
 */

namespace RMP\Features\Inc;

use RMP\Features\Inc\Option_Manager;
use RMP\Features\Inc\Traits\Singleton;
use ScssPhp\ScssPhp\Compiler;
use \Exception;

// Disable the direct access to this class.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class Style_Manager
 *
 * This class is responsible for handle the styling from frontend.
 *
 * @version 4.0.0
 */
class Style_Manager {

	use Singleton;

	/**
	 * Instance of option manager class.
	 *
	 * @version 4.0.0
	 *
	 * @var array $option_manager.
	 */
	protected $option_manager;

	/**
	 * Construct method.
	 */
	protected function __construct() {
		$this->option_manager = Option_Manager::get_instance();
		$this->setup_hooks();
	}

	/**
	 * To setup action/filter.
	 *
	 * @version 4.0.0
	 *
	 * @return void
	 */
	protected function setup_hooks() {
		add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_styles_as_inline' ) );
		add_action( 'wp_enqueue_scripts', array( $this, 'add_rmp_menu_frontend_scripts' ) );
		add_action( 'rmp_create_new_menu', array( $this, 'save_style_css_on_file' ), 10, 0 );
		add_action( 'rmp_save_menu', array( $this, 'save_style_css_on_file' ), 10, 0 );
		add_action( 'rmp_update_mega_menu_item', array( $this, 'save_style_css_on_file' ), 10, 0 );
		add_action( 'rmp_save_global_settings', array( $this, 'save_style_css_on_file' ), 10, 0 );
		add_action( 'rmp_theme_apply', array( $this, 'save_style_css_on_file' ), 10, 0 );
		add_action( 'rmp_migrate_menu_style', array( $this, 'save_style_css_on_file' ), 10, 0 );
		add_action( 'rmp_import_menu', array( $this, 'save_style_css_on_file' ), 10, 0 );
		add_action('after_setup_theme', array( $this, 'rm_add_classic_menu_support' ) );

		// Hide adminbar.
		if ( 'hide' == $this->option_manager->get_global_option( 'menu_adjust_for_wp_admin_bar' ) ) {
			add_filter( 'show_admin_bar', '__return_false' );
		}
	}

	/**
	 * Function to call the css generate for all menu one by one.
	 *
	 * @return string $css
	 */
	public function get_menus_scss_to_css() {
		$menu_ids = get_all_rmp_menu_ids();

		if ( empty( $menu_ids ) ) {
			return;
		}

		$css = '';
		foreach ( $menu_ids as $menu_id ) {
			$css .= $this->get_css_for_menu( $menu_id );
		}

		$css .= $this->get_common_scss_to_css();

		// Add custom css from setting page.
		$css .= $this->option_manager->get_global_option( 'rmp_custom_css' );

		// If minify is enable from settings then minify the style css.
		if ( 'on' === $this->option_manager->get_global_option( 'rmp_minify_scripts' ) ) {
			$css = $this->minify( $css );
		}

		return $css;
	}

	/**
	 * Function to save the css in files.
	 */
	public function save_style_css_on_file() {
		global $wp_filesystem;
		update_option('rmp_dynamic_file_version', current_time('H.i.s') );
		if ( empty( $wp_filesystem ) ) {
			require_once ABSPATH . 'wp-admin/includes/file.php';
		}

		WP_Filesystem();

		$upload_dir = wp_upload_dir();

		$dir = trailingslashit( $upload_dir['basedir'] ) . 'rmp-menu/css/';

		if ( ! $wp_filesystem->is_dir( $dir ) ) {
			wp_mkdir_p( $dir );
		}

		$css = $this->get_menus_scss_to_css();

		if ( ! $wp_filesystem->put_contents( $dir . 'rmp-menu.css', $css, 0644 ) ) {
			return new \WP_Error( 'Notice: Unable to write css in file.' );
		}
	}

	/**
	 * Enqueue the stylesheet held on the filesystem.
	 */
	public function enqueue_styles_as_file() {
		$upload_dir = wp_upload_dir();

		$filename = 'rmp-menu.css';

		$file_path = trailingslashit( $upload_dir['basedir'] ) . 'rmp-menu/css/' . $filename;

		// If file is not exist then create it.
		if ( ! file_exists( $file_path ) ) {
			$this->save_style_css_on_file();
		}

		if ( file_exists( $file_path ) ) {
			$file_url = trailingslashit( $upload_dir['baseurl'] ) . 'rmp-menu/css/' . $filename;

			$protocol = is_ssl() ? 'https://' : 'http://';

			// Ensure we're using the correct protocol.
			$file_url = str_replace( array( 'http://', 'https://' ), $protocol, $file_url );

			wp_enqueue_style( 'rmp-menu-styles', $file_url, false, get_option('rmp_dynamic_file_version', wp_rand( 100, 1000 ) ) );
		}
	}

	/**
	 * Function to minify the css to reduce the file size.
	 *
	 * @param string $row_css
	 *
	 * @return string $minified
	 */
	public function minify( $row_css ) {

		// Remove comments.
		$minified = preg_replace( '!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $row_css );

		// Remove tabs, spaces, newlines, etc.
		$minified = str_replace( array( "\r\n", "\r", "\n", "\t", '  ', '    ', '     ' ), '', $minified );

		// Remove other spaces before/after.
		$minified = preg_replace( array( '(( )+{)', '({( )+)' ), '{', $minified );
		$minified = preg_replace( array( '(( )+})', '(}( )+)', '(;( )*})' ), '}', $minified );
		$minified = preg_replace( array( '(;( )+)', '(( )+;)' ), ';', $minified );

		return $minified;
	}

	/**
	 * Function to combine the options of all the menus.
	 *
	 * @version 4.0.0
	 *
	 * @return array $options;
	 */
	public function get_all_menu_options() {
		$menu_ids     = get_all_rmp_menu_ids();
		$menu_options = array();

		foreach ( $menu_ids as $menu_id ) {
			$options                             = $this->option_manager->get_options( $menu_id );
			$options['active_toggle_contents']   = $this->get_active_toggle_contents( $options );
			$options['inactive_toggle_contents'] = $this->get_inactive_toggle_contents( $options );

			$menu_options[] = $options;
		}

		return $menu_options;
	}

	/**
	 * Function get the active item toggle icon.
	 *
	 * @version 4.0.0
	 *
	 * @param array options
	 * @return HTML
	 */
	public function get_active_toggle_contents( $options ) {
		if ( ! empty( $options['active_arrow_font_icon'] ) ) {
			return $options['active_arrow_font_icon'];
		} elseif ( ! empty( $options['active_arrow_image'] ) ) {
			return sprintf(
				'<img alt="%s" src="%s" />',
				rmp_image_alt_by_url( $options['active_arrow_image'] ),
				esc_url( $options['active_arrow_image'] )
			);
		} else {
			return $options['active_arrow_shape'];
		}
	}

	/**
	 * Function get the inactive item toggle icon.
	 *
	 * @version 4.0.0
	 *
	 * @param array options
	 * @return HTML
	 */
	public function get_inactive_toggle_contents( $options ) {
		if ( ! empty( $options['inactive_arrow_font_icon'] ) ) {
			return $options['inactive_arrow_font_icon'];
		} elseif ( ! empty( $options['inactive_arrow_image'] ) ) {
			return sprintf(
				'<img alt="%s" src="%s" />',
				rmp_image_alt_by_url( $options['inactive_arrow_image'] ),
				esc_url( $options['inactive_arrow_image'] )
			);
		} else {
			return $options['inactive_arrow_shape'];
		}
	}

	/**
	 * Add menu scripts for frontend.
	 */
	public function add_rmp_menu_frontend_scripts() {
		$in_footer = false;
		if ( 'on' === $this->option_manager->get_global_option( 'rmp_scripts_in_footer' ) ) {
			$in_footer = true;
		}

		wp_enqueue_script( 'jquery' );

		$rmp_front_js_path = '/assets/js/rmp-menu.js';
		if ( 'on' === $this->option_manager->get_global_option( 'rmp_minify_scripts' ) ) {
			$rmp_front_js_path = '/assets/js/rmp-menu.min.js';
		}
		wp_register_script(
			'rmp_menu_scripts',
			RMP_PLUGIN_URL_V4 . $rmp_front_js_path,
			array( 'jquery' ),
			RMP_PLUGIN_VERSION,
			$in_footer
		);

		wp_localize_script(
			'rmp_menu_scripts',
			'rmp_menu',
			array(
				'ajaxURL'  => admin_url( 'admin-ajax.php' ),
				'wp_nonce' => wp_create_nonce( 'ajax-nonce' ),
				'menu'     => $this->get_all_menu_options(),
			)
		);

		wp_enqueue_script( 'rmp_menu_scripts' );

		if ( 'on' != $this->option_manager->get_global_option( 'rmp_remove_dashicons' ) ) {
			wp_enqueue_style( 'dashicons' );
		}

		if ( 'on' === $this->option_manager->get_global_option( 'rmp_external_files' ) ) {
			$this->enqueue_styles_as_file();
		}

		/**
		 * Fires after frontend scripts are enqueued.
		 *
		 * @since 4.0.4
		 */
		do_action( 'after_rmp_enqueue_frontend_scripts' );
	}

	/**
	 * This function enqueue inline the menu style css.
	 *
	 * @version 4.0.0
	 */
	public function enqueue_styles_as_inline() {
		if ( 'on' == $this->option_manager->get_global_option( 'rmp_external_files' ) ) {
			return;
		}

		$css = $this->get_menus_scss_to_css();
		wp_register_style( 'responsive-menu', false, array(), RMP_PLUGIN_VERSION );
		wp_enqueue_style( 'responsive-menu' );
		wp_add_inline_style( 'responsive-menu', $css );
	}

	/**
	 * This function convert the scss to css for menu.
	 *
	 * @param int $menu_id  This is menu id for which converting the scss to css.
	 *
	 * @return string|WP_Error
	 */
	public function get_css_for_menu( $menu_id ) {
		try {
			$options = $this->option_manager->get_options( $menu_id );

			$is_legacy = 'off';
			if ( ! empty( get_option( 'responsive_menu_version' ) ) ) {
				$is_legacy = 'on';
			}

			$tablet_breakpoint = '';
			if ( ! empty( $options['tablet_breakpoint'] ) ) {
				$tablet_breakpoint = $options['tablet_breakpoint'] . 'px';
			}

			$menu_trigger_id = '';
			if ( ! empty( $options['menu_id'] ) ) {
				$menu_trigger_id = '#rmp_menu_trigger-' . $options['menu_id'];
			}

			$button_position_type = '';
			if ( ! empty( $options['button_position_type'] ) ) {
				$button_position_type = $options['button_position_type'];
			}

			$menu_trigger_side = '';
			if ( ! empty( $options['button_left_or_right'] ) ) {
				$menu_trigger_side = $options['button_left_or_right'];
			}

			$button_distance_from_side = '0';
			if ( ! empty( $options['button_distance_from_side'] ) ) {
				$button_distance_from_side = $options['button_distance_from_side'] . $options['button_distance_from_side_unit'];
			}

			$menu_trigger_distance_from_top = '0';
			if ( ! empty( $options['button_top'] ) ) {
				$menu_trigger_distance_from_top = $options['button_top'] . $options['button_top_unit'];
			}

			$menu_trigger_width = '';
			if ( ! empty( $options['button_width'] ) ) {
				$menu_trigger_width = $options['button_width'] . $options['button_width_unit'];
			}

			$menu_trigger_height = '';
			if ( ! empty( $options['button_height'] ) ) {
				$menu_trigger_height = $options['button_height'] . $options['button_height_unit'];
			}

			$menu_trigger_background_color = 'inherit';
			if ( ! empty( $options['button_background_colour'] ) ) {
				$menu_trigger_background_color = $options['button_background_colour'];
			}

			$menu_trigger_background_color_hover = 'inherit';
			if ( ! empty( $options['button_background_colour_hover'] ) ) {
				$menu_trigger_background_color_hover = $options['button_background_colour_hover'];
			}

			$menu_trigger_active_color = 'inherit';
			if ( ! empty( $options['button_background_colour_active'] ) ) {
				$menu_trigger_active_color = $options['button_background_colour_active'];
			}

			$toggle_button_border_radius = '0';
			if ( ! empty( $options['toggle_button_border_radius'] ) ) {
				$toggle_button_border_radius = $options['toggle_button_border_radius'];
			}

			$menu_trigger_transparent_background = '';
			if ( ! empty( $options['button_transparent_background'] ) ) {
				$menu_trigger_transparent_background = $options['button_transparent_background'];
			}

			$menu_trigger_line_color = 'inherit';
			if ( ! empty( $options['button_line_colour'] ) ) {
				$menu_trigger_line_color = $options['button_line_colour'];
			}

			$menu_trigger_line_color_hover = 'inherit';
			if ( ! empty( $options['button_line_colour_hover'] ) ) {
				$menu_trigger_line_color_hover = $options['button_line_colour_hover'];
			}

			$menu_trigger_line_active_color = 'inherit';
			if ( ! empty( $options['button_line_colour_active'] ) ) {
				$menu_trigger_line_active_color = $options['button_line_colour_active'];
			}

			$menu_trigger_title_color = 'inherit';
			if ( ! empty( $options['button_text_colour'] ) ) {
				$menu_trigger_title_color = $options['button_text_colour'];
			}

			$menu_trigger_title_line_height = '';
			if ( ! empty( $options['button_title_line_height'] ) ) {
				$menu_trigger_title_line_height = $options['button_title_line_height'] . $options['button_title_line_height_unit'];
			}

			$menu_trigger_title_font_size = '';
			if ( ! empty( $options['button_font_size'] ) ) {
				$menu_trigger_title_font_size = $options['button_font_size'] . $options['button_font_size_unit'];
			}

			$menu_trigger_title_font = '';
			if ( ! empty( $options['button_font'] ) ) {
				$menu_trigger_title_font = $options['button_font'];
			}

			$menu_trigger_line_height = '';
			if ( ! empty( $options['button_line_height'] ) ) {
				$menu_trigger_line_height = $options['button_line_height'];
			}

			$menu_trigger_line_height_unit = '';
			if ( ! empty( $options['button_line_height_unit'] ) ) {
				$menu_trigger_line_height_unit = $options['button_line_height_unit'];
			}

			$menu_trigger_line_width = '';
			if ( ! empty( $options['button_line_width'] ) ) {
				$menu_trigger_line_width = $options['button_line_width'];
			}

			$menu_trigger_line_width_unit = '';
			if ( ! empty( $options['button_line_width_unit'] ) ) {
				$menu_trigger_line_width_unit = $options['button_line_width_unit'];
			}

			$menu_trigger_line_margin = '';
			if ( ! empty( $options['button_line_margin'] ) ) {
				$menu_trigger_line_margin = get_post_meta( $menu_id, 'rmp_lagecy_menu_line_space', true ) ? $options['button_line_margin'] : 10;
			}

			$menu_trigger_line_margin_unit = '';
			if ( ! empty( $options['button_line_margin_unit'] ) ) {
				$menu_trigger_line_margin_unit = $options['button_line_margin_unit'];
			}

			$menu_search_box_wrap = '';
			if ( ! empty( $options['menu_id'] ) ) {
				$menu_search_box_wrap = '#rmp-search-box-' . $options['menu_id'];
			}

			$menu_search_section_padding_left = '';
			if ( ! empty( $options['menu_search_section_padding']['left'] ) ) {
				$menu_search_section_padding_left = $options['menu_search_section_padding']['left'];
			}

			$menu_search_section_padding_top = '';
			if ( ! empty( $options['menu_search_section_padding']['top'] ) ) {
				$menu_search_section_padding_top = $options['menu_search_section_padding']['top'];
			}

			$menu_search_section_padding_right = '';
			if ( ! empty( $options['menu_search_section_padding']['right'] ) ) {
				$menu_search_section_padding_right = $options['menu_search_section_padding']['right'];
			}

			$menu_search_section_padding_bottom = '';
			if ( ! empty( $options['menu_search_section_padding']['bottom'] ) ) {
				$menu_search_section_padding_bottom = $options['menu_search_section_padding']['bottom'];
			}

			$menu_search_box_text_color = 'inherit';
			if ( ! empty( $options['menu_search_box_text_colour'] ) ) {
				$menu_search_box_text_color = $options['menu_search_box_text_colour'];
			}

			$menu_search_box_background_color = 'inherit';
			if ( ! empty( $options['menu_search_box_background_colour'] ) ) {
				$menu_search_box_background_color = $options['menu_search_box_background_colour'];
			}

			$menu_search_box_border_color = 'currentColor';
			if ( ! empty( $options['menu_search_box_border_colour'] ) ) {
				$menu_search_box_border_color = $options['menu_search_box_border_colour'];
			}

			$menu_search_box_placeholder_color = 'inherit';
			if ( ! empty( $options['menu_search_box_placeholder_colour'] ) ) {
				$menu_search_box_placeholder_color = $options['menu_search_box_placeholder_colour'];
			}

			$menu_search_box_border_radius = '0';
			if ( ! empty( $options['menu_search_box_border_radius'] ) ) {
				$menu_search_box_border_radius = $options['menu_search_box_border_radius'] . 'px';
			}

			$menu_search_box_height = '';
			if ( ! empty( $options['menu_search_box_height'] ) ) {
				$menu_search_box_height = $options['menu_search_box_height'];
			}

			$menu_search_box_height_unit = '';
			if ( ! empty( $options['menu_search_box_height_unit'] ) ) {
				$menu_search_box_height_unit = $options['menu_search_box_height_unit'];
			}

			$menu_additional_content_wrap = '';
			if ( ! empty( $options['menu_id'] ) ) {
				$menu_additional_content_wrap = '#rmp-menu-additional-content-' . $options['menu_id'];
			}

			$menu_additional_section_padding_left = '';
			if ( ! empty( $options['menu_additional_section_padding']['left'] ) ) {
				$menu_additional_section_padding_left = $options['menu_additional_section_padding']['left'];
			}

			$menu_additional_section_padding_top = '';
			if ( ! empty( $options['menu_additional_section_padding']['top'] ) ) {
				$menu_additional_section_padding_top = $options['menu_additional_section_padding']['top'];
			}

			$menu_additional_section_padding_right = '';
			if ( ! empty( $options['menu_additional_section_padding']['right'] ) ) {
				$menu_additional_section_padding_right = $options['menu_additional_section_padding']['right'];
			}

			$menu_additional_section_padding_bottom = '';
			if ( ! empty( $options['menu_additional_section_padding']['bottom'] ) ) {
				$menu_additional_section_padding_bottom = $options['menu_additional_section_padding']['bottom'];
			}

			$menu_additional_content_color = 'inherit';
			if ( ! empty( $options['menu_additional_content_colour'] ) ) {
				$menu_additional_content_color = $options['menu_additional_content_colour'];
			}

			$menu_additional_content_alignment = '';
			if ( ! empty( $options['menu_additional_content_alignment'] ) ) {
				$menu_additional_content_alignment = $options['menu_additional_content_alignment'];
			}

			$menu_additional_content_font_size = '';
			if ( ! empty( $options['menu_additional_content_font_size'] ) ) {
				$menu_additional_content_font_size = $options['menu_additional_content_font_size'];
			}

			$menu_additional_content_font_size_unit = '';
			if ( ! empty( $options['menu_additional_content_font_size_unit'] ) ) {
				$menu_additional_content_font_size_unit = $options['menu_additional_content_font_size_unit'];
			}

			$menu_title_wrap = '';
			if ( ! empty( $options['menu_id'] ) ) {
				$menu_title_wrap = '#rmp-menu-title-' . $options['menu_id'];
			}

			$menu_title_section_padding_left = '';
			if ( ! empty( $options['menu_title_section_padding']['left'] ) ) {
				$menu_title_section_padding_left = $options['menu_title_section_padding']['left'];
			}

			$menu_title_section_padding_top = '';
			if ( ! empty( $options['menu_title_section_padding']['top'] ) ) {
				$menu_title_section_padding_top = $options['menu_title_section_padding']['top'];
			}

			$menu_title_section_padding_right = '';
			if ( ! empty( $options['menu_title_section_padding']['right'] ) ) {
				$menu_title_section_padding_right = $options['menu_title_section_padding']['right'];
			}

			$menu_title_section_padding_bottom = '';
			if ( ! empty( $options['menu_title_section_padding']['bottom'] ) ) {
				$menu_title_section_padding_bottom = $options['menu_title_section_padding']['bottom'];
			}

			$menu_title_background = 'inherit';
			if ( ! empty( $options['menu_title_background_colour'] ) ) {
				$menu_title_background = $options['menu_title_background_colour'];
			}

			$menu_title_background_hover = 'inherit';
			if ( ! empty( $options['menu_title_background_hover_colour'] ) ) {
				$menu_title_background_hover = $options['menu_title_background_hover_colour'];
			}

			$menu_title_font_family = '';
			if ( ! empty( $options['menu_title_font_family'] ) ) {
				$menu_title_font_family = $options['menu_title_font_family'];
			}

			$menu_title_font_weight = '';
			if ( ! empty( $options['menu_title_font_weight'] ) ) {
				$menu_title_font_weight = $options['menu_title_font_weight'];
			}

			$menu_title_font_color = 'inherit';
			if ( ! empty( $options['menu_title_colour'] ) ) {
				$menu_title_font_color = $options['menu_title_colour'];
			}

			$menu_title_font_color_hover = 'inherit';
			if ( ! empty( $options['menu_title_hover_colour'] ) ) {
				$menu_title_font_color_hover = $options['menu_title_hover_colour'];
			}

			$menu_title_text_alignment = '';
			if ( ! empty( $options['menu_title_alignment'] ) ) {
				$menu_title_text_alignment = $options['menu_title_alignment'];
			}

			$menu_title_font_size = '';
			if ( ! empty( $options['menu_title_font_size'] ) ) {
				$menu_title_font_size = $options['menu_title_font_size'] . 'px';
			}

			$menu_title_image_width = '';
			if ( ! empty( $options['menu_title_image_width'] ) ) {
				$menu_title_image_width = $options['menu_title_image_width'] . $options['menu_title_image_width_unit'];
			}

			$menu_title_image_height = '';
			if ( ! empty( $options['menu_title_image_height'] ) ) {
				$menu_title_image_height = $options['menu_title_image_height'] . $options['menu_title_image_height_unit'];
			}

			$menu_container = '';
			if ( ! empty( $options['menu_id'] ) ) {
				$menu_container = '#rmp-container-' . $options['menu_id'];
			}

			$menu_container_padding_left = '';
			if ( ! empty( $options['menu_container_padding']['left'] ) ) {
				$menu_container_padding_left = $options['menu_container_padding']['left'];
			}

			$menu_container_padding_top = '';
			if ( ! empty( $options['menu_container_padding']['top'] ) ) {
				$menu_container_padding_top = $options['menu_container_padding']['top'];
			}

			$menu_container_padding_right = '';
			if ( ! empty( $options['menu_container_padding']['right'] ) ) {
				$menu_container_padding_right = $options['menu_container_padding']['right'];
			}

			$menu_container_padding_bottom = '';
			if ( ! empty( $options['menu_container_padding']['bottom'] ) ) {
				$menu_container_padding_bottom = $options['menu_container_padding']['bottom'];
			}

			$menu_width = '';
			if ( ! empty( $options['menu_width'] ) ) {
				$menu_width = $options['menu_width'];
			}

			$menu_width_unit = '';
			if ( ! empty( $options['menu_width_unit'] ) ) {
				$menu_width_unit = $options['menu_width_unit'];
			}

			$menu_maximum_width = '';
			if ( ! empty( $options['menu_maximum_width'] ) ) {
				$menu_maximum_width = $options['menu_maximum_width'];
			}

			$menu_maximum_width_unit = '';
			if ( ! empty( $options['menu_maximum_width_unit'] ) ) {
				$menu_maximum_width_unit = $options['menu_maximum_width_unit'];
			}

			$menu_minimum_width = '';
			if ( ! empty( $options['menu_minimum_width'] ) ) {
				$menu_minimum_width = $options['menu_minimum_width'];
			}

			$menu_minimum_width_unit = '';
			if ( ! empty( $options['menu_minimum_width_unit'] ) ) {
				$menu_minimum_width_unit = $options['menu_minimum_width_unit'];
			}

			$menu_container_background_colour = '';
			if ( ! empty( $options['menu_container_background_colour'] ) ) {
				$menu_container_background_colour = $options['menu_container_background_colour'];
			}

			$menu_container_background_image = '';
			if ( ! empty( $options['menu_background_image'] ) ) {
				$menu_container_background_image = $options['menu_background_image'];
			}

			$menu_container_appear_from = '';
			if ( ! empty( $options['menu_appear_from'] ) ) {
				$menu_container_appear_from = $options['menu_appear_from'];
			}

			$page_wrapper = '';
			if ( ! empty( $options['page_wrapper'] ) ) {
				$page_wrapper = $options['page_wrapper'];
			}

			$menu_wrap = '';
			if ( ! empty( $options['menu_id'] ) ) {
				$menu_wrap = '#rmp-menu-wrap-' . $options['menu_id'];
			}

			$menu_section_padding_left = '';
			if ( ! empty( $options['menu_section_padding']['left'] ) ) {
				$menu_section_padding_left = $options['menu_section_padding']['left'];
			}

			$menu_section_padding_top = '';
			if ( ! empty( $options['menu_section_padding']['top'] ) ) {
				$menu_section_padding_top = $options['menu_section_padding']['top'];
			}

			$menu_section_padding_right = '';
			if ( ! empty( $options['menu_section_padding']['right'] ) ) {
				$menu_section_padding_right = $options['menu_section_padding']['right'];
			}

			$menu_section_padding_bottom = '';
			if ( ! empty( $options['menu_section_padding']['bottom'] ) ) {
				$menu_section_padding_bottom = $options['menu_section_padding']['bottom'];
			}

			$menu_background_color = '';
			if ( ! empty( $options['menu_background_colour'] ) ) {
				$menu_background_color = $options['menu_background_colour'];
			}

			$menu_item_height = '';
			if ( ! empty( $options['menu_links_height'] ) ) {
				$menu_item_height = $options['menu_links_height'];
			}

			$menu_container_columns = '';
			if ( ! empty( $options['menu_container_columns'] ) ) {
				$menu_container_columns = $options['menu_container_columns'];
			}

			$menu_item_height_unit = '';
			if ( ! empty( $options['menu_links_height_unit'] ) ) {
				$menu_item_height_unit = $options['menu_links_height_unit'];
			}

			$menu_item_line_height = '';
			if ( ! empty( $options['menu_links_line_height'] ) ) {
				$menu_item_line_height = $options['menu_links_line_height'];
			}

			$menu_item_line_height_unit = '';
			if ( ! empty( $options['menu_links_line_height_unit'] ) ) {
				$menu_item_line_height_unit = $options['menu_links_line_height_unit'];
			}

			$menu_item_font_weight = 'intial';
			if ( ! empty( $options['menu_font_weight'] ) ) {
				$menu_item_font_weight = $options['menu_font_weight'];
			}

			$menu_item_letter_spacing = '0';
			if ( ! empty( $options['menu_text_letter_spacing'] ) ) {
				$menu_item_letter_spacing = $options['menu_text_letter_spacing'];
			}

			$submenu_text_letter_spacing = '0';
			if ( ! empty( $options['submenu_text_letter_spacing'] ) ) {
				$submenu_text_letter_spacing = $options['submenu_text_letter_spacing'];
			}

			$menu_item_border_width = '0';
			if ( ! empty( $options['menu_border_width'] ) ) {
				$menu_item_border_width = $options['menu_border_width'];
			}

			$menu_item_border_width_unit = '';
			if ( ! empty( $options['menu_border_width_unit'] ) ) {
				$menu_item_border_width_unit = $options['menu_border_width_unit'];
			}

			$menu_item_border_color = 'currentColor';
			if ( ! empty( $options['menu_item_border_colour'] ) ) {
				$menu_item_border_color = $options['menu_item_border_colour'];
			}

			$menu_item_border_color_hover = '';
			if ( ! empty( $options['menu_item_border_colour_hover'] ) ) {
				$menu_item_border_color_hover = $options['menu_item_border_colour_hover'];
			}

			$menu_current_item_border_color = 'currentColor';
			if ( ! empty( $options['menu_current_item_border_colour'] ) ) {
				$menu_current_item_border_color = $options['menu_current_item_border_colour'];
			}

			$menu_current_item_border_color_hover = '';
			if ( ! empty( $options['menu_current_item_border_hover_colour'] ) ) {
				$menu_current_item_border_color_hover = $options['menu_current_item_border_hover_colour'];
			}

			$menu_item_font_size = '';
			if ( ! empty( $options['menu_font_size'] ) ) {
				$menu_item_font_size = $options['menu_font_size'];
			}

			$menu_item_font_size_unit = '';
			if ( ! empty( $options['menu_font_size_unit'] ) ) {
				$menu_item_font_size_unit = $options['menu_font_size_unit'];
			}

			$menu_item_font_family = '';
			if ( ! empty( $options['menu_font'] ) ) {
				$menu_item_font_family = $options['menu_font'];
			}

			$menu_item_text_alignment = '';
			if ( ! empty( $options['menu_text_alignment'] ) ) {
				$menu_item_text_alignment = $options['menu_text_alignment'];
			}

			$menu_item_text_color = 'inherit';
			if ( ! empty( $options['menu_link_colour'] ) ) {
				$menu_item_text_color = $options['menu_link_colour'];
			}

			$menu_item_text_color_hover = 'inherit';
			if ( ! empty( $options['menu_link_hover_colour'] ) ) {
				$menu_item_text_color_hover = $options['menu_link_hover_colour'];
			}

			$menu_current_item_text_color = 'inherit';
			if ( ! empty( $options['menu_current_link_colour'] ) ) {
				$menu_current_item_text_color = $options['menu_current_link_colour'];
			}

			$menu_current_item_text_color_hover = 'inherit';
			if ( ! empty( $options['menu_current_link_hover_colour'] ) ) {
				$menu_current_item_text_color_hover = $options['menu_current_link_hover_colour'];
			}

			$menu_item_background_color = 'inherit';
			if ( ! empty( $options['menu_item_background_colour'] ) ) {
				$menu_item_background_color = $options['menu_item_background_colour'];
			}

			$menu_item_background_color_hover = 'inherit';
			if ( ! empty( $options['menu_item_background_hover_colour'] ) ) {
				$menu_item_background_color_hover = $options['menu_item_background_hover_colour'];
			}

			$menu_current_item_background_color = 'inherit';
			if ( ! empty( $options['menu_current_item_background_colour'] ) ) {
				$menu_current_item_background_color = $options['menu_current_item_background_colour'];
			}

			$menu_current_item_background_color_hover = 'inherit';
			if ( ! empty( $options['menu_current_item_background_hover_colour'] ) ) {
				$menu_current_item_background_color_hover = $options['menu_current_item_background_hover_colour'];
			}

			$menu_item_padding = '';
			if ( ! empty( $options['menu_depth_0'] ) ) {
				$menu_item_padding = $options['menu_depth_0'];
			}

			$menu_item_padding_unit = '';
			if ( ! empty( $options['menu_depth_0_unit'] ) ) {
				$menu_item_padding_unit = $options['menu_depth_0_unit'];
			}

			$menu_depth_side = '';
			if ( ! empty( $options['menu_depth_side'] ) ) {
				$menu_depth_side = $options['menu_depth_side'];
			}

			$menu_item_padding_depth_1 = '';
			if ( ! empty( $options['menu_depth_1'] ) ) {
				$menu_item_padding_depth_1 = $options['menu_depth_1'];
			}

			$menu_item_padding_depth_1_unit = '';
			if ( ! empty( $options['menu_depth_1_unit'] ) ) {
				$menu_item_padding_depth_1_unit = $options['menu_depth_1_unit'];
			}

			$menu_item_padding_depth_2 = '';
			if ( ! empty( $options['menu_depth_2'] ) ) {
				$menu_item_padding_depth_2 = $options['menu_depth_2'];
			}

			$menu_item_padding_depth_2_unit = '';
			if ( ! empty( $options['menu_depth_2_unit'] ) ) {
				$menu_item_padding_depth_2_unit = $options['menu_depth_2_unit'];
			}

			$menu_item_padding_depth_3 = '';
			if ( ! empty( $options['menu_depth_3'] ) ) {
				$menu_item_padding_depth_3 = $options['menu_depth_3'];
			}

			$menu_item_padding_depth_3_unit = '';
			if ( ! empty( $options['menu_depth_3_unit'] ) ) {
				$menu_item_padding_depth_3_unit = $options['menu_depth_3_unit'];
			}

			$menu_item_padding_depth_4 = '';
			if ( ! empty( $options['menu_depth_4'] ) ) {
				$menu_item_padding_depth_4 = $options['menu_depth_4'];
			}

			$menu_item_padding_depth_4_unit = '';
			if ( ! empty( $options['menu_depth_4_unit'] ) ) {
				$menu_item_padding_depth_4_unit = $options['menu_depth_4_unit'];
			}

			$menu_word_wrap = '';
			if ( ! empty( $options['menu_word_wrap'] ) ) {
				$menu_word_wrap = $options['menu_word_wrap'];
			}

			$menu_item_toggle_position = '';
			if ( ! empty( $options['arrow_position'] ) ) {
				$menu_item_toggle_position = $options['arrow_position'];
			}

			$menu_item_toggle_height = '';
			if ( ! empty( $options['submenu_arrow_height'] ) ) {
				$menu_item_toggle_height = $options['submenu_arrow_height'];
			}

			$menu_item_toggle_height_unit = '';
			if ( ! empty( $options['submenu_arrow_height_unit'] ) ) {
				$menu_item_toggle_height_unit = $options['submenu_arrow_height_unit'];
			}

			$menu_item_toggle_width = '';
			if ( ! empty( $options['submenu_arrow_width'] ) ) {
				$menu_item_toggle_width = $options['submenu_arrow_width'];
			}

			$menu_item_toggle_width_unit = '';
			if ( ! empty( $options['submenu_arrow_width_unit'] ) ) {
				$menu_item_toggle_width_unit = $options['submenu_arrow_width_unit'];
			}

			$menu_item_toggle_text_color = 'inherit';
			if ( ! empty( $options['menu_sub_arrow_shape_colour'] ) ) {
				$menu_item_toggle_text_color = $options['menu_sub_arrow_shape_colour'];
			}

			$menu_item_toggle_text_color_hover = 'inherit';
			if ( ! empty( $options['menu_sub_arrow_shape_hover_colour'] ) ) {
				$menu_item_toggle_text_color_hover = $options['menu_sub_arrow_shape_hover_colour'];
			}

			$menu_current_item_toggle_text_color = 'inherit';
			if ( ! empty( $options['menu_sub_arrow_shape_colour_active'] ) ) {
				$menu_current_item_toggle_text_color = $options['menu_sub_arrow_shape_colour_active'];
			}

			$menu_current_item_toggle_text_color_hover = 'inherit';
			if ( ! empty( $options['menu_sub_arrow_shape_hover_colour_active'] ) ) {
				$menu_current_item_toggle_text_color_hover = $options['menu_sub_arrow_shape_hover_colour_active'];
			}

			$menu_item_toggle_background_color = 'inherit';
			if ( ! empty( $options['menu_sub_arrow_background_colour'] ) ) {
				$menu_item_toggle_background_color = $options['menu_sub_arrow_background_colour'];
			}

			$menu_item_toggle_background_color_hover = 'inherit';
			if ( ! empty( $options['menu_sub_arrow_background_hover_colour'] ) ) {
				$menu_item_toggle_background_color_hover = $options['menu_sub_arrow_background_hover_colour'];
			}

			$menu_current_item_toggle_background_color = 'inherit';
			if ( ! empty( $options['menu_sub_arrow_background_colour_active'] ) ) {
				$menu_current_item_toggle_background_color = $options['menu_sub_arrow_background_colour_active'];
			}

			$menu_current_item_toggle_background_color_hover = 'inherit';
			if ( ! empty( $options['menu_sub_arrow_background_hover_colour_active'] ) ) {
				$menu_current_item_toggle_background_color_hover = $options['menu_sub_arrow_background_hover_colour_active'];
			}

			$menu_item_toggle_border_color = 'currentColor';
			if ( ! empty( $options['menu_sub_arrow_border_colour'] ) ) {
				$menu_item_toggle_border_color = $options['menu_sub_arrow_border_colour'];
			}

			$menu_item_toggle_border_color_hover = '';
			if ( ! empty( $options['menu_sub_arrow_border_hover_colour'] ) ) {
				$menu_item_toggle_border_color_hover = $options['menu_sub_arrow_border_hover_colour'];
			}

			$menu_current_item_toggle_border_color = 'currentColor';
			if ( ! empty( $options['menu_sub_arrow_border_colour_active'] ) ) {
				$menu_current_item_toggle_border_color = $options['menu_sub_arrow_border_colour_active'];
			}

			$menu_current_item_toggle_border_color_hover = '';
			if ( ! empty( $options['menu_sub_arrow_border_hover_colour_active'] ) ) {
				$menu_current_item_toggle_border_color_hover = $options['menu_sub_arrow_border_hover_colour_active'];
			}

			$submenu_item_height = '';
			if ( ! empty( $options['submenu_links_height'] ) ) {
				$submenu_item_height = $options['submenu_links_height'];
			}

			$submenu_item_height_unit = '';
			if ( ! empty( $options['submenu_links_height_unit'] ) ) {
				$submenu_item_height_unit = $options['submenu_links_height_unit'];
			}

			$submenu_item_line_height = '';
			if ( ! empty( $options['submenu_links_line_height'] ) ) {
				$submenu_item_line_height = $options['submenu_links_line_height'];
			}

			$submenu_item_line_height_unit = '';
			if ( ! empty( $options['submenu_links_line_height_unit'] ) ) {
				$submenu_item_line_height_unit = $options['submenu_links_line_height_unit'];
			}

			$submenu_item_border_width = '0';
			if ( ! empty( $options['submenu_border_width'] ) ) {
				$submenu_item_border_width = $options['submenu_border_width'];
			}

			$submenu_item_border_width_unit = '';
			if ( ! empty( $options['submenu_border_width_unit'] ) ) {
				$submenu_item_border_width_unit = $options['submenu_border_width_unit'];
			}

			$submenu_item_border_color = 'currentColor';
			if ( ! empty( $options['submenu_item_border_colour'] ) ) {
				$submenu_item_border_color = $options['submenu_item_border_colour'];
			}

			$submenu_item_border_color_hover = '';
			if ( ! empty( $options['submenu_item_border_colour_hover'] ) ) {
				$submenu_item_border_color_hover = $options['submenu_item_border_colour_hover'];
			}

			$submenu_current_item_border_color = 'currentColor';
			if ( ! empty( $options['submenu_current_item_border_colour'] ) ) {
				$submenu_current_item_border_color = $options['submenu_current_item_border_colour'];
			}

			$submenu_current_item_border_color_hover = '';
			if ( ! empty( $options['submenu_current_item_border_hover_colour'] ) ) {
				$submenu_current_item_border_color_hover = $options['submenu_current_item_border_hover_colour'];
			}

			$submenu_item_font_size = '';
			if ( ! empty( $options['submenu_font_size'] ) ) {
				$submenu_item_font_size = $options['submenu_font_size'];
			}

			$submenu_font_weight = '';
			if ( ! empty( $options['submenu_font_weight'] ) ) {
				$submenu_font_weight = $options['submenu_font_weight'];
			}

			$submenu_item_font_size_unit = '';
			if ( ! empty( $options['submenu_font_size_unit'] ) ) {
				$submenu_item_font_size_unit = $options['submenu_font_size_unit'];
			}

			$submenu_item_font_family = '';
			if ( ! empty( $options['submenu_font'] ) ) {
				$submenu_item_font_family = $options['submenu_font'];
			}

			$submenu_item_text_alignment = '';
			if ( ! empty( $options['submenu_text_alignment'] ) ) {
				$submenu_item_text_alignment = $options['submenu_text_alignment'];
			}

			$submenu_item_text_color = 'inherit';
			if ( ! empty( $options['submenu_link_colour'] ) ) {
				$submenu_item_text_color = $options['submenu_link_colour'];
			}

			$submenu_item_text_color_hover = 'inherit';
			if ( ! empty( $options['submenu_link_hover_colour'] ) ) {
				$submenu_item_text_color_hover = $options['submenu_link_hover_colour'];
			}

			$submenu_current_item_text_color = 'inherit';
			if ( ! empty( $options['submenu_current_link_colour'] ) ) {
				$submenu_current_item_text_color = $options['submenu_current_link_colour'];
			}

			$submenu_current_item_text_color_hover = 'inherit';
			if ( ! empty( $options['submenu_current_link_hover_colour'] ) ) {
				$submenu_current_item_text_color_hover = $options['submenu_current_link_hover_colour'];
			}

			$submenu_item_background_color = 'inherit';
			if ( ! empty( $options['submenu_item_background_colour'] ) ) {
				$submenu_item_background_color = $options['submenu_item_background_colour'];
			}

			$submenu_item_background_color_hover = 'inherit';
			if ( ! empty( $options['submenu_item_background_hover_colour'] ) ) {
				$submenu_item_background_color_hover = $options['submenu_item_background_hover_colour'];
			}

			$submenu_current_item_background_color = 'inherit';
			if ( ! empty( $options['submenu_current_item_background_colour'] ) ) {
				$submenu_current_item_background_color = $options['submenu_current_item_background_colour'];
			}

			$submenu_current_item_background_color_hover = 'inherit';
			if ( ! empty( $options['submenu_current_item_background_hover_colour'] ) ) {
				$submenu_current_item_background_color_hover = $options['submenu_current_item_background_hover_colour'];
			}

			$submenu_item_toggle_position = '';
			if ( ! empty( $options['submenu_arrow_position'] ) ) {
				$submenu_item_toggle_position = $options['submenu_arrow_position'];
			}

			$submenu_item_toggle_height = '';
			if ( ! empty( $options['submenu_submenu_arrow_height'] ) ) {
				$submenu_item_toggle_height = $options['submenu_submenu_arrow_height'];
			}

			$submenu_item_toggle_height_unit = '';
			if ( ! empty( $options['submenu_submenu_arrow_height_unit'] ) ) {
				$submenu_item_toggle_height_unit = $options['submenu_submenu_arrow_height_unit'];
			}

			$submenu_item_toggle_width = '';
			if ( ! empty( $options['submenu_submenu_arrow_width'] ) ) {
				$submenu_item_toggle_width = $options['submenu_submenu_arrow_width'];
			}

			$submenu_item_toggle_width_unit = '';
			if ( ! empty( $options['submenu_submenu_arrow_width_unit'] ) ) {
				$submenu_item_toggle_width_unit = $options['submenu_submenu_arrow_width_unit'];
			}

			$menu_sub_arrow_border_width = '0';
			if ( ! empty( $options['menu_sub_arrow_border_width'] ) ) {
				$menu_sub_arrow_border_width = $options['menu_sub_arrow_border_width'];
			}

			$menu_sub_arrow_border_width_unit = 'px';
			if ( ! empty( $options['menu_sub_arrow_border_width_unit'] ) ) {
				$menu_sub_arrow_border_width_unit = $options['menu_sub_arrow_border_width_unit'];
			}

			$submenu_sub_arrow_border_width = '0';
			if ( ! empty( $options['submenu_sub_arrow_border_width'] ) ) {
				$submenu_sub_arrow_border_width = $options['submenu_sub_arrow_border_width'];
			}

			$submenu_sub_arrow_border_width_unit = 'px';
			if ( ! empty( $options['submenu_sub_arrow_border_width_unit'] ) ) {
				$submenu_sub_arrow_border_width_unit = $options['submenu_sub_arrow_border_width_unit'];
			}

			$submenu_item_toggle_text_color = 'inherit';
			if ( ! empty( $options['submenu_sub_arrow_shape_colour'] ) ) {
				$submenu_item_toggle_text_color = $options['submenu_sub_arrow_shape_colour'];
			}

			$submenu_item_toggle_text_color_hover = 'inherit';
			if ( ! empty( $options['submenu_sub_arrow_shape_hover_colour'] ) ) {
				$submenu_item_toggle_text_color_hover = $options['submenu_sub_arrow_shape_hover_colour'];
			}

			$submenu_current_item_toggle_text_color = 'inherit';
			if ( ! empty( $options['submenu_sub_arrow_shape_colour_active'] ) ) {
				$submenu_current_item_toggle_text_color = $options['submenu_sub_arrow_shape_colour_active'];
			}

			$submenu_current_item_toggle_text_color_hover = 'inherit';
			if ( ! empty( $options['submenu_sub_arrow_shape_hover_colour_active'] ) ) {
				$submenu_current_item_toggle_text_color_hover = $options['submenu_sub_arrow_shape_hover_colour_active'];
			}

			$submenu_item_toggle_background_color = 'inherit';
			if ( ! empty( $options['submenu_sub_arrow_background_colour'] ) ) {
				$submenu_item_toggle_background_color = $options['submenu_sub_arrow_background_colour'];
			}

			$submenu_item_toggle_background_color_hover = 'inherit';
			if ( ! empty( $options['submenu_sub_arrow_background_hover_colour'] ) ) {
				$submenu_item_toggle_background_color_hover = $options['submenu_sub_arrow_background_hover_colour'];
			}

			$submenu_current_item_toggle_background_color = 'inherit';
			if ( ! empty( $options['submenu_sub_arrow_background_colour_active'] ) ) {
				$submenu_current_item_toggle_background_color = $options['submenu_sub_arrow_background_colour_active'];
			}

			$submenu_current_item_toggle_background_color_hover = 'inherit';
			if ( ! empty( $options['submenu_sub_arrow_background_hover_colour_active'] ) ) {
				$submenu_current_item_toggle_background_color_hover = $options['submenu_sub_arrow_background_hover_colour_active'];
			}

			$submenu_item_toggle_border_color = 'currentColor';
			if ( ! empty( $options['submenu_sub_arrow_border_colour'] ) ) {
				$submenu_item_toggle_border_color = $options['submenu_sub_arrow_border_colour'];
			}

			$submenu_item_toggle_border_color_hover = '';
			if ( ! empty( $options['submenu_sub_arrow_border_hover_colour'] ) ) {
				$submenu_item_toggle_border_color_hover = $options['submenu_sub_arrow_border_hover_colour'];
			}

			$submenu_current_item_toggle_border_color = 'currentColor';
			if ( ! empty( $options['submenu_sub_arrow_border_colour_active'] ) ) {
				$submenu_current_item_toggle_border_color = $options['submenu_sub_arrow_border_colour_active'];
			}

			$submenu_current_item_toggle_border_color_hover = '';
			if ( ! empty( $options['submenu_sub_arrow_border_hover_colour_active'] ) ) {
				$submenu_current_item_toggle_border_color_hover = $options['submenu_sub_arrow_border_hover_colour_active'];
			}

			// Animation delay and times.

			$animation_speed = '';
			if ( ! empty( $options['animation_speed'] ) ) {
				$animation_speed = $options['animation_speed'] . 's';
			}

			$animation_type = '';
			if ( ! empty( $options['animation_type'] ) ) {
				$animation_type = $options['animation_type'];
			}

			$color_transition_speed = '';
			if ( ! empty( $options['transition_speed'] ) ) {
				$color_transition_speed = $options['transition_speed'] . 's';
			}

			$sub_menu_transition_speed = '';
			if ( ! empty( $options['sub_menu_speed'] ) ) {
				$sub_menu_transition_speed = $options['sub_menu_speed'] . 's';
			}

			$menu_to_hide = '';
			if ( ! empty( $options['menu_to_hide'] ) ) {
				$menu_to_hide = $options['menu_to_hide'];
			}

			$parse_options = array(
				// Menu breakpoints
				'tablet_breakpoint'                        => $tablet_breakpoint,

				// Menu hamburger toggle options.
				'menu_trigger_id'                          => $menu_trigger_id,
				'menu_trigger_position_type'               => $button_position_type,
				'menu_trigger_side'                        => $menu_trigger_side,
				'menu_trigger_distance_from_side'          => $button_distance_from_side,
				'menu_trigger_distance_from_top'           => $menu_trigger_distance_from_top,
				'menu_trigger_width'                       => $menu_trigger_width,
				'menu_trigger_height'                      => $menu_trigger_height,
				'menu_trigger_background_color'            => $menu_trigger_background_color,
				'menu_trigger_background_color_hover'      => $menu_trigger_background_color_hover,
				'menu_trigger_active_color'                => $menu_trigger_active_color,
				'toggle_button_border_radius'              => $toggle_button_border_radius,
				'menu_trigger_transparent_background'      => $menu_trigger_transparent_background,
				'menu_trigger_line_color'                  => $menu_trigger_line_color,
				'menu_trigger_line_color_hover'            => $menu_trigger_line_color_hover,
				'menu_trigger_line_active_color'           => $menu_trigger_line_active_color,
				'menu_trigger_title_color'                 => $menu_trigger_title_color,
				'menu_trigger_title_line_height'           => $menu_trigger_title_line_height,
				'menu_trigger_title_font_size'             => $menu_trigger_title_font_size,
				'menu_trigger_title_font'                  => $menu_trigger_title_font,
				'menu_trigger_line_height'                 => $menu_trigger_line_height,
				'menu_trigger_line_height_unit'            => $menu_trigger_line_height_unit,
				'menu_trigger_line_width'                  => $menu_trigger_line_width,
				'menu_trigger_line_width_unit'             => $menu_trigger_line_width_unit,
				'menu_trigger_line_margin'                 => $menu_trigger_line_margin,
				'menu_trigger_line_margin_unit'            => $menu_trigger_line_margin_unit,

				// Menu searchbox options.
				'menu_search_box_wrap'                     => $menu_search_box_wrap,
				'menu_search_box_text_color'               => $menu_search_box_text_color,
				'menu_search_box_background_color'         => $menu_search_box_background_color,
				'menu_search_box_border_color'             => $menu_search_box_border_color,
				'menu_search_box_placeholder_color'        => $menu_search_box_placeholder_color,
				'menu_search_box_border_radius'            => $menu_search_box_border_radius,
				'menu_search_box_height_unit'              => $menu_search_box_height_unit,
				'menu_search_box_height'                   => $menu_search_box_height,
				'menu_search_section_padding_bottom'       => $menu_search_section_padding_bottom,
				'menu_search_section_padding_right'        => $menu_search_section_padding_right,
				'menu_search_section_padding_top'          => $menu_search_section_padding_top,
				'menu_search_section_padding_left'         => $menu_search_section_padding_left,

				// Menu additional contents options.
				'menu_additional_content_wrap'             => $menu_additional_content_wrap,
				'menu_additional_content_color'            => $menu_additional_content_color,
				'menu_additional_content_alignment'        => $menu_additional_content_alignment,
				'menu_additional_content_font_size'        => $menu_additional_content_font_size,
				'menu_additional_content_font_size_unit'   => $menu_additional_content_font_size_unit,
				'menu_additional_section_padding_left'     => $menu_additional_section_padding_left,
				'menu_additional_section_padding_top'      => $menu_additional_section_padding_top,
				'menu_additional_section_padding_bottom'   => $menu_additional_section_padding_bottom,
				'menu_additional_section_padding_right'    => $menu_additional_section_padding_right,

				// Menu title options.
				'menu_title_wrap'                          => $menu_title_wrap,
				'menu_title_font_weight'                   => $menu_title_font_weight,
				'menu_title_font_family'                   => $menu_title_font_family,
				'menu_title_background'                    => $menu_title_background,
				'menu_title_background_hover'              => $menu_title_background_hover,
				'menu_title_font_color'                    => $menu_title_font_color,
				'menu_title_font_color_hover'              => $menu_title_font_color_hover,
				'menu_title_font_size'                     => $menu_title_font_size,
				'menu_title_image_width'                   => $menu_title_image_width,
				'menu_title_image_height'                  => $menu_title_image_height,
				'menu_title_text_alignment'                => $menu_title_text_alignment,
				'menu_title_section_padding_left'          => $menu_title_section_padding_left,
				'menu_title_section_padding_top'           => $menu_title_section_padding_top,
				'menu_title_section_padding_right'         => $menu_title_section_padding_right,
				'menu_title_section_padding_bottom'        => $menu_title_section_padding_bottom,

				// Menu items and it's settings options.
				'menu_container'                           => $menu_container,
				'menu_width'                               => $menu_width,
				'menu_width_unit'                          => $menu_width_unit,
				'menu_maximum_width'                       => $menu_maximum_width,
				'menu_maximum_width_unit'                  => $menu_maximum_width_unit,
				'menu_minimum_width'                       => $menu_minimum_width,
				'menu_minimum_width_unit'                  => $menu_minimum_width_unit,
				'menu_container_background_colour'         => $menu_container_background_colour,
				'menu_container_background_image'          => "'" . $menu_container_background_image . "'",
				'menu_container_appear_from'               => $menu_container_appear_from,
				'page_wrapper'                             => $page_wrapper,
				'menu_to_hide'                             => $menu_to_hide,
				'menu_container_padding_left'              => $menu_container_padding_left,
				'menu_container_padding_top'               => $menu_container_padding_top,
				'menu_container_padding_bottom'            => $menu_container_padding_bottom,
				'menu_container_padding_right'             => $menu_container_padding_right,
				'menu_wrap'                                => $menu_wrap,
				'menu_section_padding_bottom'              => $menu_section_padding_bottom,
				'menu_section_padding_right'               => $menu_section_padding_right,
				'menu_section_padding_top'                 => $menu_section_padding_top,
				'menu_section_padding_left'                => $menu_section_padding_left,

				'menu_background_color'                    => $menu_background_color,
				'menu_container_columns'                   => $menu_container_columns,
				'menu_item_height'                         => $menu_item_height,
				'menu_item_height_unit'                    => $menu_item_height_unit,
				'menu_item_line_height'                    => $menu_item_line_height,
				'menu_item_line_height_unit'               => $menu_item_line_height_unit,
				'menu_item_font_weight'                    => $menu_item_font_weight,
				'menu_item_letter_spacing'                 => $menu_item_letter_spacing,

				'menu_item_border_width'                   => $menu_item_border_width,
				'menu_item_border_width_unit'              => $menu_item_border_width_unit,
				'menu_item_border_color'                   => $menu_item_border_color,
				'menu_item_border_color_hover'             => $menu_item_border_color_hover,
				'menu_current_item_border_color'           => $menu_current_item_border_color,
				'menu_current_item_border_color_hover'     => $menu_current_item_border_color_hover,

				'menu_item_font_size'                      => $menu_item_font_size,
				'menu_item_font_size_unit'                 => $menu_item_font_size_unit,
				'menu_item_font_family'                    => $menu_item_font_family,
				'menu_item_text_alignment'                 => $menu_item_text_alignment,
				'menu_item_text_color'                     => $menu_item_text_color,
				'menu_item_text_color_hover'               => $menu_item_text_color_hover,
				'menu_current_item_text_color'             => $menu_current_item_text_color,
				'menu_current_item_text_color_hover'       => $menu_current_item_text_color_hover,

				'menu_item_padding'                        => $menu_item_padding,
				'menu_item_padding_unit'                   => $menu_item_padding_unit,
				'menu_item_background_color'               => $menu_item_background_color,
				'menu_item_background_color_hover'         => $menu_item_background_color_hover,
				'menu_current_item_background_color'       => $menu_current_item_background_color,
				'menu_current_item_background_color_hover' => $menu_current_item_background_color_hover,

				'menu_item_toggle_position'                => $menu_item_toggle_position,
				'menu_item_toggle_height'                  => $menu_item_toggle_height,
				'menu_item_toggle_height_unit'             => $menu_item_toggle_height_unit,
				'menu_item_toggle_width'                   => $menu_item_toggle_width,
				'menu_item_toggle_width_unit'              => $menu_item_toggle_width_unit,
				'menu_item_toggle_text_color'              => $menu_item_toggle_text_color,
				'menu_item_toggle_text_color_hover'        => $menu_item_toggle_text_color_hover,
				'menu_current_item_toggle_text_color'      => $menu_current_item_toggle_text_color,
				'menu_current_item_toggle_text_color_hover' => $menu_current_item_toggle_text_color_hover,
				'menu_item_toggle_background_color'        => $menu_item_toggle_background_color,
				'menu_item_toggle_background_color_hover'  => $menu_item_toggle_background_color_hover,
				'menu_current_item_toggle_background_color' => $menu_current_item_toggle_background_color,
				'menu_current_item_toggle_background_color_hover' => $menu_current_item_toggle_background_color_hover,
				'menu_item_toggle_border_color'            => $menu_item_toggle_border_color,
				'menu_item_toggle_border_color_hover'      => $menu_item_toggle_border_color_hover,
				'menu_current_item_toggle_border_color'    => $menu_current_item_toggle_border_color,
				'menu_current_item_toggle_border_color_hover' => $menu_current_item_toggle_border_color_hover,
				'menu_item_toggle_border_width'            => $menu_sub_arrow_border_width,
				'menu_item_toggle_border_width_unit'       => $menu_sub_arrow_border_width_unit,

				// Sub-level menu items options.
				'submenu_item_height'                      => $submenu_item_height,
				'submenu_item_height_unit'                 => $submenu_item_height_unit,
				'submenu_item_line_height'                 => $submenu_item_line_height,
				'submenu_item_line_height_unit'            => $submenu_item_line_height_unit,

				'submenu_item_border_width'                => $submenu_item_border_width,
				'submenu_item_border_width_unit'           => $submenu_item_border_width_unit,
				'submenu_item_border_color'                => $submenu_item_border_color,
				'submenu_item_border_color_hover'          => $submenu_item_border_color_hover,
				'submenu_current_item_border_color'        => $submenu_current_item_border_color,
				'submenu_current_item_border_color_hover'  => $submenu_current_item_border_color_hover,

				'submenu_item_font_size'                   => $submenu_item_font_size,
				'submenu_font_weight'                      => $submenu_font_weight,
				'submenu_item_font_size_unit'              => $submenu_item_font_size_unit,
				'submenu_item_font_family'                 => $submenu_item_font_family,
				'submenu_item_text_alignment'              => $submenu_item_text_alignment,
				'submenu_text_letter_spacing'              => $submenu_text_letter_spacing,

				'submenu_item_text_color'                  => $submenu_item_text_color,
				'submenu_item_text_color_hover'            => $submenu_item_text_color_hover,
				'submenu_current_item_text_color'          => $submenu_current_item_text_color,
				'submenu_current_item_text_color_hover'    => $submenu_current_item_text_color_hover,
				'submenu_item_background_color'            => $submenu_item_background_color,
				'submenu_item_background_color_hover'      => $submenu_item_background_color_hover,
				'submenu_current_item_background_color'    => $submenu_current_item_background_color,
				'submenu_current_item_background_color_hover' => $submenu_current_item_background_color_hover,

				'submenu_item_toggle_position'             => $submenu_item_toggle_position,
				'submenu_item_toggle_height'               => $submenu_item_toggle_height,
				'submenu_item_toggle_height_unit'          => $submenu_item_toggle_height_unit,
				'submenu_item_toggle_width'                => $submenu_item_toggle_width,
				'submenu_item_toggle_width_unit'           => $submenu_item_toggle_width_unit,
				'is_legacy'                                => $is_legacy,

				'submenu_item_toggle_text_color'           => $submenu_item_toggle_text_color,
				'submenu_item_toggle_text_color_hover'     => $submenu_item_toggle_text_color_hover,
				'submenu_current_item_toggle_text_color'   => $submenu_current_item_toggle_text_color,
				'submenu_current_item_toggle_text_color_hover' => $submenu_current_item_toggle_text_color_hover,
				'submenu_item_toggle_background_color'     => $submenu_item_toggle_background_color,
				'submenu_item_toggle_background_color_hover' => $submenu_item_toggle_background_color_hover,
				'submenu_current_item_toggle_background_color' => $submenu_current_item_toggle_background_color,
				'submenu_current_item_toggle_background_color_hover' => $submenu_current_item_toggle_background_color_hover,
				'submenu_item_toggle_border_color'         => $submenu_item_toggle_border_color,
				'submenu_item_toggle_border_color_hover'   => $submenu_item_toggle_border_color_hover,
				'submenu_current_item_toggle_border_color' => $submenu_current_item_toggle_border_color,
				'submenu_current_item_toggle_border_color_hover' => $submenu_current_item_toggle_border_color_hover,

				'submenu_item_toggle_border_width'         => $submenu_sub_arrow_border_width,
				'submenu_item_toggle_border_width_unit'    => $submenu_sub_arrow_border_width_unit,

				'menu_depth_side'                          => $menu_depth_side,
				'menu_item_padding_depth_1'                => $menu_item_padding_depth_1,
				'menu_item_padding_depth_1_unit'           => $menu_item_padding_depth_1_unit,
				'menu_item_padding_depth_2'                => $menu_item_padding_depth_2,
				'menu_item_padding_depth_2_unit'           => $menu_item_padding_depth_2_unit,
				'menu_item_padding_depth_3'                => $menu_item_padding_depth_3,
				'menu_item_padding_depth_3_unit'           => $menu_item_padding_depth_3_unit,
				'menu_item_padding_depth_4'                => $menu_item_padding_depth_4,
				'menu_item_padding_depth_4_unit'           => $menu_item_padding_depth_4_unit,
				'menu_word_wrap'                           => $menu_word_wrap,

				// Animation and transition.
				'animation_speed'                          => $animation_speed,
				'animation_type'                           => $animation_type,
				'color_transition_speed'                   => $color_transition_speed,
				'sub_menu_transition_speed'                => $sub_menu_transition_speed,
			);

			/**
			 * Apply before parse the scss to css.
			 *
			 * @since 4.1.0
			 *
			 * @param array  $parse_options  Parsed menu settings.
			 * @param int    $menu_id        Menu Id.
			 * @param array  $options        Menu options array.
			 */
			$parse_options = apply_filters( 'rmp_before_parse_scss_to_css', $parse_options, $menu_id, $options );

			$scss = new Compiler();
			$scss->setImportPaths( RMP_PLUGIN_PATH_V4 . '/assets/scss/' );
			$scss->setVariables( $parse_options );
			$css = $scss->compile( '@import "main.scss";' );

			/**
			 * Apply after parsed the scss to css.
			 *
			 * @since 4.1.0
			 *
			 * @param string $css            Compiled CSS.
			 * @param int    $menu_id        Menu Id.
			 * @param array  $parse_options  Parsed menu settings.
			 * @param array  $options        Menu options array.
			 */
			$css = apply_filters( 'rmp_after_parse_scss_to_css', $css, $menu_id, $parse_options, $options );

			return $css;
		} catch ( Exception $e ) {
			return new \WP_Error( 'Warning: Menu style scss compile failed <br/> <br />' . $e->getMessage() );
		}
	}

	/**
	 * This function convert the common scss style to css.
	 *
	 * @return string/WP_Error
	 */
	public function get_common_scss_to_css() {
		try {
			$menu_adjust_for_wp_admin_bar = $this->option_manager->get_global_option( 'menu_adjust_for_wp_admin_bar' );

			$options = array(
				'menu_adjust_for_wp_admin_bar' => $menu_adjust_for_wp_admin_bar,
			);

			$scss = new Compiler();
			$scss->setImportPaths( RMP_PLUGIN_PATH_V4 . '/assets/scss/' );
			$scss->setVariables( $options );
			$css = $scss->compile( '@import "common.scss";' );

			return $css;
		} catch ( Exception $e ) {
			return new \WP_Error( 'Warning: Common style scss compile failed <br/> <br />' . $e->getMessage() );
		}
	}

	/**
	 * Adding theme support for menus
	 *
	 * @since 4.2.0
	 */
	public function rm_add_classic_menu_support() {
		add_theme_support( 'menus' );
	}
}