121 lines
2.8 KiB
PHP
121 lines
2.8 KiB
PHP
<?php
|
|
/**
|
|
* Astra compatibility
|
|
*
|
|
* @package UAGB
|
|
*/
|
|
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit; // Exit if accessed directly.
|
|
}
|
|
|
|
/**
|
|
* Class UAGB_Astra_Compatibility.
|
|
*/
|
|
class UAGB_Astra_Compatibility {
|
|
|
|
/**
|
|
* Member Variable
|
|
*
|
|
* @var instance
|
|
*/
|
|
private static $instance;
|
|
|
|
/**
|
|
* Initiator
|
|
*/
|
|
public static function get_instance() {
|
|
if ( ! isset( self::$instance ) ) {
|
|
self::$instance = new self();
|
|
}
|
|
return self::$instance;
|
|
}
|
|
|
|
/**
|
|
* Constructor
|
|
*
|
|
* @since 2.0.0
|
|
*/
|
|
public function __construct() {
|
|
|
|
// Update Astra's admin top level menu position.
|
|
add_filter( 'astra_menu_priority', array( $this, 'update_admin_menu_position' ) );
|
|
|
|
$uag_load_fonts_locally = UAGB_Admin_Helper::get_admin_settings_option( 'uag_load_gfonts_locally', 'disabled' );
|
|
|
|
if ( 'disabled' === $uag_load_fonts_locally ) {
|
|
|
|
$astra_settings = ( defined( 'ASTRA_THEME_SETTINGS' ) ) ? get_option( ASTRA_THEME_SETTINGS ) : '';
|
|
|
|
if ( is_array( $astra_settings ) && empty( $astra_settings['load-google-fonts-locally'] ) || ( isset( $astra_settings['load-google-fonts-locally'] ) && false === $astra_settings['load-google-fonts-locally'] ) ) {
|
|
|
|
// Disabled uag fonts.
|
|
add_filter( 'uagb_enqueue_google_fonts', '__return_false' );
|
|
|
|
// Add uag fonts in astra.
|
|
add_filter( 'astra_google_fonts_selected', array( $this, 'add_google_fonts_in_astra' ) );
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* This functions adds UAG Google Fonts in Astra filter to load a common Google Font File for both UAG & Astra.
|
|
*
|
|
* @param array $astra_fonts Astra Fonts Object.
|
|
*
|
|
* @since 2.0.0
|
|
* @return array
|
|
*/
|
|
public function add_google_fonts_in_astra( $astra_fonts ) {
|
|
|
|
global $post;
|
|
|
|
if ( $post ) {
|
|
$post_id = $post->ID;
|
|
}
|
|
|
|
if ( is_404() ) {
|
|
$post_id = get_queried_object_id();
|
|
}
|
|
|
|
if ( isset( $post_id ) ) {
|
|
|
|
$google_fonts = uagb_get_post_assets( $post_id )->get_fonts();
|
|
|
|
if ( is_array( $google_fonts ) && ! empty( $google_fonts ) ) {
|
|
|
|
foreach ( $google_fonts as $key => $gfont_values ) {
|
|
if ( ! empty( $gfont_values['fontfamily'] ) && is_string( $gfont_values['fontfamily'] ) && isset( $gfont_values['fontvariants'] ) ) {
|
|
|
|
$astra_fonts[ $gfont_values['fontfamily'] ] = $gfont_values['fontvariants'];
|
|
|
|
foreach ( $gfont_values['fontvariants'] as $key => $font_variants ) {
|
|
|
|
$astra_fonts[ $gfont_values['fontfamily'] ][ $key ] .= ',' . $font_variants . 'italic';
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return $astra_fonts;
|
|
}
|
|
|
|
/**
|
|
* Update Astra's menu priority to show after Dashboard menu.
|
|
*
|
|
* @param int $menu_priority top level menu priority.
|
|
* @since 2.3.0
|
|
*/
|
|
public function update_admin_menu_position( $menu_priority ) {
|
|
return 2.1;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Prepare if class 'UAGB_Astra_Compatibility' exist.
|
|
* Kicking this off by calling 'get_instance()' method
|
|
*/
|
|
UAGB_Astra_Compatibility::get_instance();
|