HEX
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.30
System: Linux iZj6c1151k3ad370bosnmsZ 3.10.0-1160.76.1.el7.x86_64 #1 SMP Wed Aug 10 16:21:17 UTC 2022 x86_64
User: root (0)
PHP: 7.4.30
Disabled: NONE
Upload Files
File: /var/www/html/somonline.org/wp-content/themes/zeen/inc/classes/class-zeen-control-typo.php
<?php
/**
 * Control Fonts
 *
 * @package Zeen
 * @since 1.0.0
 */
class Zeen_Control_Typo extends WP_Customize_Control {

	/**
	 * Control type
	 *
	 * @since  1.0.0
	 */
	public $type = 'zeen-fonts';

	/**
	 * Selected font
	 *
	 * @since  1.0.0
	 */
	public $selected;

	/**
	 * Enqueue control related scripts
	 *
	 * @since 1.0.0
	 */
	public function enqueue() {
		wp_enqueue_script( 'zeen-control-typo', get_parent_theme_file_uri( 'assets/admin/js/zeen-control-typo.js' ), array( 'jquery' ), false, true );
	}

	/**
	 * Render the content of the control
	 *
	 * @since 1.0.0
	 */
	public function render_content() {
		$selected = '';
		$selected_variants = $selected_subsets = array();

		if ( isset( $this->settings[0] ) ) {
			$selected = $this->settings[0]->value();
			$selected_variants = $this->choices->$selected->variants;
			$selected_subsets = $this->choices->$selected->subsets;
		}

	?>
		<label>
			<div class="customize-control control-vertical-c font-main">
				<span class="customize-control-title customize-control-title-top"><?php echo esc_html__( 'Google Font', 'zeen' ); ?></span>
				<?php
				if ( isset( $this->description ) && '' !== $this->description ) {
					echo '<span class="description customize-control-description">' . sanitize_text_field( $this->description ) . '</span>';
				} ?>
				<div class="zeen-select-wrap">
					 <select data-customize-setting-link="<?php echo esc_attr( $this->settings[0]->id ); ?>" class="zeen-fonts" name="_customize-zeen-fonts-<?php echo esc_attr( $this->id ); ?>[]">
						<optgroup label="<?php esc_attr_e( 'Recommended Google Fonts', 'zeen' ); ?>">
						<?php foreach ( $this->recommended() as $key => $value ) { ?>
								<option value="<?php echo esc_attr( $key ); ?>" data-category="<?php echo esc_attr( $value->category ); ?>" data-variants="<?php echo esc_attr( implode( ',', $value->variants ) ); ?>" data-subsets="<?php echo esc_attr( implode( ',', $value->subsets ) ); ?>"><?php echo sanitize_text_field( $key ); ?></option>
							<?php } ?>
						</optgroup>
						<optgroup label="<?php esc_attr_e( 'All Google Fonts', 'zeen' ); ?>">
						<?php foreach ( $this->choices as $key => $value ) { ?>
							<option value="<?php echo esc_attr( $key ); ?>" data-category="<?php echo esc_attr( $value->category ); ?>" data-variants="<?php echo esc_attr( implode( ',', $value->variants ) ); ?>" data-subsets="<?php echo esc_attr( implode( ',', $value->subsets ) ); ?>"><?php echo sanitize_text_field( $key ); ?></option>
						<?php } ?>
						</optgroup>>
					</select>
				</div>
			</div>
			<div class="customize-control control-vertical-c font-weight">
				<span class="customize-control-title"><?php echo esc_html__( 'Font Weight', 'zeen' ); ?></span>
				<div class="zeen-select-wrap">
					<select data-customize-setting-link="<?php echo esc_attr( $this->settings[1]->id ); ?>" class="zeen-font-weight" data-default-weight="<?php echo esc_attr( $this->settings[1]->default ); ?>" name="_customize-zeen-fonts-<?php echo esc_attr( $this->id ); ?>[]">
						<option value="100" <?php disabled( false, in_array( '100', $selected_variants ) ); ?>>Thin (100)</option>
						<option value="100italic" <?php disabled( false, in_array( '100italic', $selected_variants ) ); ?>>Thin Italic (100)</option>
						<option value="200" <?php disabled( false, in_array( '200', $selected_variants ) ); ?>>Extra-light (200)</option>
						<option value="200italic" <?php disabled( false, in_array( '200italic', $selected_variants ) ); ?>>Extra-light Italic (200)</option>
						<option value="300" <?php disabled( false, in_array( '300', $selected_variants ) ); ?>>Light (300)</option>
						<option value="300italic" <?php disabled( false, in_array( '300italic', $selected_variants ) ); ?>>Light Italic (300)</option>
						<option value="regular" <?php disabled( false, in_array( 'regular', $selected_variants ) ); ?>>Regular (400)</option>
						<option value="italic" <?php disabled( false, in_array( 'italic', $selected_variants ) ); ?>>Regular Italic (400)</option>
						<option value="500" <?php disabled( false, in_array( '500', $selected_variants ) ); ?>>Medium (500)</option>
						<option value="500italic" <?php disabled( false, in_array( '500italic', $selected_variants ) ); ?>>Medium Italic (500)</option>
						<option value="600" <?php disabled( false, in_array( '600', $selected_variants ) ); ?>>Semi-bold (600)</option>
						<option value="600italic" <?php disabled( false, in_array( '600italic', $selected_variants ) ); ?>>Semi-bold Italic (600)</option>
						<option value="700" <?php disabled( false, in_array( '700', $selected_variants ) ); ?>>Bold (700)</option>
						<option value="700italic" <?php disabled( false, in_array( '700italic', $selected_variants ) ); ?>>Bold Italic (700)</option>
						<option value="800" <?php disabled( false, in_array( '800', $selected_variants ) ); ?>>Extra-bold (800)</option>
						<option value="800italic" <?php disabled( false, in_array( '800italic', $selected_variants ) ); ?>>Extra-bold Italic (800)</option>
						<option value="900" <?php disabled( false, in_array( '900', $selected_variants ) ); ?>>Black (900)</option>
						<option value="900italic" <?php disabled( false, in_array( '900italic', $selected_variants ) ); ?>>Black Italic (900)</option>
					</select>
				</div>
			</div>
			<div class="customize-control control-vertical-c font-subsets">
				<span class="customize-control-title"><?php echo esc_html__( 'Character Set', 'zeen' ); ?></span>
				<div class="zeen-select-wrap zeen-select-wrap-multi">
					<select multiple="true" data-customize-setting-link="<?php echo esc_attr( $this->settings[2]->id ); ?>" class="zeen-font-subsets" data-default-subset="<?php //esc_attr( $this->settings[2]->default ); ?>" name="_customize-zeen-fonts-<?php echo esc_attr( $this->id ); ?>[]">
						<option value="latin" <?php disabled( false, in_array( 'latin', $selected_subsets ) ); ?>><?php esc_attr_e( 'Default', 'zeen' ); ?></option>
						<option value="latin-ext" <?php disabled( false, in_array( 'latin-ext', $selected_subsets ) ); ?>><?php esc_attr_e( 'Latin Extended', 'zeen' ); ?></option>
						<option value="greek" <?php disabled( false, in_array( 'greek', $selected_subsets ) ); ?>><?php esc_attr_e( 'Greek', 'zeen' ); ?></option>
						<option value="greek-ext" <?php disabled( false, in_array( 'greek-ext', $selected_subsets ) ); ?>><?php esc_attr_e( 'Greek Extended', 'zeen' ); ?></option>
						<option value="vietnamese" <?php disabled( false, in_array( 'vietnamese', $selected_subsets ) ); ?>><?php esc_attr_e( 'Vietnamese', 'zeen' ); ?></option>
						<option value="cyrillic" <?php disabled( false, in_array( 'cyrillic', $selected_subsets ) ); ?>><?php esc_attr_e( 'Cyrillic', 'zeen' ); ?></option>
						<option value="cyrillic-ext" <?php disabled( false, in_array( 'cyrillic-ext', $selected_subsets ) ); ?>><?php esc_attr_e( 'Cyrillic Extended', 'zeen' ); ?></option>
						<option value="oriya" <?php disabled( false, in_array( 'oriya', $selected_subsets ) ); ?>><?php esc_attr_e( 'Oriya', 'zeen' ); ?></option>
						<option value="bengali" <?php disabled( false, in_array( 'bengali', $selected_subsets ) ); ?>><?php esc_attr_e( 'Bengali', 'zeen' ); ?></option>
						<option value="korean" <?php disabled( false, in_array( 'korean', $selected_subsets ) ); ?>><?php esc_attr_e( 'Korean', 'zeen' ); ?></option>
						<option value="japanese" <?php disabled( false, in_array( 'japanese', $selected_subsets ) ); ?>><?php esc_attr_e( 'Japanese', 'zeen' ); ?></option>
						<option value="chinese-simplified" <?php disabled( false, in_array( 'chinese-simplified', $selected_subsets ) ); ?>><?php esc_attr_e( 'Chinese Simplified', 'zeen' ); ?></option>
						<option value="chinese-traditional" <?php disabled( false, in_array( 'chinese-traditional', $selected_subsets ) ); ?>><?php esc_attr_e( 'Chinese Traditional', 'zeen' ); ?></option>
						<option value="khmer" <?php disabled( false, in_array( 'khmer', $selected_subsets ) ); ?>><?php esc_attr_e( 'Khmer', 'zeen' ); ?></option>
						<option value="myanmar" <?php disabled( false, in_array( 'myanmar', $selected_subsets ) ); ?>><?php esc_attr_e( 'Myanmar', 'zeen' ); ?></option>
						<option value="devanagari" <?php disabled( false, in_array( 'devanagari', $selected_subsets ) ); ?>><?php esc_attr_e( 'Devanagari', 'zeen' ); ?></option>
					</select>
				</div>
			</div>
			<input type="hidden" class="zeen-font-cat" name="_customize-zeen-fonts-<?php echo esc_attr( $this->id ); ?>[]" data-customize-setting-link="<?php echo esc_attr( $this->settings[3]->id ); ?>">
		</label>
	<?php
	}

