<?php

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

if ( isset( $GLOBALS['svx'] ) && 0 === version_compare( $GLOBALS['svx'], '1.8.1' ) ) :

	if ( ! class_exists( 'SevenVXSettings' ) ) {

		class SevenVXSettings {

			public static $version = '1.8.1';

			protected static $_instance = null;

			public static $plugin = null;
			public static $slug   = null;

			public static $lang;

			public static function instance() {
				if ( is_null( self::$_instance ) ) {
					self::$_instance = new self();
				}
				return self::$_instance;
			}

			public function __construct() {
				do_action( 'svx_loading' );

				$this->init_hooks();

				do_action( 'svx_loaded' );
			}

			private function init_hooks() {

				$plugins = apply_filters( 'svx_plugins', array() );

				$page = isset( $_REQUEST['page'] ) && 'wc-settings' === $_REQUEST['page'] ? true : false;
				$slug = isset( $_REQUEST['tab'] ) && array_key_exists( $_REQUEST['tab'], $plugins ) ? $_REQUEST['tab'] : '';

				if ( ! empty( $plugins ) && $page ) {
					if ( ! function_exists( 'XforWC' ) ) {
						foreach ( $plugins as $p ) {
							add_filter( 'woocommerce_settings_tabs_array', array( $this, 'add_tab' ), 50 );
						}
					}

					if ( $slug ) {
						add_action( 'woocommerce_settings_tabs_' . $slug, array( $this, 'display_tab' ) );
						add_action( 'admin_enqueue_scripts', array( $this, 'admin_js' ), 10 );
						add_action( 'admin_footer', array( $this, 'add_vars' ) );
						add_filter( 'svx_settings_templates', array( $this, 'default_templates' ) );
					}

					self::$slug = $slug;
				}

				$page = isset( $_REQUEST['page'] ) && 'xforwoocommerce' === $_REQUEST['page'] ? true : false;

				if ( $page ) {
					add_action( 'admin_enqueue_scripts', array( $this, 'admin_js' ), 10 );
					add_action( 'admin_footer', array( $this, 'add_vars' ) );
					add_filter( 'svx_settings_templates', array( $this, 'default_templates' ) );
				}

				add_action( 'wp_ajax_svx_ajax_factory', array( $this, 'ajax_factory' ) );
			}

			private function is_request( $type ) {
				switch ( $type ) {
					case 'admin':
						return is_admin();
					case 'ajax':
						return defined( 'DOING_AJAX' );
					case 'cron':
						return defined( 'DOING_CRON' );
					case 'frontend':
						return ( ! is_admin() || defined( 'DOING_AJAX' ) ) && ! defined( 'DOING_CRON' );
				}
			}

			public function admin_js() {

				$plugins = apply_filters( 'svx_plugins', array() );

				$slug = isset( $_REQUEST['tab'] ) && array_key_exists( $_REQUEST['tab'], $plugins ) ? $_REQUEST['tab'] : '';
				$page = isset( $_REQUEST['page'] ) && 'xforwoocommerce' === $_REQUEST['page'] ? true : false;

				if ( $slug || $page ) {
					wp_enqueue_style( 'svx-style', $this->plugin_url() . '/css/svx-style' . ( is_rtl() ? '-rtl' : '' ) . '.css', false, self::$version );

					wp_register_script( 'svx-settings', $this->plugin_url() . '/js/svx-core.js', array( 'jquery', 'wp-util', 'jquery-ui-core', 'jquery-ui-sortable' ), self::$version, true );
					wp_enqueue_script( 'svx-settings' );

					wp_enqueue_style( 'wp-color-picker' );
					wp_enqueue_script( 'wp-color-picker' );

					if ( function_exists( 'wp_enqueue_media' ) ) {
						wp_enqueue_media();
					}
				}

			}

			public function plugin_url() {
				return untrailingslashit( plugins_url( '/', __FILE__ ) );
			}

			public function add_tab( $tabs ) {

				$plugins = apply_filters( 'svx_plugins', array() );

				if ( ! empty( $plugins ) ) {
					foreach ( $plugins as $p ) {
						$tabs[ $p['slug'] ] = $p['name'];
					}
				}

				return $tabs;

			}

			public function display_tab() {

				?>
			<div id="svx-settings" class="svx-<?php echo esc_attr( current_filter() ); ?> <?php echo esc_attr( apply_filters( 'xforwc_dashboard_class', 'xforwc-dashboard' ) ); ?>"></div>
				<?php

			}

			public function add_templates() {
				?>
			<script type="text/template" id="tmpl-svx-main-wrapper">
				<div id="svx-main-wrapper" data-slug="{{ data.slug }}"<?php echo self::get_language(); ?>>
					<span id="icon"></span>
					<div id="svx-main-header">
						<h2 class="svx-plugin">
							{{ data.name }}
						</h2>
						<p class="svx-desc">
							{{ data.desc }}
						</p>
						<p class="svx-main-buttons">
							<a href="{{ data.doc.url }}" class="svx-button-primary" target="_blank">
								{{ data.doc.name }}
							</a>
							<a href="{{ data.ref.url }}" class="svx-button" target="_blank">
								{{ data.ref.name }}
							</a>
						</p>
					</div>
					<div id="svx-main">
						<ul id="svx-settings-menu"></ul>
						<div id="svx-settings-main"></div>
					</div>
				</div>
			</script>

			<script type="text/template" id="tmpl-svx-button">
				<a href="{{ data.url }}" class="svx-button{{ data.class }}">
					{{ data.name }}
				</a>
			</script>

			<script type="text/template" id="tmpl-svx-li-menu">
				<li data-id="{{ data.id }}">
					{{ data.name }}
				</li>
			</script>

			<script type="text/template" id="tmpl-svx-settings">
				<div id="svx-settings-main-{{ data.id }}" data-id="{{ data.id }}">
					<div id="svx-settings-header">
						<p class="svx-desc">
							{{{ data.desc }}}
							<span id="save" class="svx-button-primary"><?php esc_html_e( 'Save', 'xforwoocommerce' ); ?></span>
						</p>
					</div>
					<div id="svx-settings-wrapper">
						{{{ data.settings }}}
					</div>
					<div id="svx-settings-footer">
						<p class="svx-desc">
							{{{ data.desc }}}
							<span id="save-alt" class="svx-button-primary"><?php esc_html_e( 'Save', 'xforwoocommerce' ); ?></span>
						</p>
					</div>
				</div>
			</script>

			<script type="text/template" id="tmpl-svx-option">
				<div id="{{ data.id }}-option" class="{{ data.class }}<# if ( data.column ) { #>{{ 'svx-column svx-column-'+data.column }}<# } #>">
					<div class="svx-option-header">
						<h3>
							{{ data.name }}
						</h3>
					</div>
					<div class="svx-option-wrapper">
						{{{ data.option }}}
						<p class="svx-desc">
							{{{ data.desc }}}
						</p>
					</div>
				</div>
			</script>

			<script type="text/template" id="tmpl-svx-option-html">
				<div id="{{ data.id }}-option" class="{{ data.class }}<# if ( data.column ) { #>{{ 'svx-column svx-column-'+data.column }}<# } #>">
					{{{ data.desc }}}
				</div>
			</script>

			<script type="text/template" id="tmpl-svx-option-utility">
				<span id="svx-export" class="svx-button"><?php esc_html_e( 'Export', 'xforwoocommerce' ); ?></span><span id="svx-import" class="svx-button"><?php esc_html_e( 'Import', 'xforwoocommerce' ); ?></span><span id="svx-backup" class="svx-button"><?php esc_html_e( 'Backup', 'xforwoocommerce' ); ?></span><span id="svx-restore" class="svx-button"><?php esc_html_e( 'Restore', 'xforwoocommerce' ); ?></span><span id="svx-reset" class="svx-button"><?php esc_html_e( 'Reset', 'xforwoocommerce' ); ?></span>
			</script>

			<script type="text/template" id="tmpl-svx-option-text">
				<input id="{{ data.eid }}" data-option="{{ data.id }}" class="svx-change{{ data.class }}" name="{{ data.name }}" type="text"<# if ( data.val ) { #> value="{{ data.val }}"<# } else { #><# } #> />
			</script>

			<script type="text/template" id="tmpl-svx-option-file">
				<input id="{{ data.eid }}" data-option="{{ data.id }}" class="svx-change{{ data.class }}" name="{{ data.name }}" type="text"<# if ( data.val ) { #> value="{{ data.val }}"<# } else { #><# } #> /> <span class="svx-button svx-file-add"><?php esc_html_e( 'Add +', 'xforwoocommerce' ); ?></span>
			</script>

			<script type="text/template" id="tmpl-svx-option-textarea">
				<textarea id="{{ data.eid }}" data-option="{{ data.id }}" class="svx-change{{ data.class }}" name="{{ data.name }}"><# if ( data.val ) { #>{{ data.val }}<# } else { #><# } #></textarea>
			</script>

			<script type="text/template" id="tmpl-svx-option-multiselect">
				<select id="{{ data.eid }}" data-option="{{ data.id }}" class="svx-change{{ data.class }}" name="{{ data.name }}" class="svx-multiple" multiple>
					{{{ data.options }}}
				</select>
			</script>

			<script type="text/template" id="tmpl-svx-option-values-multiselect">
				<option value="{{ data.val }}"<# if ( data.sel ) { #> selected="selected"<# } else { #><# } #>>{{ data.name }}</option>
			</script>

			<script type="text/template" id="tmpl-svx-option-select">
				<select id="{{ data.eid }}" data-option="{{ data.id }}" class="svx-change{{ data.class }}" name="{{ data.name }}">
					{{{ data.options }}}
				</select>
			</script>

			<script type="text/template" id="tmpl-svx-option-values-select">
				<option value="{{ data.val }}"<# if ( data.sel ) { #> selected="selected"<# } else { #><# } #>>{{ data.name }}</option>
			</script>

			<script type="text/template" id="tmpl-svx-option-checkbox">
				<input id="{{ data.eid }}" data-option="{{ data.id }}" class="svx-change{{ data.class }}" name="{{ data.name }}" type="checkbox" <# if ( data.val == "yes" ) { #> checked="checked"<# } else { #><# } #>/> <label for="{{ data.eid }}"></label>
			</script>

			<script type="text/template" id="tmpl-svx-option-number">
				<input id="{{ data.eid }}" data-option="{{ data.id }}" class="svx-change{{ data.class }}" name="{{ data.name }}" type="number"<# if ( data.val ) { #> value="{{ data.val }}"<# } else { #><# } #> />
			</script>

			<script type="text/template" id="tmpl-svx-option-hidden">
				<input id="{{ data.eid }}" data-option="{{ data.id }}" class="svx-change{{ data.class }}" name="{{ data.name }}" type="hidden"<# if ( data.val ) { #> value="{{ data.val }}"<# } else { #><# } #> />
			</script>

			<script type="text/template" id="tmpl-svx-option-include">
				<span class="svx-button svx-include"><?php esc_html_e( 'Configure', 'xforwoocommerce' ); ?></span>
			</script>

			<script type="text/template" id="tmpl-svx-option-list">
				<input id="{{ data.eid }}" data-option="{{ data.id }}" class="svx-change{{ data.class }}" name="{{ data.name }}" type="hidden"<# if ( data.val ) { #> value="{{ data.val }}"<# } else { #><# } #> />
				<div id="{{ data.id }}-list" class="svx-option-list">
					{{{ data.options }}}
				</div>
				<span class="svx-button-primary svx-option-list-add" data-id="{{ data.id }}"><?php esc_html_e( 'Add Item +', 'xforwoocommerce' ); ?></span>
			</script>

			<script type="text/template" id="tmpl-svx-option-list-item">
				<div class="svx-option-list-item">
					<span class="svx-option-list-item-icon svx-list-expand-button" data-type="{{ data.type }}"></span>
					<span class="svx-option-list-item-title">{{ data.title }}</span>
					<span class="svx-option-list-item-icon svx-list-remove-button" data-id="{{ data.id }}"></span>
					<span class="svx-option-list-item-icon svx-list-move-button"></span>
					<# if ( data.customizer ) { #><span class="svx-option-list-item-icon svx-list-customizer-button"></span><# } #>
					<div class="svx-option-list-item-container">
						{{{ data.options }}}
					</div>
				</div>
			</script>

			<script type="text/template" id="tmpl-svx-option-list-select">
				<input id="{{ data.eid }}" data-option="{{ data.id }}" class="svx-change{{ data.class }}" name="{{ data.name }}" type="hidden"<# if ( data.val ) { #> value="{{ data.val }}"<# } #> />
				<div id="{{ data.id }}-list" class="svx-option-list">
					{{{ data.options }}}
				</div>
				{{{ data.selects }}} <span class="svx-button-primary svx-option-list-select-add" data-id="{{ data.id }}"><?php esc_html_e( 'Add Item +', 'xforwoocommerce' ); ?></span>
			</script>

			<script type="text/template" id="tmpl-svx-include-customizer">
				<div id="svx-include-customizer" data-id="{{ data.id }}">
					<div class="svx-include-customizer-wrapper">
						<div class="svx-include-customizer-header">
							<span id="svx-include-customizer-exit"></span>
							<h2><?php esc_html_e( 'Include/Exclude Manager', 'xforwoocommerce' ); ?></h2>
							<span id="svx-exclude-toggle" class="<# if ( data.selected == 'OUT' ) { #>svx-button-primary<# } else { #>svx-button<# } #>"><?php esc_html_e( 'Exclude', 'xforwoocommerce' ); ?></span>
							<span id="svx-include-toggle" class="<# if ( data.selected == 'IN' ) { #>svx-button-primary<# } else { #>svx-button<# } #>"><?php esc_html_e( 'Include', 'xforwoocommerce' ); ?></span>
						</div>
						<div id="svx-include-customizer-terms" data-taxonomy="{{ data.taxonomy }}"></div>
					</div>
				</div>
			</script>

			<script type="text/template" id="tmpl-svx-customizer">
				<div id="svx-customizer" data-id="{{ data.id }}">
					<div class="svx-customizer-wrapper">
						<div class="svx-customizer-header">
							<span id="svx-customizer-exit"></span>
							<h2><?php esc_html_e( 'Terms Manager', 'xforwoocommerce' ); ?></h2>
							<# if ( data.type !== 'orderby' && data.type !== 'vendor' && data.type !== 'instock' && data.type !== 'range' ) { #>

								<# if ( data.type == 'meta' || data.type == 'meta_range' || data.type == 'ivpa_custom' || data.type == 'price' || data.type == 'per_page' ) { #>
									<span id="svx-customizer-add" class="svx-button-primary">Add Term +</span>
								<# }
								else { #>
									<span id="svx-customizer-custom-order" class="<# if ( data.order == 'true' ) { #>svx-button-primary<# } else { #>svx-button<# } #>"><?php esc_html_e( 'Custom Order', 'xforwoocommerce' ); ?></span>
								<# } #>

							<# } #>
						</div>
						<# if ( data.type !== 'range' && data.type !== 'meta_range' ) { #>
							<div class="svx-customizer-style">
								<div id="svx-special-options">
									<span class="svx-special-option">
										<label><?php esc_html_e( 'Type', 'xforwoocommerce' ); ?></label>
										<select class="svx-terms-style-change" data-option="type">
											<option value=""<# if ( data.style == '' ) { #> selected="selected"<# } #>><?php esc_html_e( 'None', 'xforwoocommerce' ); ?></option>
											<option value="text"<# if ( data.style == 'text' ) { #> selected="selected"<# } #>><?php esc_html_e( 'Plain Text', 'xforwoocommerce' ); ?></option>
											<option value="color"<# if ( data.style == 'color' ) { #> selected="selected"<# } #>><?php esc_html_e( 'Color', 'xforwoocommerce' ); ?></option>
											<option value="image"<# if ( data.style == 'image' ) { #> selected="selected"<# } #>><?php esc_html_e( 'Thumbnail', 'xforwoocommerce' ); ?></option>
											<option value="selectbox"<# if ( data.style == 'selectbox' ) { #> selected="selected"<# } #>><?php esc_html_e( 'Select Box', 'xforwoocommerce' ); ?></option>
											<# if ( data.type.substr(0,5) !== 'ivpa_' ) { #>
												<option value="system"<# if ( data.style == 'system' ) { #> selected="selected"<# } #>><?php esc_html_e( 'System Select', 'xforwoocommerce' ); ?></option>
												<option value="selectize"<# if ( data.style == 'selectize' ) { #> selected="selected"<# } #>><?php esc_html_e( 'Live Select', 'xforwoocommerce' ); ?></option>
											<# } #>	
											<option value="html"<# if ( data.style == 'html' ) { #> selected="selected"<# } #>>HTML</option>
											<# if ( data.type == 'ivpa_custom' ) { #>
												<option value="input"<# if ( data.style == 'input' ) { #> selected="selected"<# } #>><?php esc_html_e( 'Input Field', 'xforwoocommerce' ); ?></option>
												<option value="checkbox"<# if ( data.style == 'checkbox' ) { #> selected="selected"<# } #>><?php esc_html_e( 'Checkbox', 'xforwoocommerce' ); ?></option>
												<option value="textarea"<# if ( data.style == 'textarea' ) { #> selected="selected"<# } #>><?php esc_html_e( 'Textarea', 'xforwoocommerce' ); ?></option>
												<option value="system"<# if ( data.style == 'system' ) { #> selected="selected"<# } #>><?php esc_html_e( 'System Select', 'xforwoocommerce' ); ?></option>
											<# } #>
										</select>
									</span>
									{{{ data.controls }}}
								</div>
							</div>
						<# } #>
						<div id="svx-customizer-terms" class="svx-terms-list" data-taxonomy="{{ data.taxonomy }}">
							{{{ data.terms }}}
						</div>
					</div>
				</div>
			</script>

			<script type="text/template" id="tmpl-svx-customizer-style-text">
				<span class="svx-special-option">
					<label><?php esc_html_e( 'Style', 'xforwoocommerce' ); ?></label>
					<select class="svx-terms-style-change" data-option="style">
						<option value="border"<# if ( data.border == 'round' ) { #> selected="selected"<# } #>><?php esc_html_e( 'Border', 'xforwoocommerce' ); ?></option>
						<option value="background"<# if ( data.style == 'background' ) { #> selected="selected"<# } #>><?php esc_html_e( 'Background', 'xforwoocommerce' ); ?></option>
						<option value="round"<# if ( data.style == 'round' ) { #> selected="selected"<# } #>><?php esc_html_e( 'Round', 'xforwoocommerce' ); ?></option>
					</select>
				</span>
				<span class="svx-special-option">
					<label><?php esc_html_e( 'Normal', 'xforwoocommerce' ); ?></label>
					<input type="text" class="svx-terms-color svx-terms-style-change" data-option="normal"<# if ( data.normal ) { #> value="{{ data.normal }}"<# } #> />
				</span>
				<span class="svx-special-option">
					<label><?php esc_html_e( 'Active', 'xforwoocommerce' ); ?></label>
					<input type="text" class="svx-terms-color svx-terms-style-change" data-option="active"<# if ( data.active ) { #> value="{{ data.active }}"<# } #> />
				</span>
				<span class="svx-special-option">
					<label><?php esc_html_e( 'Disabled', 'xforwoocommerce' ); ?></label>
					<input type="text" class="svx-terms-color svx-terms-style-change" data-option="disabled"<# if ( data.disabled ) { #> value="{{ data.disabled }}"<# } #> />
				</span>
				<span class="svx-special-option">
					<label><?php esc_html_e( 'Out of stock', 'xforwoocommerce' ); ?></label>
					<input type="text" class="svx-terms-color svx-terms-style-change" data-option="outofstock"<# if ( data.outofstock ) { #> value="{{ data.outofstock }}"<# } #> />
				</span>
			</script>

			<script type="text/template" id="tmpl-svx-customizer-style-swatch">
				<span class="svx-special-option">
					<label><?php esc_html_e( 'Show labels', 'xforwoocommerce' ); ?></label>
					<select class="svx-terms-style-change" data-option="label">
						<option value="no"<# if ( data.label == 'no' ) { #> selected="selected"<# } #>>No</option>
						<option value="side"<# if ( data.label == 'side' ) { #> selected="selected"<# } #>>Aside</option>
					</select>
				</span>
				<span class="svx-special-option">
					<label><?php esc_html_e( 'Design', 'xforwoocommerce' ); ?></label>
					<select class="svx-terms-style-change" data-option="swatchDesign">
						<option value="square"<# if ( data.swatchDesign == 'square' ) { #> selected="selected"<# } #>>Square</option>
						<option value="round"<# if ( data.swatchDesign == 'round' ) { #> selected="selected"<# } #>>Round</option>
					</select>
				</span>
				<span class="svx-special-option svx-special-option-sm">
					<label><?php esc_html_e( 'Swatch size', 'xforwoocommerce' ); ?></label>
					<input type="text" class="svx-terms-style-change" data-option="size"<# if ( data.size ) { #> value="{{ data.size }}"<# } #> />
				</span>
			</script>

			<script type="text/template" id="tmpl-svx-customizer-term">
				<div class="svx-terms-list-item" data-id="{{ data.id }}" data-slug="{{ data.slug }}">
					<div class="svx-term-badge">
						<span class="svx-term-item-title">{{ data.title }}</span>
						<# if ( data.type == 'meta' || data.type == 'meta_range' || data.type == 'price' || data.type == 'per_page' ) { #>
							<span class="svx-term-item-icon svx-term-remove-button" data-id="{{ data.id }}"></span>
						<# } #>
						<# if ( data.type == 'meta' || data.type == 'meta_range' || data.type == 'price' || data.type == 'per_page' || data.type =='orderby' || data.type =='vendor' || data.type =='instock' || data.order == 'true' ) { #>
							<span class="svx-term-item-icon svx-term-move-button"></span>
						<# } #>
					</div>
					<div class="svx-term-options-holder">
						<div class="svx-term-option">
							<label><?php esc_html_e( 'Name', 'xforwoocommerce' ); ?></label>
							<input type="text" class="svx-terms-change" name="name" />
						</div>

						<# if ( data.type == 'meta' || data.type == 'meta_range' ) { #>
							<div class="svx-term-option">
								<label><?php esc_html_e( 'Meta value', 'xforwoocommerce' ); ?></label>
								<input type="text" class="svx-terms-change" name="data" />
							</div>
						<# } #>

						<# if ( data.style !== 'text' && data.style !== 'selectbox' && data.style !== 'system' && data.style !== 'selectize' ) { #>
							<div class="svx-term-option">
								<label><?php esc_html_e( 'Value', 'xforwoocommerce' ); ?></label>
								<# if ( data.style !== 'html' ) { #>
									<input type="text" class="svx-terms-change <# if ( data.style ) { #>svx-terms-{{ data.style }}<# } #>" name="value" />
								<# }
								else { #>
									<textarea class="svx-terms-change <# if ( data.style ) { #>svx-terms-{{ data.style }}<# } #>" name="value"></textarea>
								<# } #>
								<# if ( data.style == 'image' ) { #>
									<span class="svx-button svx-terms-image-add">Add Image +</span>
								<# } #>
							</div>
						<# } #>

						<# if ( data.type == 'price' ) { #>
							<div class="svx-term-option">
								<label><?php esc_html_e( 'Min', 'xforwoocommerce' ); ?></label>
								<input type="number" class="svx-terms-change" name="min" />
								<label><?php esc_html_e( 'Max', 'xforwoocommerce' ); ?></label>
								<input type="number" class="svx-terms-change" name="max" />
							</div>
						<# } #>

						<# if ( data.type == 'per_page' ) { #>
							<div class="svx-term-option">
								<label><?php esc_html_e( 'Count', 'xforwoocommerce' ); ?></label>
								<input type="number" class="svx-terms-change" name="count" />
							</div>
						<# } #>

						<# if ( data.type !== 'range' && data.type !== 'meta_range' && data.style !== 'system' && data.style !== 'selectize' ) { #>
							<div class="svx-term-option">
								<label><?php esc_html_e( 'Tooltip', 'xforwoocommerce' ); ?></label>
								<textarea class="svx-terms-change" name="tooltip"></textarea>
							</div>
						<# } #>
					</div>
				</div>
			</script>

			<script type="text/template" id="tmpl-svx-customizer-term-ivpa">
				<div class="svx-terms-list-item" data-id="{{ data.id }}" data-slug="{{ data.slug }}">
					<div class="svx-term-badge">
						<span class="svx-term-item-title">{{ data.title }}</span>
						<# if ( data.type == 'ivpa_custom' ) { #>
							<span class="svx-term-item-icon svx-term-remove-button" data-id="{{ data.id }}"></span>
						<# } #>
						<# if ( data.type == 'ivpa_custom' || data.order == 'true' ) { #>
							<span class="svx-term-item-icon svx-term-move-button"></span>
						<# } #>
					</div>
					<div class="svx-term-options-holder">
						<div class="svx-term-option">
							<label><?php esc_html_e( 'Name', 'xforwoocommerce' ); ?></label>
							<input type="text" class="svx-terms-change" name="name" />
						</div>

						<# if ( data.style !== 'text' && data.style !== 'selectbox' ) { #>
							<div class="svx-term-option">
								<label><?php esc_html_e( 'Value', 'xforwoocommerce' ); ?></label>
								<# if ( data.style !== 'html' ) { #>
									<input type="text" class="svx-terms-change <# if ( data.style ) { #>svx-terms-{{ data.style }}<# } #>" name="value" />
								<# }
								else { #>
									<textarea class="svx-terms-change <# if ( data.style ) { #>svx-terms-{{ data.style }}<# } #>" name="value"></textarea>
								<# } #>
								<# if ( data.style == 'image' ) { #>
									<span class="svx-button svx-terms-image-add"><?php esc_html_e( 'Add Image +', 'xforwoocommerce' ); ?></span>
								<# } #>
							</div>
						<# } #>

						<# if ( data.type == 'ivpa_custom' ) { #>
							<div class="svx-term-option">
								<label><?php esc_html_e( 'Price', 'xforwoocommerce' ); ?></label>
								<input type="text" class="svx-terms-change" name="price" />
							</div>
						<# } #>

						<div class="svx-term-option">
							<label><?php esc_html_e( 'Tooltip', 'xforwoocommerce' ); ?></label>
							<textarea class="svx-terms-change" name="tooltip"></textarea>
						</div>

					</div>
				</div>
			</script>
				<?php

			}

			public function add_vars() {

				if ( wp_script_is( 'svx-settings', 'enqueued' ) ) {

					$this->add_templates();

					$vars = apply_filters( 'svx_plugins_settings', array() );

					$slug = isset( $_REQUEST['tab'] ) && array_key_exists( $_REQUEST['tab'], $vars ) ? $_REQUEST['tab'] : '';

					if ( isset( $vars[ $slug ] ) ) {
						$vars[ $slug ]['nonce'] = wp_create_nonce( 'svx-nonce' );
						$vars[ $slug ]['ajax']  = esc_url( admin_url( 'admin-ajax.php' ) );

						wp_localize_script( 'svx-settings', 'svx', $vars[ $slug ] );
					}
				}

			}

			public function ajax_die( $opt ) {
				$opt['success'] = false;
				wp_send_json( $opt );
				exit;
			}


			public function _terms_get_options( $terms, &$ready, &$level, $mode ) {
				foreach ( $terms as $term ) {
					if ( 'select' === $mode ) {
						$ready[ $term->term_id ] = ( $level > 0 ? str_repeat( '-', $level ) . ' ' : '' ) . $term->name;
					} else {
						$ready[] = array(
							'id'   => $term->term_id,
							'name' => ( $level > 0 ? str_repeat( '-', $level ) . ' ' : '' ) . $term->name,
							'slug' => $term->slug,
						);
					}
					if ( ! empty( $term->children ) ) {
						$level++;
						SevenVX()->_terms_get_options( $term->children, $ready, $level, $mode );
						$level--;
					}
				}
			}

			public function _terms_sort_hierarchicaly( array &$cats, array &$into, $parent_id = 0 ) {
				foreach ( $cats as $i => $cat ) {
					if ( $cat->parent === $parent_id ) {
						$into[ $cat->term_id ] = $cat;
						unset( $cats[ $i ] );
					}
				}
				foreach ( $into as $top_cat ) {
					$top_cat->children = array();
					SevenVX()->_terms_sort_hierarchicaly( $cats, $top_cat->children, $top_cat->term_id );
				}
			}

			public function remove_languages() {
				if ( class_exists( 'SitePress' ) ) {
					do_action( 'wpml_switch_language', apply_filters( 'wpml_default_language', null ) );
				}
			}

			public function _terms_get( $set, $mode ) {
				$taxonomy = $set[2];
				$ready    = array();

				if ( taxonomy_exists( $taxonomy ) ) {

					if ( isset( $set[4] ) && 'no_lang' === $set[4] && $this->language() ) {
						$this->remove_languages();
					}

					$args = array(
						'taxonomy'     => $taxonomy,
						'hide_empty'   => 0,
						'hierarchical' => ( is_taxonomy_hierarchical( $taxonomy ) ? 1 : 0 ),
					);

					$terms = get_terms( $args );

					if ( is_taxonomy_hierarchical( $taxonomy ) ) {
						$terms_sorted = array();
						SevenVX()->_terms_sort_hierarchicaly( $terms, $terms_sorted );
						$terms = $terms_sorted;
					}

					if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
						$var = 0;
						SevenVX()->_terms_get_options( $terms, $ready, $var, $mode );
					}
				}

				return $ready;
			}

			public function _terms_decode( $str ) {
				$str = preg_replace( '/%u([0-9a-f]{3,4})/i', "&#x\\1;", urldecode( $str ) );
				return html_entity_decode( $str, ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401, 'UTF-8' );
			}

			public function _types_get() {
				$types = wc_get_product_types();
				$ready = array();
				if ( ! empty( $types ) ) {
					foreach ( $types as $k => $v ) {
						$ready[ $k ] = $v;
					}
				}
				return $ready;
			}

			public function _taxonomies_get() {
				$taxonomies = get_object_taxonomies( 'product' );
				$ready      = array();
				if ( ! empty( $taxonomies ) ) {
					foreach ( $taxonomies as $k ) {
						if ( 'pa_' === substr( $k, 0, 3 ) ) {
							$ready[ $k ] = wc_attribute_label( $k );
						} elseif ( taxonomy_exists( $k ) ) {
							$taxonomy = get_taxonomy( $k );
							if ( $taxonomy->public ) {
								$ready[ $k ] = $taxonomy->label;
							}
						}
					}
				}
				return $ready;
			}

			public function _attributes_get_alt() {
				$attributes = get_object_taxonomies( 'product' );
				$ready      = array();
				if ( ! empty( $attributes ) ) {
					foreach ( $attributes as $k ) {
						if ( 'pa_' === substr( $k, 0, 3 ) ) {
							$ready[ $k ] = wc_attribute_label( $k );
						}
					}
				}
				return $ready;
			}

			public function _attributes_get() {
				$attributes = wc_get_attribute_taxonomies();
				$ready      = array();

				if ( ! empty( $attributes ) ) {
					foreach ( $attributes as $attribute ) {
						$ready[ 'pa_' . $attribute->attribute_name ] = $attribute->attribute_label;
					}
				}

				return $ready;
			}

			public function array_overlay( $a, $b ) {
				foreach ( $b as $k => $v ) {
					$a[ $k ] = $v;
				}
				return $a;
			}

			public function ajax_factory() {
				check_ajax_referer( 'svx-nonce', 'nonce' );

				$opt = array(
					'success' => true,
				);

				if ( ! current_user_can( 'manage_woocommerce' ) ) {
					SevenVX()->ajax_die( $opt );
				}

				if ( ! isset( $_POST['svx']['type'] ) ) {
					SevenVX()->ajax_die( $opt );
				}

				if ( apply_filters( 'svx_can_you_save', false ) ) {
					$this->ajax_die( $opt );
				}

				switch ( $_POST['svx']['type'] ) {

					case 'get_control_options':
						$set = explode( ':', $_POST['svx']['settings'] );

						switch ( $set[1] ) {

							case 'image_sizes':
								$image_array = array();
								$image_sizes = get_intermediate_image_sizes();
								foreach ( $image_sizes as $image_size ) {
									$image_array[ $image_size ] = $image_size;
								}
								wp_send_json( $image_array );
								exit;
							break;
							case 'wp_options':
								wp_send_json( get_option( substr( $_POST['svx']['settings'], 16 ) ) );
								exit;
							break;
							case 'users':
								$return = array();
								$users  = get_users( array( 'fields' => array( 'id', 'display_name' ) ) );

								foreach ( $users as $user ) {
									$return[ $user->id ] = $user->display_name;
								}

								wp_send_json( $return );
								exit;
							break;
							case 'product_attributes':
								wp_send_json( SevenVX()->_attributes_get_alt() );
								exit;
							break;
							case 'product_taxonomies':
								wp_send_json( SevenVX()->_taxonomies_get() );
								exit;
							break;
							case 'product_types':
								wp_send_json( SevenVX()->_types_get() );
								exit;
							break;
							case 'taxonomy':
								wp_send_json( SevenVX()->_terms_get( $set, 'select' ) );
								exit;
							break;
							case 'terms':
								wp_send_json( SevenVX()->_terms_get( $set, 'terms' ) );
								exit;
							break;
							default:
								SevenVX()->ajax_die( $opt );
								break;

						}

						break;

					case 'save':
						$slc = isset( $_POST['svx']['delete'] ) && is_array( $_POST['svx']['delete'] ) ? $_POST['svx']['delete'] : array();

						if ( ! empty( $slc ) ) {
							foreach ( $slc as $k => $v ) {
								delete_option( $v );
							}
						}

						$sld = isset( $_POST['svx']['solids'] ) && is_array( $_POST['svx']['solids'] ) ? $_POST['svx']['solids'] : array();

						if ( ! empty( $sld ) ) {
							foreach ( $sld as $k => $v ) {
								$val = isset( $v['val'] ) && ! empty( $v['val'] ) ? $v['val'] : false;
								if ( ! is_array( $val ) ) {
									$val = array();
								}
								$std = get_option( $k, array() );
								if ( ! is_array( $std ) ) {
									$std = array();
								}

								if ( empty( $val ) ) {
									update_option( $k, '', false );
								} else {

									update_option( $k, $val, false );
								}
							}
						}

						$stg = isset( $_POST['svx']['settings'] ) && is_array( $_POST['svx']['settings'] ) ? $_POST['svx']['settings'] : array();

						foreach ( $stg as $k => $v ) {
							if ( isset( $v['autoload'] ) ) {
								if ( 'true' === $v['autoload'] ) {
									$opt['auto'][ $k ] = $v['val'];
								} elseif ( 'false' === $v['autoload'] ) {
									$opt['std'][ $k ] = isset( $v['val'] ) ? $v['val'] : false;
								}
							}
						}

						$opt = apply_filters( 'svx_ajax_save_settings', $opt );

						if ( isset( $opt['std'] ) && ! empty( $opt['std'] ) && is_array( $opt['std'] ) ) {
							update_option( 'svx_settings_' . $_POST['svx']['plugin'], array_merge( get_option( 'svx_settings_' . $_POST['svx']['plugin'], array() ), $opt['std'] ), false );
						}

						$less = isset( $_POST['svx']['less'] ) && is_array( $_POST['svx']['less'] ) ? $_POST['svx']['less'] : array();

						if ( ! empty( $less['length'] ) && $less['length'] > 0 ) {
							$option = isset( $less['option'] ) ? $less['option'] : false;
							if ( false !== $option ) {
								unset( $less['option'] );
								if ( isset( $less['solids'] ) ) {
									$solids = $less['solids'];
									if ( isset( $solids['name'] ) ) {
										$presets = $opt['std'][ $solids['name'] ];
										foreach ( $presets as $b => $j ) {
											$preset = apply_filters( 'svx_before_solid' . $solids['solid'], get_option( $solids['solid'] . sanitize_title( $b ), array() ) );
											if ( isset( $preset['name'] ) ) {
												foreach ( $solids['options'] as $n ) {
													if ( isset( $preset[ $n ] ) ) {
														switch ( $n ) {
															case 'name':
																$less[ $n . 's' ] .= '' === $less[ $n . 's' ] ? sanitize_title( $b ) : ',' . sanitize_title( $b );
																break;
															default:
																$less[ $n . 's' ] .= '' === $less[ $n . 's' ] ? $preset[ $n ] : ',' . $preset[ $n ];
																break;
														}
													}
												}
											}
										}
									}
									$less['url'] = '~"' . $less['solids']['url'] . '"';
									unset( $less['solids'] );
								}

								$compiled = self::compile_less( $solids, $less );
							}
						}

						if ( isset( $compiled ) ) {
							$opt['auto'][ $option ] = $compiled;
						}

						if ( isset( $opt['auto'] ) && ! empty( $opt['auto'] ) && is_array( $opt['auto'] ) ) {
							$opt['auto'] = array_merge( get_option( 'svx_autoload', array() ), $opt['auto'] );
						}

						$opt = apply_filters( 'svx_ajax_save_settings_auto', $opt );

						if ( ! empty( $opt['auto'] ) ) {
							update_option( 'svx_autoload', $opt['auto'], true );
						}

						do_action( 'svx_ajax_saved_settings_' . $_POST['svx']['plugin'], $opt );

						wp_send_json( array( 'success' => true ) );
						exit;

					break;

					case 'export':
						$stg = isset( $_POST['svx']['settings'] ) && is_array( $_POST['svx']['settings'] ) ? $_POST['svx']['settings'] : array();

						if ( isset( $stg['auto'] ) && ! empty( $stg['auto'] ) && is_array( $stg['auto'] ) ) {
							$backup_auto = get_option( 'svx_autoload', array() );

							foreach ( $stg['auto'] as $k ) {
								if ( isset( $backup_auto[ $k ] ) ) {
									$exp['auto'][ $k ] = $backup_auto[ $k ];
								}
							}
						}

						if ( isset( $stg['std'] ) && ! empty( $stg['std'] ) && is_array( $stg['std'] ) ) {
							$exp['std'] = get_option( 'svx_settings_' . $_POST['svx']['plugin'], array() );
						}

						if ( isset( $stg['solids'] ) && ! empty( $stg['solids'] ) && is_array( $stg['solids'] ) ) {
							foreach ( $stg['solids'] as $k ) {
								$exp['solids'][ $k ] = get_option( $k );
							}
						}

						wp_send_json( $this->get_for_options( $exp ) );
						exit;
					break;

					case 'import':
						$stg = isset( $_POST['svx']['settings'] ) ? $_POST['svx']['settings'] : '';

						if ( '' !== $stg ) {

							$opt = $this->get_for_options( json_decode( stripslashes( $stg ), true ) );

							$opt = apply_filters( 'svx_ajax_save_settings', $opt );

							if ( isset( $opt['auto'] ) && ! empty( $opt['auto'] ) && is_array( $opt['auto'] ) ) {
								$opt['auto'] = array_merge( get_option( 'svx_autoload', array() ), $opt['auto'] );
								update_option( 'svx_autoload', $opt['auto'], true );
							}

							if ( isset( $opt['std'] ) && ! empty( $opt['std'] ) && is_array( $opt['std'] ) ) {
								update_option( 'svx_settings_' . $_POST['svx']['plugin'], $opt['std'], false );
							}

							if ( isset( $opt['solids'] ) && ! empty( $opt['solids'] ) && is_array( $opt['solids'] ) ) {
								foreach ( $opt['solids'] as $key => $solid ) {
									update_option( $key, $solid, false );
								}
							}

							wp_send_json( array( 'success' => true ) );
							exit;
						}
						wp_send_json( array( 'success' => false ) );
						exit;
					break;

					case 'backup':
						$bkp = array();
						$stg = isset( $_POST['svx']['settings'] ) && is_array( $_POST['svx']['settings'] ) ? $_POST['svx']['settings'] : array();

						if ( isset( $stg['auto'] ) && ! empty( $stg['auto'] ) && is_array( $stg['auto'] ) ) {
							$backup_auto = get_option( 'svx_autoload', array() );
							foreach ( $stg['auto'] as $k ) {
								if ( isset( $backup_auto[ $k ] ) ) {
									$bkp['auto'][ $k ] = $backup_auto[ $k ];
								}
							}
						}

						if ( isset( $stg['std'] ) && ! empty( $stg['std'] ) && is_array( $stg['std'] ) ) {
							$bkp['std'] = get_option( 'svx_settings_' . $_POST['svx']['plugin'], array() );
						}

						if ( isset( $stg['solids'] ) && ! empty( $stg['solids'] ) && is_array( $stg['solids'] ) ) {
							foreach ( $stg['solids'] as $k ) {
								$bkp['solids'][ $k ] = get_option( $k );
							}
						}

						$bkp['time'] = time();

						update_option( '_svx_settings_backup_' . $_POST['svx']['plugin'], $bkp );

						wp_send_json( array( 'success' => true ) );
						exit;
					break;

					case 'restore':
						$bkp = get_option( '_svx_settings_backup_' . $_POST['svx']['plugin'] );

						if ( isset( $bkp['auto'] ) && ! empty( $bkp['auto'] ) && is_array( $bkp['auto'] ) ) {
							$bkp['auto'] = array_merge( get_option( 'svx_autoload', array() ), $bkp['auto'] );
							update_option( 'svx_autoload', $bkp['auto'], true );
						}

						if ( isset( $bkp['std'] ) && ! empty( $bkp['std'] ) && is_array( $bkp['std'] ) ) {
							update_option( 'svx_settings_' . $_POST['svx']['plugin'], $bkp['std'], false );
						}

						if ( isset( $bkp['solids'] ) && ! empty( $bkp['solids'] ) && is_array( $bkp['solids'] ) ) {
							foreach ( $bkp['solids'] as $key => $solid ) {
								update_option( $key, $solid, false );
							}
						}

						wp_send_json( array( 'success' => true ) );
						exit;
					break;

					case 'reset':
						$stg = isset( $_POST['svx']['settings'] ) && is_array( $_POST['svx']['settings'] ) ? $_POST['svx']['settings'] : array();

						if ( isset( $stg['auto'] ) && ! empty( $stg['auto'] ) && is_array( $stg['auto'] ) ) {
							$opt = get_option( 'svx_autoload', array() );

							foreach ( $opt as $k => $v ) {
								if ( in_array( $k, $stg['auto'], true ) ) {
									unset( $opt[ $k ] );
								}
							}

							update_option( 'svx_autoload', $opt, true );
						}

						delete_option( 'svx_settings_' . $_POST['svx']['plugin'] );
						if ( 'product_filter' === $_POST['svx']['plugin'] ) {
							if ( false !== get_option( 'wc_settings_prdctfltr_version', false ) ) {
								delete_option( 'wc_settings_prdctfltr_version' );
							}
						}

						if ( ! empty( $stg['solids'] ) && is_array( $stg['solids'] ) ) {
							foreach ( $stg['solids'] as $key ) {
								delete_option( $key );
							}
						}

						wp_send_json( array( 'success' => true ) );
						exit;
					break;

					case 'filter':
						SevenVX()->_filter_get();
						break;

					default:
						SevenVX()->ajax_die( $opt );
						break;

				}

			}

			public function curl_url( $url ) {
				$ch = curl_init();

				curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, true );
				curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
				curl_setopt( $ch, CURLOPT_URL, $url );

				$cr = curl_exec( $ch );

				curl_close( $ch );

				return $cr;
			}

			public function _filter_get() {

				$key = isset( $_POST['svx']['settings'] ) ? $_POST['svx']['settings'] : false;

				if ( false === $key ) {
					SevenVX()->ajax_die( array() );
				}

				wp_send_json( Prdctfltr()->get_preset( $key ) );
				exit;

			}

			public function get_for_options( $stg ) {
				$opt = array(
					'auto' => array(),
					'std'  => array(),
				);

				if ( isset( $stg['auto'] ) && is_array( $stg['auto'] ) ) {
					$opt['auto'] = $stg['auto'];
				}

				if ( isset( $stg['std'] ) && is_array( $stg['std'] ) ) {
					$opt['std'] = $stg['std'];
				}

				if ( isset( $stg['solids'] ) && is_array( $stg['solids'] ) ) {
					$opt['solids'] = $stg['solids'];
				}

				return $opt;
			}

			public static function compile_less( $solids, $less_variables ) {

				$access_type = get_filesystem_method();

				if ( 'direct' === $access_type ) {
					$creds = request_filesystem_credentials( site_url() . '/wp-content/', '', false, false, array() );

					if ( ! WP_Filesystem( $creds ) ) {
						return false;
					}

					require_once 'less/lessc.inc.php';

					$src = $solids['url'] . '/assets/less/' . $solids['file'] . '.less';

					$src_scheme = wp_parse_url( $src, PHP_URL_SCHEME );

					$wp_content_url_scheme = wp_parse_url( WP_CONTENT_URL, PHP_URL_SCHEME );

					if ( $src_scheme !== $wp_content_url_scheme ) {

						$src = set_url_scheme( $src, $wp_content_url_scheme );

					}

					$file = str_replace( WP_CONTENT_URL, WP_CONTENT_DIR, esc_url( $src ) );

					$less = new lessc();

					foreach ( $less_variables as $k => $v ) {
						if ( is_array( $v ) ) {
							$less_variables[ $k ] = implode( ',', $v );
						}
					}

					$less->setFormatter( 'compressed' );
					$less->setPreserveComments( 'false' );
					$less->setVariables( $less_variables );

					$compile = $less->cachedCompile( $file );

					$upload = wp_upload_dir();

					$id = uniqid();

					$check = get_option( 'svx_autoload', array() );

					if ( $check ) {
						$cached = isset( $check[ $solids['option'] ] ) ? $check[ $solids['option'] ] : false;
					}

					if ( false === $cached ) {
						$cached_transient = '';
					} else {
						if ( isset( $cached['id'] ) ) {
							$cached_transient = $cached['id'];
							if ( '' !== $cached['last_known'] ) {
								$delete = untrailingslashit( $upload['basedir'] ) . '/' . sanitize_file_name( $solids['file'] . '-' . $cached['last_known'] . '.css' );
								if ( is_writable( $delete ) ) {
									unlink( $delete );
								}
							}
						} else {
							$cached_transient = '';
						}
					}

					global $wp_filesystem;
					if ( $wp_filesystem->put_contents( untrailingslashit( $upload['basedir'] ) . '/' . sanitize_file_name( $solids['file'] . '-' . $id . '.css' ), self::optimize_less( $compile['compiled'] ), FS_CHMOD_FILE ) ) {
						return array(
							'id'         => $id,
							'url'        => untrailingslashit( $upload['baseurl'] ) . '/' . sanitize_file_name( $solids['file'] . '-' . $id . '.css' ),
							'last_known' => $cached_transient,
						);
					}
				}

			}

			public static function optimize_less( $file_contents ) {
				$file_contents = preg_replace( '/([\w-]+)\s*:\s*unset;?/', '', $file_contents );
				$file_contents = preg_replace( '/([\w-]+)\s*:\s*unset?/', '', $file_contents );

				return $file_contents;
			}

			public static function get_language() {
				return false;

				// New style
				if ( ! empty( self::language() ) ) {
					return ' data-language="' . esc_attr( self::language() ) . '"';
				}
				return false;
			}

			/*public static function languages() {
				$get_languages = array();

				if ( defined( 'ICL_SITEPRESS_VERSION' ) ) {
					// WPML plugin is active
					global $sitepress;
					$languages = $sitepress->get_active_languages();

					// Now, $languages will contain an array of language information
					// You can use this information as needed
					foreach ( $languages as $code => $language ) {
						// Access language details
						$code = $language['code']; // Language code, e.g., 'en', 'fr', 'es', etc.

						// Use the language information as needed
						$get_languages[] = $code;
					}
				} elseif ( function_exists( 'pll_languages_list' ) ) {
					// Polylang plugin is active
					$languages = pll_languages_list();

					// Now, $languages will contain an array of language information
					// You can use this information as needed
					foreach ( $languages as $language ) {
						// Access language details
						$code = $language->locale; // Locale code, e.g., 'en_US', 'fr_FR', 'es_ES', etc.

						// Use the language information as needed
						$get_languages[] = $code;
					}
				} elseif ( function_exists( 'qtrans_getSortedLanguages' ) ) {
					// qTranslate plugin is active
					$languages = qtrans_getSortedLanguages();

					// Now, $languages will contain an array of language information
					// You can use this information as needed
					foreach ( $languages as $language ) {
						// Access language details
						$code = $language['code']; // Language code, e.g., 'en', 'fr', 'es', etc.

						// Use the language information as needed
						$get_languages[] = $code;
					}
				}

				return empty( $get_languages ) ? false : $get_languages;
			}*/

			public static function language() {
				if ( self::$lang ) {
					return self::$lang;
				}

				self::$lang = '';

				if ( class_exists( 'SitePress' ) ) {
					$default  = apply_filters( 'wpml_default_language', null );
					$language = apply_filters( 'wpml_current_language', null );
					if ( $default !== $language ) {
						$doit = $language;
					}
				}

				if ( function_exists( 'qtranxf_getLanguageDefault' ) ) {
					$default  = qtranxf_getLanguageDefault();
					$language = qtranxf_getLanguage();
					if ( $default !== $language ) {
						$doit = $language;
					}
				}

				if ( function_exists( 'pll_default_language' ) ) {
					$default  = pll_default_language();
					$language = pll_current_language();
					if ( $default !== $language ) {
						$doit = $language;
					}
				}

				if ( isset( $doit ) ) {
					self::$lang = $doit;
				}

				return self::$lang;
			}

			public static function stripslashes_deep( $value ) {
				$value = is_array( $value ) ? array_map( 'stripslashes_deep', $value ) : stripslashes( $value );
				return $value;
			}

			/*public static function sanitize_color( $color ) {
				if ( empty( $color ) || is_array( $color ) ) {
					return 'rgba(0,0,0,0)';
				}

				if ( false === strpos( $color, 'rgba' ) ) {
					return sanitize_hex_color( $color );
				}

				$color = str_replace( ' ', '', $color );
				sscanf( $color, 'rgba(%d,%d,%d,%f)', $red, $green, $blue, $alpha );
				return 'rgba(' . $red . ',' . $green . ',' . $blue . ',' . $alpha . ')';
			}*/

			public function _do_options( $plugins, $slug ) {

				$backup = get_option( '_svx_settings_backup_' . $slug, '' );

				if ( '' !== $backup && isset( $backup['time'] ) ) {
					$plugins[ $slug ]['backup'] = gmdate( get_option( 'time_format', '' ) . ', ' . get_option( 'date_format', 'd/m/Y' ), $backup['time'] );
				}

				foreach ( $plugins[ $slug ]['settings'] as $k => $v ) {
					if ( empty( $v ) || isset( $v['section'] ) && 'dashboard' === $v['section'] ) {
						continue;
					}

					$get = isset( $v['translate'] ) && ! empty( $this->language() ) ? $v['id'] . '_' . $this->language() : $v['id'];

					$set = isset( $v['default'] ) ? $v['default'] : '';

					if ( isset( $v['autoload'] ) && true === $v['autoload'] ) {
						$set = SevenVXGet()->get_option_autoload( $get, $set );
					} else {
						$set = SevenVXGet()->get_option( $get, $slug, $set );
					}

					if ( false === $set ) {
						$set = isset( $v['default'] ) ? $v['default'] : '';
					}

					$plugins[ $slug ]['settings'][ $k ]['val'] = $this->stripslashes_deep( $set );
				}

				return apply_filters( 'xforwc_' . $slug . '_settings', $plugins );
			}

		}

		function SevenVX() {
			return SevenVXSettings::instance();
		}

		SevenVXSettings::instance();

	}

endif;
