Automattic\WooCommerce\Blocks\Templates

ComingSoonTemplate::get_font_familiespublic staticWC 1.0

Returns the font family for the body and heading.

When the current theme is not an FSE theme, we use the default fonts. When the current theme is an FSE theme, we use the fonts from the theme.json file if available except for the 'twentytwentyfour' theme.

Method of the class: ComingSoonTemplate{}

No Hooks.

Returns

Array.

Usage

$result = ComingSoonTemplate::get_font_families();

ComingSoonTemplate::get_font_families() code WC 9.9.4

public static function get_font_families() {
	$default_fonts = array(
		'heading' => 'cardo',
		'body'    => 'inter',
	);

	if ( ! wp_is_block_theme() ) {
		return $default_fonts;
	}

	$current_theme = wp_get_theme()->get_stylesheet();

	if ( 'twentytwentyfour' === $current_theme ) {
		return array(
			'heading' => 'heading',
			'body'    => 'body',
		);
	}

	if ( ! function_exists( 'wp_get_global_settings' ) ) {
		return $default_fonts;
	}

	$settings = wp_get_global_settings();
	if (
		! isset( $settings['typography']['fontFamilies']['theme'] )
		|| ! is_array( $settings['typography']['fontFamilies']['theme'] )
	) {
		return $default_fonts;
	}

	$theme_fonts = $settings['typography']['fontFamilies']['theme'];

	// Override default fonts if available in theme.json.
	if ( isset( $theme_fonts[0]['slug'] ) && ! empty( $theme_fonts[0]['slug'] ) ) {
		// Convert the font family to lowercase and replace spaces with hyphens.
		$default_fonts['heading'] = strtolower( str_replace( ' ', '-', $theme_fonts[0]['slug'] ) );
	}
	if ( isset( $theme_fonts[1]['slug'] ) && ! empty( $theme_fonts[1]['slug'] ) ) {
		$default_fonts['body']      = strtolower( str_replace( ' ', '-', $theme_fonts[1]['slug'] ) );
		$default_fonts['paragraph'] = $default_fonts['body'];
	}

	return $default_fonts;
}