	/**
	 * Recommended
	 *
	 * @since 1.0.0
	 */
	public function recommended() {

		$fonts = '{	"Arvo": {"family": "Arvo", "category": "serif", "variants": ["regular", "italic", "700", "700italic"], "subsets": ["latin"] }, "Crimson Text": {"family": "Crimson Text", "category": "serif", "variants": ["regular", "italic", "600", "600italic", "700", "700italic"], "subsets": ["latin"] }, "Droid Sans": {"family": "Droid Sans", "category": "sans-serif", "variants": ["regular", "700"], "subsets": ["latin"] }, "Fira Sans": {"family": "Fira Sans", "category": "sans-serif", "variants": ["100", "100italic", "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic", "800", "800italic", "900", "900italic"], "subsets": ["latin-ext", "greek-ext", "vietnamese", "cyrillic-ext", "latin", "cyrillic", "greek"] }, "Indie Flower": {"family": "Indie Flower", "category": "handwriting", "variants": ["regular"], "subsets": ["latin"] }, "Josefin Slab": {"family": "Josefin Slab", "category": "serif", "variants": ["100", "100italic", "300", "300italic", "regular", "italic", "600", "600italic", "700", "700italic"], "subsets": ["latin"] }, "Lato": {"family": "Lato", "category": "sans-serif", "variants": ["100", "100italic", "300", "300italic", "regular", "italic", "700", "700italic", "900", "900italic"], "subsets": ["latin-ext", "latin"] }, "Merriweather": {"family": "Merriweather", "category": "serif", "variants": ["300", "300italic", "regular", "italic", "700", "700italic", "900", "900italic"], "subsets": ["latin-ext", "cyrillic-ext", "latin", "cyrillic"] }, "Merriweather Sans": {"family": "Merriweather Sans", "category": "sans-serif", "variants": ["300", "300italic", "regular", "italic", "700", "700italic", "800", "800italic"], "subsets": ["latin-ext", "latin"] }, "Montserrat": {"family": "Montserrat", "category": "sans-serif", "variants": ["100", "100italic", "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic", "800", "800italic", "900", "900italic"], "subsets": ["latin-ext", "vietnamese", "latin"] }, "Open Sans": {"family": "Open Sans", "category": "sans-serif", "variants": ["300", "300italic", "regular", "italic", "600", "600italic", "700", "700italic", "800", "800italic"], "subsets": ["latin-ext", "greek-ext", "vietnamese", "cyrillic-ext", "latin", "cyrillic", "greek"] }, "Oswald": {"family": "Oswald", "category": "sans-serif", "variants": ["200", "300", "regular", "500", "600", "700"], "subsets": ["latin-ext", "vietnamese", "latin", "cyrillic"] }, "Playfair Display": {"family": "Playfair Display", "category": "serif", "variants": ["regular", "italic", "700", "700italic", "900", "900italic"], "subsets": ["latin-ext", "latin", "cyrillic"] }, "Raleway": {"family": "Raleway", "category": "sans-serif", "variants": ["100", "100italic", "200", "200italic", "300", "300italic", "regular", "italic", "500", "500italic", "600", "600italic", "700", "700italic", "800", "800italic", "900", "900italic"], "subsets": ["latin-ext", "latin"] }, "Roboto": {"family": "Roboto", "category": "sans-serif", "variants": ["100", "100italic", "300", "300italic", "regular", "italic", "500", "500italic", "700", "700italic", "900", "900italic"], "subsets": ["latin-ext", "greek-ext", "vietnamese", "cyrillic-ext", "latin", "cyrillic", "greek"] }, "Ubuntu": {"family": "Ubuntu", "category": "sans-serif", "variants": ["300", "300italic", "regular", "italic", "500", "500italic", "700", "700italic"], "subsets": ["latin-ext", "greek-ext", "cyrillic-ext", "latin", "cyrillic", "greek"] }, "Work Sans": {"family": "Work Sans", "category": "sans-serif", "variants": ["100", "200", "300", "regular", "500", "600", "700", "800", "900"], "subsets": ["latin-ext", "latin"] } }';

		return json_decode( $fonts );

	}

}