HEX
Server: LiteSpeed
System: Linux server302.web-hosting.com 4.18.0-513.18.1.lve.el8.x86_64 #1 SMP Thu Feb 22 12:55:50 UTC 2024 x86_64
User: synqowzz (1256)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //home/synqowzz/www/wp-content/plugins/jeg-elementor-kit/lib/jeg-framework/util/class-setting.php
<?php
/**
 * Retrieve Setting for Header Builder
 *
 * @author Jegtheme
 * @since 1.0.0
 * @package header-builder
 */

namespace Jeg\Util;

use Jeg\Customizer\Customizer;

/**
 * Class Setting
 *
 * @package Jeg\Util
 */
class Setting {

	/**
	 * Get value of option
	 *
	 * @param string $id name of setting.
	 * @param mixed  $default default option.
	 *
	 * @return mixed
	 */
	protected static function get_option( $id, $default ) {
		$data = explode( '[', rtrim( $id, ']' ) );

		if ( 1 === count( $data ) ) {
			return get_option( $id, $default );
		} else {
			$option = get_option( $data[0] );
			$key    = $data[1];

			if ( isset( $option[ $key ] ) ) {
				return $option[ $key ];
			} else {
				return $default;
			}
		}
	}

	/**
	 * Get value of theme option (get theme mod)
	 *
	 * @param string $id name of setting.
	 * @param mixed  $default default option.
	 *
	 * @return mixed
	 */
	protected static function get_theme_mod( $id, $default ) {
		return get_theme_mod( $id, $default );
	}

	/**
	 * Get Value of setting (either use option or option)
	 *
	 * @param string $id name of setting.
	 * @param mixed  $default default option.
	 *
	 * @return mixed
	 */
	public static function get( $id, $default = null ) {
		$value  = null;
		$fields = Customizer::get_instance()->get_all_fields();

		if ( isset( $fields[ $id ] ) ) {
			$field = $fields[ $id ];
			$type  = isset( $field['option_type'] ) ? $field['option_type'] : 'theme_mod';

			if ( 'option' === $type ) {
				$value = self::get_option( $id, $default );
			} else {
				$value = self::get_theme_mod( $id, $default );
			}
		}

		return apply_filters( 'jeg_setting_value', $value, $id );
	}

}