Files
wp-multisite-waas/inc/class-admin-themes-compatibility.php
2024-12-07 00:09:47 -07:00

93 lines
1.8 KiB
PHP

<?php
/**
* Admin Themes Compatibility.
*
* @package WP_Ultimo
* @subpackage Admin_Themes_Compatibility
* @since 2.0.0
*/
namespace WP_Ultimo;
// Exit if accessed directly
defined('ABSPATH') || exit;
/**
* Adds a Admin Themes Compatibility for WP Multisite WaaS.
*
* @since 1.9.14
*/
class Admin_Themes_Compatibility {
use \WP_Ultimo\Traits\Singleton;
/**
* Sets up the listeners.
*
* @since 2.0.0
*/
public function __construct() {
add_filter('admin_body_class', array($this, 'add_body_classes'));
} // end __construct;
/**
* Body tag classes. Fired by `body_class` filter.
*
* @since 2.0.0
*
* @param array $classes Body Classes.
* @return array
*/
public function add_body_classes($classes) {
$prefix = 'wu-compat-admin-theme-';
foreach (self::get_admin_themes() as $key => $value) {
if ($value['activated']) {
$classes .= ' ' . $prefix . $key . ' ';
} // end if;
} // end foreach;
return $classes;
} // end add_body_classes;
/**
* Get list of Admin Themes
*
* @since 2.0.0
* @return array
*/
public static function get_admin_themes() {
return apply_filters('wu_admin_themes_compatibility', array(
'material-wp' => array(
'activated' => class_exists('MaterialWP'),
),
'pro-theme' => array(
'activated' => class_exists('PROTheme'),
),
'admin-2020' => array(
'activated' => function_exists('run_admin_2020'),
),
'clientside' => array(
'activated' => class_exists('Clientside'),
),
'wphave' => array(
'activated' => class_exists('wphave_admin'),
),
'waaspro' => array(
'activated' => class_exists('AdminUIPRO') || class_exists('AdminUIPROflat'),
),
));
} // end get_admin_themes;
} // end class Admin_Themes_Compatibility;