SILENT KILLERPanel

Current Path: > home > codekrsu > > ameliagraphics.com > wp-content > plugins > > woocommerce > src > Internal > Font


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: /home/codekrsu//ameliagraphics.com/wp-content/plugins//woocommerce/src/Internal/Font

NameTypeSizeLast ModifiedActions
FontFace.php File 8127 bytes March 26 2024 16:56:02.
FontFamily.php File 3106 bytes February 27 2024 18:59:46.

Reading File: /home/codekrsu//ameliagraphics.com/wp-content/plugins//woocommerce/src/Internal/Font/FontFamily.php

<?php
/**
 * FontFamily class file
 */

namespace Automattic\WooCommerce\Internal\Font;

// IMPORTANT: We have to switch to the WordPress API to create the FontFamily post type when they will be implemented: https://github.com/WordPress/gutenberg/issues/58670!

/**
 * Helper class for font family related functionality.
 *
 * @internal Just for internal use.
 */
class FontFamily {

	const POST_TYPE = 'wp_font_family';

	/**
	 * Validates a font family.
	 *
	 * @param array $font_family The font family settings.
	 * @return \WP_Error|null The error if the font family is invalid, null otherwise.
	 */
	private static function validate_font_family( $font_family ) {
		// Validate the font family name.
		if ( empty( $font_family['fontFamily'] ) ) {
			return new \WP_Error(
				'invalid_font_family_name',
				__( 'The font family name is required.', 'woocommerce' ),
			);
		}

		// Validate the font family slug.
		if ( empty( $font_family['preview'] ) ) {
			return new \WP_Error(
				'invalid_font_family_name_preview',
				__( 'The font family preview is required.', 'woocommerce' ),
			);
		}
	}



	/**
	 * Registers the font family post type.
	 *
	 * @param array $font_family_settings The font family settings.
	 */
	public static function insert_font_family( array $font_family_settings ) {
		$font_family = $font_family_settings;
		// Check that the font family slug is unique.
		$query = new \WP_Query(
			array(
				'post_type'              => self::POST_TYPE,
				'posts_per_page'         => 1,
				'name'                   => $font_family['slug'],
				'update_post_meta_cache' => false,
				'update_post_term_cache' => false,
			)
		);

		if ( ! empty( $query->get_posts() ) ) {
			return new \WP_Error(
				'duplicate_font_family',
				/* translators: %s: Font family slug. */
				sprintf( __( 'A font family with slug "%s" already exists.', 'woocommerce' ), $font_family['slug'] )
			);
		}

		// Validate the font family settings.
		$validation_error = self::validate_font_family( $font_family );
		if ( is_wp_error( $validation_error ) ) {
			return $validation_error;
		}

		$post['fontFamily'] = addslashes( \WP_Font_Utils::sanitize_font_family( $font_family['fontFamily'] ) );
		$post['preview']    = $font_family['preview'];

		// Insert the font family.
		return wp_insert_post(
			array(
				'post_type'    => self::POST_TYPE,
				'post_title'   => $font_family['name'],
				'name'         => $font_family['slug'],
				'post_content' => wp_json_encode( $post ),
				'post_status'  => 'publish',
			)
		);

	}

	/**
	 * Gets a font family by name.
	 *
	 * @param string $name The font family slug.
	 * @return \WP_Post|null The font family post or null if not found.
	 */
	public static function get_font_family_by_name( $name ) {
		$query = new \WP_Query(
			array(
				'post_type'              => self::POST_TYPE,
				'posts_per_page'         => 1,
				'title'                  => $name,
				'update_post_meta_cache' => false,
				'update_post_term_cache' => false,
			)
		);

		if ( ! empty( $query->get_posts() ) ) {
			return $query->get_posts()[0];
		}
		return null;
	}
}

SILENT KILLER Tool