File "trait-dashboard-api.php"
Full path: /home/xs854402/smcse.co.jp/public_html/test.smcse.co.jp/wp-content/plugins/broken-link-checker/core/traits/trait-dashboard-api.php
File
size: 6.75 B (6.75 KB bytes)
MIME-type: text/x-php
Charset: utf-8
Download Open Edit Advanced Editor Back
<?php
/**
* WPMUDEV Dashboard API methods.
*
* @link https://wordpress.org/plugins/broken-link-checker/
* @since 2.0.0
*
* @author WPMUDEV (https://wpmudev.com)
* @package WPMUDEV_BLC\Core\Traits
*
* @copyright (c) 2022, Incsub (http://incsub.com)
*/
namespace WPMUDEV_BLC\Core\Traits;
// Abort if called directly.
defined( 'WPINC' ) || die;
/**
* Class Enqueue
*
* @package WPMUDEV_BLC\Core\Traits
*/
trait Dashboard_API {
/**
* Returns WPMUDEV Dashboard API object
*
* @return \WPMUDEV_Dashboard_Api|null
*/
public static function get_dashboard_api(): ?\WPMUDEV_Dashboard_Api {
if ( class_exists( 'WPMUDEV_Dashboard' ) && ! empty( \WPMUDEV_Dashboard::$api ) ) {
return \WPMUDEV_Dashboard::$api;
}
return null;
}
/**
* Returns WPMU DEV membership type
*
* Possible return values:
* 'free' - Free hub membership.
* 'single' - Single membership (i.e. only 1 project is licensed)
* 'unit' - One or more projects licensed
* 'full' - Full membership, no restrictions.
* 'paused' - Membership access is paused.
* 'expired' - Expired membership.
* '' - (empty string) If user is not logged in or with an unknown type.
*
* @return string
*/
public static function get_membership_type(): ?string {
static $result = null;
if ( ! is_null( $result ) ) {
return $result;
}
$api = self::get_dashboard_api();
if ( $api ) {
$result = null;
if ( is_callable( array( $api, 'get_membership_status' ) ) ) {
$result = $api->get_membership_status();
} elseif ( is_callable( array( $api, 'get_membership_type' ) ) ) {
$result = $api->get_membership_type();
}
} else {
$result = \WPMUDEV\Hub\Connector\Data::get()->membership_type();
}
return strval( apply_filters( 'wpmudev_blc_dashboard_membership_type', $result ) );
}
/**
* Returns a boolean. True if site is connected to hub or false if not.
*
* @return bool
*/
public static function site_connected(): bool {
static $site_connected = null;
if ( ! is_bool( $site_connected ) ) {
$site_connected = class_exists( 'WPMUDEV_Dashboard' ) ? ! empty( self::get_membership_type() ) : self::hub_connector_logged_in();
}
/**
* Filters site connected result.
*
* @since 2.0.0
*/
return apply_filters( 'wpmudev_blc_dashboard_site_connected', boolval( $site_connected ) );
}
/**
* Returns the Hub site id.
*
* @return int|null
*/
public static function get_site_id(): ?int {
$api = self::get_dashboard_api();
if ( $api instanceof \WPMUDEV_Dashboard_Api && is_numeric( $api->get_site_id() ) ) {
return intval( $api->get_site_id() );
}
return \WPMUDEV\Hub\Connector\Data::get()->hub_site_id();
}
/**
* Returns an array with WPMUDEV Dashboard users.
*
* @return array|bool
*/
public static function get_dash_users() {
if ( ! class_exists( 'WPMUDEV_Dashboard' ) ) {
return array();
}
return \WPMUDEV_Dashboard::$site->get_allowed_users( true );
}
/**
* Returns email or WP user that connected Dash plugin to HUB. If nothing found it returns false.
*
* @param bool $wp_user Defines if method should return the WP_User if found. Else it returns the email.
*
* @return false|string|WP_User
*/
public static function get_auth_user( bool $wp_user = false ) {
if ( ! class_exists( 'WPMUDEV_Dashboard' ) ) {
return false;
}
$auth_user = \WPMUDEV_Dashboard::$settings->get( 'auth_user', 'general' );
if ( $wp_user && ! empty( $auth_user ) ) {
return \get_user_by( 'email', $auth_user );
}
return $auth_user;
}
/**
* Checks if White Labeling is active on Dashboard plugin.
*
* @return bool
*/
public static function white_label_active(): bool {
static $is_whitelabel_enabled = null;
if ( is_null( $is_whitelabel_enabled ) ) {
$is_whitelabel_enabled = class_exists( 'WPMUDEV_Dashboard' ) ? \WPMUDEV_Dashboard::$whitelabel->is_whitelabel_enabled() : false;
}
return $is_whitelabel_enabled;
}
/**
* Checks if Hub Connector is active. If Dash plugin is not installed Hub connector can take over.
*
* @return bool
*/
public static function hub_connector_active(): bool {
/**
* Filters if HUB Connector is active (Dash plugin not installed).
*
* @since 2.3.0
*/
return apply_filters( 'wpmudev_blc_dashboard_hub_connector_active', ! file_exists( trailingslashit( WP_PLUGIN_DIR ) . 'wpmudev-updates/update-notifications.php' ) );
}
/**
* Checks if Hub Connector is logged in.
*
* @return bool
*/
public static function hub_connector_logged_in(): bool {
/**
* Filters if HUB Connector is logged in.
*
* @since 2.3.0
*/
return apply_filters( 'wpmudev_blc_dashboard_hub_connector_logged_in', boolval( \WPMUDEV\Hub\Connector\API::get()->is_logged_in() ) );
}
/**
* Checks if Hub Connector is connected. If Dash plugin is not installed Hub connector can take over.
*
* @return bool
*/
public static function hub_connector_connected(): bool {
static $connected = null;
if ( ! is_bool( $connected ) ) {
if ( class_exists( 'WPMUDEV_Dashboard' ) ) {
$connected = self::get_dashboard_api()->has_key();
} else {
$connected = self::hub_connector_logged_in();
}
}
/**
* Filters if HUB Connector is connected.
*
* @since 2.3.0
*/
return apply_filters( 'wpmudev_blc_dashboard_hub_connector_connected', boolval( $connected ) );
}
/**
* Indicates if Hub Connector UI should be used. It should be used when Connector is active (Dash not installed) and when user not logged in.
*
* @return boolean
*/
public static function load_hub_connector_ui(): bool {
/**
* Filters if HUB Connector should be used.
*
* @since 2.3.0
*/
return apply_filters( 'wpmudev_blc_dashboard_use_hub_connector', ! class_exists( 'WPMUDEV_Dashboard' ) );
}
/**
* Undocumented function
*
* @return array
*/
public static function get_profile_data(): array {
if ( class_exists( 'WPMUDEV_Dashboard' ) ) {
$profile_data = self::get_dashboard_api()->get_profile();
if( ! empty( $profile_data['profile'] ) ) {
return $profile_data['profile'];
}
} elseif ( self::hub_connector_logged_in() ) {
return \WPMUDEV\Hub\Connector\Data::get()->profile_data();
}
return array();
}
/**
* Returns the api key.
*
* @return string
*/
public static function get_api_key(): string {
static $api_key = null;
if ( ! is_null( $api_key ) ) {
return $api_key;
}
if ( class_exists( 'WPMUDEV_Dashboard' ) ) {
$api_key = \WPMUDEV_Dashboard::$api->get_key();
}else {
$api_key = \WPMUDEV\Hub\Connector\API::get()->get_api_key();
}
return apply_filters( 'wpmudev_blc_dashboard_api_key', $api_key );
}
/**
* Disconnect from Hub Connector
*
* @return bool|WP_Error
*/
public static function hub_connector_disconnect() {
return \WPMUDEV\Hub\Connector\API::get()->logout();
}
}