Server IP : 104.21.14.48 / Your IP : 52.15.219.15 [ Web Server : Apache System : Linux b70eb322-3aee-0c53-7c82-0db91281f2c6.secureserver.net 6.1.90-1.el9.elrepo.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 2 12:09:22 EDT 2024 x86_64 User : root ( 0) PHP Version : 8.0.30.2 Disable Function : NONE Domains : 0 Domains MySQL : ON | cURL : ON | WGET : ON | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/wp-content/mu-plugins/gd-system-plugin/includes/admin/ |
Upload File : |
<?php namespace WPaaS\Admin; use WPaaS\Auto_Updates; use \WPaaS\Cache_V2; use \WPaaS\Plugin; if ( ! defined( 'ABSPATH' ) ) { exit; } final class Bar { /** * Admin bar object. * * @var WP_Admin_Bar */ private $admin_bar; /** * Class constructor. */ public function __construct() { add_action( 'init', [ $this, 'init' ] ); /** * Initialize NextGen filters. */ add_filter( 'nextgen_admin_links', [ $this, 'filter_site_link' ], 10, 1 ); } /** * Filter the admin links used for NextGen Logo-Menu. * * @param array $links associative array of name => 'link'. * * @return array */ public function filter_site_link( $links ) { return array_merge( $links, array( 'overview' => esc_url( Plugin::account_url( 'overview' ) ), 'settings' => esc_url( Plugin::account_url( 'settings' ) ), 'changeDomain' => esc_url( Plugin::account_url( 'changedomain' ) ), 'flush' => current_user_can( Cache_V2::$cap ) ? Cache_V2::get_flush_url() : '', ) ); } /** * Initialize the script. * * @action init */ public function init() { /** * Filter the user cap required to view the admin bar menu. * * @since 2.0.0 * * @var string */ $cap = (string) apply_filters( 'wpaas_admin_bar_cap', 'activate_plugins' ); if ( ! current_user_can( $cap ) ) { return; } add_action( 'admin_bar_menu', [ $this, 'admin_bar_menu' ], PHP_INT_MAX ); add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_scripts' ] ); add_action( 'wp_enqueue_scripts', [ $this, 'enqueue_scripts' ] ); } /** * Admin bar menu. * * @action admin_bar_menu * * @param \WP_Admin_Bar $admin_bar */ public function admin_bar_menu( \WP_Admin_Bar $admin_bar ) { $this->admin_bar = $admin_bar; $menus = [ 'gd' => 'gd_menu', 'mt' => 'mt_menu', ]; $menu = Plugin::use_brand_value( $menus, 'reseller_menu' ); if ( is_callable( [ $this, $menu ] ) ) { $this->$menu(); } } /** * Enqueue styles. * * @action admin_enqueue_scripts * @action wp_enqueue_scripts */ public function enqueue_scripts() { $rtl = ! is_rtl() ? '' : '-rtl'; $suffix = SCRIPT_DEBUG ? '' : '.min'; wp_enqueue_style( 'wpaas-admin-bar', Plugin::assets_url( "css/admin-bar{$rtl}{$suffix}.css" ), [], Plugin::version() ); } /** * Return the subdomain to use for the help docs * * @return string Help documents subdomain */ private function get_help_docs_url() { $language = get_option( 'WPLANG', 'www' ); $parts = explode( '_', $language ); $subdomain = ! empty( $parts[1] ) ? strtolower( $parts[1] ) : strtolower( $language ); // Overrides switch ( $subdomain ) { case '': $subdomain = 'www'; // Default break; case 'uk': $subdomain = 'ua'; // Ukrainian (Українська) break; case 'el': $subdomain = 'gr'; // Greek (Ελληνικά) break; case 'gb': $subdomain = 'uk'; // United Kingdom break; } /** * Filter the help documentation URL. * * @since 3.11.2 * * @var string */ $url = (string) apply_filters( 'wpaas_help_docs_url', "https://{$subdomain}.godaddy.com/help/wordpress-1000047", $subdomain, $language ); return esc_url( $url ); } /** * GoDaddy admin menu. */ private function gd_menu() { $this->top_level_menu_item( __( 'GoDaddy Quick Links', 'gd-system-plugin' ), 'gd' ); $this->hosting_overview_menu_item(); $this->hosting_settings_menu_item(); $this->help_and_support_menu_item(); $this->flush_cache_menu_item(); $this->enable_auto_updates_menu_item(); $this->pro_connection_key_menu_item(); global $submenu; if ( empty( $submenu['godaddy'] ) ) { return; } foreach ( $submenu['godaddy'] as $item ) { parse_str( $item[2], $var ); $this->admin_bar->add_menu( [ 'parent' => 'wpaas', 'id' => 'wpaas-' . sanitize_title( ! empty( $var['tab'] ) ? $var['tab'] : $item[2] ), 'href' => $item[2], 'title' => $item[0], ] ); } } /** * Media Temple admin menu. */ private function mt_menu() { $this->top_level_menu_item( __( 'Managed WordPress', 'gd-system-plugin' ), 'mt' ); $this->hosting_settings_menu_item(); $this->flush_cache_menu_item(); } /** * Reseller admin menu. */ private function reseller_menu() { $this->top_level_menu_item( __( 'Managed WordPress', 'gd-system-plugin' ), 'reseller' ); $this->hosting_overview_menu_item(); $this->hosting_settings_menu_item(); $this->flush_cache_menu_item(); $this->pro_connection_key_menu_item(); } /** * Top-level menu item. * * @param string $label * @param string $icon */ private function top_level_menu_item( $label, $brand ) { switch ( $brand ) { default: case 'reseller': case 'mt': $icon = '<span class="ab-icon dashicons dashicons-admin-generic"></span><span class="ab-label">%s</span>'; break; case 'gd': $icon = '<span class="ab-icon svg gd-wpaas" style="background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNyAyNCIgZmlsbD0iI2E3YWFhZCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTIzLjI4OTggMS4wOTU3OUMyMC40ODM5IC0wLjY1MDk2MSAxNi43ODk4IC0wLjIzODU1MSAxMy40OTUyIDEuODI5MjFDMTAuMjEwOSAtMC4yMzc0MDggNi41MTQ1OCAtMC42NTA5NjEgMy43MTIwMyAxLjA5NTc5Qy0wLjcyMTI0NSAzLjg2MTU3IC0xLjI2MDI0IDEwLjk4NTYgMi41MDkzIDE3LjAwNjJDNS4yODc4MiAyMS40NDY3IDkuNjMyOTggMjQuMDQ2OCAxMy41MDA5IDIzLjk5ODlDMTcuMzY4OSAyNC4wNDY4IDIxLjcxNDEgMjEuNDQ2NyAyNC40OTI2IDE3LjAwNjJDMjguMjU3NSAxMC45ODU2IDI3LjcyMzEgMy44NjE1NyAyMy4yODk4IDEuMDk1NzlaTTQuNTQ3NDIgMTUuNzM1OEMzLjc2OTk0IDE0LjUwNTQgMy4xODM0OCAxMy4xNjQ3IDIuODA3OTggMTEuNzU5MUMyLjQ3NDEgMTAuNTM5MyAyLjM0NjQ3IDkuMjcyNSAyLjQzMDM0IDguMDEwODFDMi41OTg1NiA1Ljc4NjUzIDMuNTA2MDQgNC4wNTM0OSA0Ljk4NDU3IDMuMTMwNDJDNi40NjMwOSAyLjIwNzM1IDguNDE3NjYgMi4xNTM2NiAxMC40OTkzIDIuOTc3MzRDMTAuODE1NyAzLjEwNDM3IDExLjEyNTQgMy4yNDczNiAxMS40MjczIDMuNDA1NzRDMTAuMjcwMyA0LjQ1OCA5LjI2NDQ4IDUuNjY0NzQgOC40MzgyNiA2Ljk5MTc3QzYuMTQ5NTMgMTAuNjQ3NSA1LjQ1MTQ3IDE0LjcxNjggNi4yNTAyMyAxNy45NTg5QzUuNjEzOTEgMTcuMjcyOSA1LjA0Mzc4IDE2LjUyODYgNC41NDc0MiAxNS43MzU4Wk0yNC4xOTUgMTEuNzU5MUMyMy44MTkgMTMuMTY0NSAyMy4yMzI2IDE0LjUwNTIgMjIuNDU1NiAxNS43MzU4QzIxLjk1OTQgMTYuNTMwMiAyMS4zODkzIDE3LjI3NiAyMC43NTI4IDE3Ljk2MzVDMjEuNDY2OSAxNS4wNTYxIDIwLjk4MTcgMTEuNDk1MiAxOS4yMzA4IDguMTU0NzVDMTkuMjAzMSA4LjA5OTUxIDE5LjE2NCA4LjA1MDcyIDE5LjExNjEgOC4wMTE1N0MxOS4wNjgyIDcuOTcyNDEgMTkuMDEyNiA3Ljk0Mzc2IDE4Ljk1MjkgNy45Mjc0OEMxOC44OTMyIDcuOTExMjEgMTguODMwOCA3LjkwNzY3IDE4Ljc2OTYgNy45MTcxMUMxOC43MDg0IDcuOTI2NTQgMTguNjQ5OSA3Ljk0ODc0IDE4LjU5NzkgNy45ODIyNUwxMy4xMzkzIDExLjM4NzhDMTMuMDg5NiAxMS40MTg3IDEzLjA0NjQgMTEuNDU5MSAxMy4wMTIzIDExLjUwNjdDMTIuOTc4MyAxMS41NTQzIDEyLjk1NCAxMS42MDgxIDEyLjk0MDggMTEuNjY1MUMxMi45Mjc2IDExLjcyMjEgMTIuOTI1OCAxMS43ODExIDEyLjkzNTUgMTEuODM4OEMxMi45NDUyIDExLjg5NjUgMTIuOTY2MyAxMS45NTE3IDEyLjk5NzQgMTIuMDAxMkwxMy43OTg1IDEzLjI3OTZDMTMuODI5NCAxMy4zMjkzIDEzLjg2OTkgMTMuMzcyMyAxMy45MTc2IDEzLjQwNjRDMTMuOTY1MiAxMy40NDA0IDE0LjAxOTIgMTMuNDY0NyAxNC4wNzYzIDEzLjQ3NzhDMTQuMTMzNCAxMy40OTEgMTQuMTkyNSAxMy40OTI4IDE0LjI1MDMgMTMuNDgzMUMxNC4zMDgxIDEzLjQ3MzQgMTQuMzYzNCAxMy40NTI0IDE0LjQxMyAxMy40MjEzTDE3Ljk1MTQgMTEuMjE1M0MxOC4wNjU4IDExLjU1OCAxOC4xODAzIDExLjg5NSAxOC4yNjYxIDEyLjI0MzRDMTguNTk5OSAxMy40NjMyIDE4LjcyNzUgMTQuNzMgMTguNjQzNyAxNS45OTE3QzE4LjQ3NTUgMTguMjE3MSAxNy41NjggMTkuOTUwMSAxNi4wODk1IDIwLjg3MzJDMTUuMzI2OSAyMS4zMzg3IDE0LjQ1MzEgMjEuNTkxMiAxMy41NTkzIDIxLjYwNDRIMTMuNDQ0OUMxMi41NTExIDIxLjU5MTUgMTEuNjc3MiAyMS4zMzg5IDEwLjkxNDcgMjAuODczMkM5LjQzNSAxOS45NTAxIDguNTI3NTIgMTguMjE3MSA4LjM1OTMgMTUuOTkxN0M4LjI3NjExIDE0LjczIDguNDAzNzMgMTMuNDYzMyA4LjczNjk0IDEyLjI0MzRDOS41MDQyNyA5LjQyMTc1IDExLjA4OTYgNi44ODkyNyAxMy4yOTM4IDQuOTYzOTlDMTQuMjQ0NSA0LjEzMDYgMTUuMzI3MyAzLjQ2MDc3IDE2LjQ5OCAyLjk4MTkxQzE4LjU3MzkgMi4xNTgyMyAyMC41MzE5IDIuMjExOTIgMjIuMDExNiAzLjEzNDk5QzIzLjQ5MTMgNC4wNTgwNiAyNC4zOTc2IDUuNzkxMSAyNC41NjU4IDguMDE1MzhDMjQuNjUwOSA5LjI3NTE2IDI0LjUyNTYgMTAuNTQwMyAyNC4xOTUgMTEuNzU5MVoiIGZpbGw9IiNhN2FhYWQiLz4KPC9zdmc+Cg==) !important;"></span><span class="ab-label">%s</span>'; } $managed_wordpress = [ 'id' => 'wpaas', 'title' => sprintf( $icon, // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped esc_html( $label ) ), ]; $this->admin_bar->add_menu( $managed_wordpress ); } /** * Flush Cache menu item. */ private function flush_cache_menu_item() { if ( ! current_user_can( Cache_V2::$cap ) ) { return; } $this->admin_bar->add_menu( [ 'parent' => 'wpaas', 'id' => 'wpaas-flush-cache', 'title' => __( 'Flush Cache', 'gd-system-plugin' ), 'href' => Cache_V2::get_flush_url(), ] ); } /** * Hosting Overview menu item. */ private function hosting_overview_menu_item() { $this->admin_bar->add_menu( [ 'parent' => 'wpaas', 'id' => 'wpaas-overview', 'href' => esc_url( Plugin::account_url( 'overview' ) ), 'title' => sprintf( '%s <span class="dashicons dashicons-external"></span>', Plugin::is_gd() ? __( 'Back to GoDaddy', 'gd-system-plugin' ) : __( 'Hosting Overview', 'gd-system-plugin' ) ), 'meta' => [ 'target' => '_blank', ], ] ); } /** * Hosting Settings menu item. */ private function hosting_settings_menu_item() { $this->admin_bar->add_menu( [ 'parent' => 'wpaas', 'id' => 'wpaas-settings', 'href' => esc_url( Plugin::account_url( 'settings' ) ), 'title' => sprintf( '%s <span class="dashicons dashicons-external"></span>', __( 'Manage Hosting', 'gd-system-plugin' ) ), 'meta' => [ 'target' => '_blank', ], ] ); } /** * Connection Management API key modal menu item. */ private function pro_connection_key_menu_item() { if ( ! is_admin() || filter_input( INPUT_GET, 'showWorker' ) || ! function_exists( 'mwp_get_potential_key' ) ) { return; } $this->admin_bar->add_menu( [ 'parent' => 'wpaas', 'id' => 'wpaas-pro-connection-key', 'href' => '#', 'title' => sprintf( '<span id="mwp-view-connection-key" class="wp-admin-bar-wpaas-pro-connection-key">%s</span>', __( 'Connection Management', 'gd-system-plugin' ) ), ] ); } /** * Help & Support menu item */ private function help_and_support_menu_item() { if ( ! is_admin() ) { return; } $this->admin_bar->add_menu( [ 'parent' => 'wpaas', 'id' => 'wpaas-help-and-support', 'href' => $this->get_help_docs_url(), 'title' => sprintf( '%s <span class="dashicons dashicons-external"></span>', __( 'WordPress Help', 'gd-system-plugin' ) ), 'meta' => [ 'target' => '_blank', ], ] ); } /** * Enable auto updates for plugins and themes menu item */ private function enable_auto_updates_menu_item() { if ( ! is_admin() ) { return; } $auto_updates_status = get_option( 'mwp_auto_updates_status', 'disabled' ); $this->admin_bar->add_menu( [ 'parent' => 'wpaas', 'id' => 'wpaas-enable-auto-updates', 'href' => Auto_Updates::get_toggle_auto_update_url( $auto_updates_status ), 'title' => $auto_updates_status === 'disabled' ? __( 'Enable auto-updates', 'gd-system-plugin' ) : __( 'Disable auto-updates', 'gd-system-plugin' ), ] ); } }