109 lines
2.1 KiB
PHP
109 lines
2.1 KiB
PHP
<?php
|
|
/**
|
|
* Adds the Toolbox UI to the Admin Panel.
|
|
*
|
|
* @package WP_Ultimo
|
|
* @subpackage UI
|
|
* @since 2.0.0
|
|
*/
|
|
|
|
namespace WP_Ultimo\UI;
|
|
|
|
// Exit if accessed directly
|
|
defined('ABSPATH') || exit;
|
|
|
|
/**
|
|
* Adds the Toolbox UI to the Admin Panel.
|
|
*
|
|
* @since 2.0.0
|
|
*/
|
|
class Toolbox {
|
|
|
|
use \WP_Ultimo\Traits\Singleton;
|
|
|
|
/**
|
|
* Element construct.
|
|
*
|
|
* @since 2.0.0
|
|
*/
|
|
public function __construct() {
|
|
|
|
add_action('init', array($this, 'load_toolbox'));
|
|
|
|
} // end __construct;
|
|
|
|
/**
|
|
* Checks if we should add the toolbox or not.
|
|
*
|
|
* @since 2.0.0
|
|
* @return boolean
|
|
*/
|
|
protected function is_toolbox_enabled() {
|
|
|
|
$can_see_toolbox = current_user_can('manage_network');
|
|
|
|
if (class_exists('\user_switching') && !$can_see_toolbox) {
|
|
|
|
$old_user = \user_switching::get_old_user();
|
|
|
|
$can_see_toolbox = user_can($old_user, 'manage_network');
|
|
|
|
} // end if;
|
|
|
|
return apply_filters('wu_is_toolbox_enabled', wu_get_setting('enable_jumper', true) && $can_see_toolbox && !is_network_admin());
|
|
|
|
} // end is_toolbox_enabled;
|
|
|
|
/**
|
|
* Loads the necessary elements to display the Toolbox.
|
|
*
|
|
* @since 2.0.0
|
|
* @return void
|
|
*/
|
|
public function load_toolbox() {
|
|
|
|
if ($this->is_toolbox_enabled()) {
|
|
|
|
add_action('wp_footer', array($this, 'output'));
|
|
|
|
add_action('admin_footer', array($this, 'output'));
|
|
|
|
add_action('wp_enqueue_scripts', array($this, 'enqueue_styles'));
|
|
|
|
} // end if;
|
|
|
|
} // end load_toolbox;
|
|
|
|
/**
|
|
* Adds the admin styles to make sure the tooltip renders.
|
|
*
|
|
* @since 2.0.0
|
|
* @return void
|
|
*/
|
|
public function enqueue_styles() {
|
|
|
|
wp_enqueue_style('wu-admin');
|
|
|
|
} // end enqueue_styles;
|
|
|
|
/**
|
|
* Outputs the actual HTML markup of the Toolbox.
|
|
*
|
|
* @since 2.0.0
|
|
* @return void
|
|
*/
|
|
public function output() {
|
|
|
|
$current_site = wu_get_current_site();
|
|
|
|
wu_get_template('ui/toolbox', array(
|
|
'toolbox' => $this,
|
|
'current_site' => $current_site,
|
|
'customer' => $current_site ? $current_site->get_customer() : false,
|
|
'membership' => $current_site ? $current_site->get_membership() : false,
|
|
));
|
|
|
|
} // end output;
|
|
|
|
} // end class Toolbox;
|