is_block_editor() ) || ( function_exists( 'is_gutenberg_page' ) && is_gutenberg_page() ) ) {
global $virtue;
$options_fonts = array( 'font_h1', 'font_h2', 'font_h3', 'font_h4', 'font_h5', 'font_p' );
$load_gfonts = array();
foreach ( $options_fonts as $options_key ) {
if ( isset( $virtue[ $options_key ] ) && isset( $virtue[ $options_key ]['google'] ) && 'false' !== $virtue[ $options_key ]['google'] ) {
// check if it's in the array.
if ( isset( $load_gfonts[ sanitize_key( $virtue[ $options_key ]['font-family'] ) ] ) ) {
if ( isset( $virtue[ $options_key ]['font-weight'] ) && ! empty( $virtue[ $options_key ]['font-weight'] ) ) {
if ( isset( $virtue[ $options_key ]['font-style'] ) && ! empty( $virtue[ $options_key ]['font-style'] ) && ! is_numeric( $virtue[ $options_key ]['font-style'] ) && 'normal' !== $virtue[ $options_key ]['font-style'] ) {
$load_gfonts[ sanitize_key( $virtue[ $options_key ]['font-family'] ) ]['font-style'][ $virtue[ $options_key ]['font-weight'] . $virtue[ $options_key ]['font-style'] ] = $virtue[ $options_key ]['font-weight'] . $virtue[ $options_key ]['font-style'];
} else {
$load_gfonts[ sanitize_key( $virtue[ $options_key ]['font-family'] ) ]['font-style'][ $virtue[ $options_key ]['font-weight'] ] = $virtue[ $options_key ]['font-weight'];
}
}
if ( isset( $virtue[ $options_key ]['subsets'] ) && ! empty( $virtue[ $options_key ]['subsets'] ) ) {
$load_gfonts[ sanitize_key( $virtue[ $options_key ]['font-family'] ) ]['subsets'][ $virtue[ $options_key ]['subsets'] ] = $virtue[ $options_key ]['subsets'];
}
} else {
$load_gfonts[ sanitize_key( $virtue[ $options_key ]['font-family'] ) ] = array(
'font-family' => $virtue[ $options_key ]['font-family'],
'font-style' => array(),
'subsets' => array(),
);
if ( isset( $virtue[ $options_key ]['font-weight'] ) && ! empty( $virtue[ $options_key ]['font-weight'] ) ) {
if ( isset( $virtue[ $options_key ]['font-style'] ) && ! empty( $virtue[ $options_key ]['font-style'] ) && ! is_numeric( $virtue[ $options_key ]['font-style'] ) && 'normal' !== $virtue[ $options_key ]['font-style'] ) {
$load_gfonts[ sanitize_key( $virtue[ $options_key ]['font-family'] ) ]['font-style'][ $virtue[ $options_key ]['font-weight'] . $virtue[ $options_key ]['font-style'] ] = $virtue[ $options_key ]['font-weight'] . $virtue[ $options_key ]['font-style'];
} else {
$load_gfonts[ sanitize_key( $virtue[ $options_key ]['font-family'] ) ]['font-style'][ $virtue[ $options_key ]['font-weight'] ] = $virtue[ $options_key ]['font-weight'];
}
}
if ( isset( $virtue[ $options_key ]['subsets'] ) && ! empty( $virtue[ $options_key ]['subsets'] ) ) {
$load_gfonts[ sanitize_key( $virtue[ $options_key ]['font-family'] ) ]['subsets'][ $virtue[ $options_key ]['subsets'] ] = $virtue[ $options_key ]['subsets'];
}
}
}
if ( 'font_p' === $options_key ) {
$path = trailingslashit( get_template_directory() ) . 'lib/gfont-json.php';
$all_fonts = include $path;
if ( isset( $all_fonts[ $virtue[ $options_key ]['font-family'] ] ) ) {
$p_font = $all_fonts[ $virtue[ $options_key ]['font-family'] ];
if ( isset( $p_font['variants']['italic']['400'] ) ) {
$load_gfonts[ sanitize_key( $virtue[ $options_key ]['font-family'] ) ]['font-style']['400italic'] = '400italic';
}
if ( isset( $p_font['variants']['italic']['700'] ) ) {
$load_gfonts[ sanitize_key( $virtue[ $options_key ]['font-family'] ) ]['font-style']['700italic'] = '700italic';
}
if ( isset( $p_font['variants']['normal']['400'] ) ) {
$load_gfonts[ sanitize_key( $virtue[ $options_key ]['font-family'] ) ]['font-style']['400'] = '400';
}
if ( isset( $p_font['variants']['normal']['700'] ) ) {
$load_gfonts[ sanitize_key( $virtue[ $options_key ]['font-family'] ) ]['font-style']['700'] = '700';
}
}
}
}
if ( ! empty( $load_gfonts ) ) {
// Build the font family link.
$link = '';
$subsets = array();
foreach ( $load_gfonts as $gfont_values ) {
if ( ! empty( $link ) ) {
$link .= '%7C'; // Append a new font to the string.
}
$link .= $gfont_values['font-family'];
if ( ! empty( $gfont_values['font-style'] ) ) {
$link .= ':';
$link .= implode( ',', $gfont_values['font-style'] );
}
if ( ! empty( $gfont_values['subsets'] ) ) {
foreach ( $gfont_values['subsets'] as $subset ) {
if ( ! in_array( $subset, $subsets ) ) {
array_push( $subsets, $subset );
}
}
}
}
if ( ! empty( $subsets ) ) {
$link .= '&subset=' . implode( ',', $subsets );
}
echo '';
}
echo '';
}
}
add_action( 'admin_head-post.php', 'virtue_editor_dynamic_css' );
add_action( 'admin_head-post-new.php', 'virtue_editor_dynamic_css' );