Viewing File: /home/maglabs/ultex/wp-content/plugins/extendify/app/Shared/Admin.php
<?php
/**
* Help Center Script loader.
*/
namespace Extendify\Shared;
use Extendify\Shared\Controllers\UserSelectionController;
use Extendify\PartnerData;
use Extendify\Config;
/**
* This class handles any file loading for the admin area.
*/
class Admin
{
/**
* The instance
*
* @var $instance
*/
public static $instance = null;
/**
* Adds various actions to set up the page
*
* @return self|void
*/
public function __construct()
{
if (self::$instance) {
return self::$instance;
}
self::$instance = $this;
if (PartnerData::$id === 'no-partner' && Config::$environment === 'PRODUCTION') {
return;
}
$this->loadScripts();
}
/**
* Adds scripts to the admin
*
* @return void
*/
public function loadScripts()
{
\add_action('admin_enqueue_scripts', [$this, 'loadGlobalScripts']);
\add_action('wp_enqueue_scripts', [$this, 'loadGlobalScripts']);
}
/**
* Adds scripts to every page
*
* @return void
*/
public function loadGlobalScripts()
{
if (!current_user_can(Config::$requiredCapability)) {
return;
}
\wp_enqueue_media();
$version = Config::$environment === 'PRODUCTION' ? Config::$version : uniqid();
\wp_register_script(Config::$slug . '-shared-scripts', '', [], $version, true);
\wp_enqueue_script(Config::$slug . '-shared-scripts');
$partnerData = PartnerData::getPartnerData();
$userConsent = get_user_meta(get_current_user_id(), 'extendify_ai_consent', true);
\wp_add_inline_script(
Config::$slug . '-shared-scripts',
'window.extSharedData = ' . \wp_json_encode([
'devbuild' => \esc_attr(Config::$environment === 'DEVELOPMENT'),
'siteId' => \get_option('extendify_site_id', ''),
'siteTitle' => \get_bloginfo('name'),
'siteType' => \get_option('extendify_siteType', new \stdClass()),
'adminUrl' => \esc_url_raw(\admin_url()),
'partnerLogo' => \esc_attr(PartnerData::$logo),
'partnerId' => \esc_attr(PartnerData::$id),
'partnerName' => \esc_attr(PartnerData::$name),
'wpLanguage' => \get_locale(),
'wpVersion' => \get_bloginfo('version'),
'isBlockTheme' => function_exists('wp_is_block_theme') ? wp_is_block_theme() : false,
'userId' => \get_current_user_id(),
'userData' => [
'userSelectionData' => UserSelectionController::get(),
],
'showAIConsent' => ($partnerData['showAIConsent'] ?? false),
'consentTermsUrl' => ($partnerData['consentTermsUrl'] ?? ''),
'userGaveConsent' => $userConsent ? $userConsent : false,
'activePlugins' => array_map('esc_attr', array_values(\get_option('active_plugins', []))),
'frontPage' => get_option('page_on_front', 0),
]),
'before'
);
$cssColorVars = PartnerData::cssVariableMapping();
$cssString = implode('; ', array_map(function ($k, $v) {
return "$k: $v";
}, array_keys($cssColorVars), $cssColorVars));
\wp_register_style(Config::$slug . '-shared-styles', '', [], $version, 'all');
\wp_enqueue_style(Config::$slug . '-shared-styles');
\wp_add_inline_style(Config::$slug . '-shared-styles', "body { $cssString; }");
}
}
Back to Directory
File Manager