[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: 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; } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: premium707.web-hosting.com
Server IP: 198.177.120.115
PHP Version: 8.1.34
Server Software: LiteSpeed
System: Linux premium707.web-hosting.com 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP Wed Mar 26 12:08:09 UTC 2025 x86_64
HDD Total: 97.87 GB
HDD Free: 76.35 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
No
git:
Yes
User Info
Username: urbaoubp
User ID (UID): 1252
Group ID (GID): 1257
Script Owner UID: 1252
Current Dir Owner: 1252