| Server IP : 43.130.17.34 / Your IP : 216.73.217.6 Web Server : nginx/1.28.0 System : Linux VM-4-12-opencloudos 6.6.92-34.1.oc9.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jun 25 21:32:13 CST 2025 x86_64 User : www ( 1000) PHP Version : 8.0.26 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /www/wwwroot/yespkg.com/wp-content/plugins/google-site-kit/includes/Core/Admin/ |
Upload File : |
<?php
/**
* Class Google\Site_Kit\Core\Admin\Dashboard
*
* @package Google\Site_Kit
* @copyright 2021 Google LLC
* @license https://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
* @link https://sitekit.withgoogle.com
*/
namespace Google\Site_Kit\Core\Admin;
use Google\Site_Kit\Context;
use Google\Site_Kit\Core\Assets\Assets;
use Google\Site_Kit\Core\Authentication\Authentication;
use Google\Site_Kit\Core\Modules\Modules;
use Google\Site_Kit\Core\Permissions\Permissions;
use Google\Site_Kit\Core\Util\Requires_Javascript_Trait;
/**
* Class to handle all wp-admin Dashboard related functionality.
*
* @since 1.0.0
* @access private
* @ignore
*/
final class Dashboard {
use Requires_Javascript_Trait;
/**
* Plugin context.
*
* @since 1.0.0
* @var Context
*/
private $context;
/**
* Assets Instance.
*
* @since 1.0.0
* @var Assets
*/
private $assets;
/**
* Modules instance.
*
* @since 1.7.0
* @var Modules
*/
private $modules;
/**
* Authentication instance.
*
* @since 1.120.0
* @var Authentication
*/
private $authentication;
/**
* Constructor.
*
* @since 1.0.0
*
* @param Context $context Plugin context.
* @param Assets $assets Optional. Assets API instance. Default is a new instance.
* @param Modules $modules Optional. Modules instance. Default is a new instance.
*/
public function __construct(
Context $context,
Assets $assets = null,
Modules $modules = null
) {
$this->context = $context;
$this->assets = $assets ?: new Assets( $this->context );
$this->modules = $modules ?: new Modules( $this->context );
$this->authentication = new Authentication( $this->context );
}
/**
* Registers functionality through WordPress hooks.
*
* @since 1.0.0
*/
public function register() {
add_action(
'wp_dashboard_setup',
function () {
$this->add_widgets();
}
);
}
/**
* Add a Site Kit by Google widget to the WordPress admin dashboard.
*
* @since 1.0.0
*/
private function add_widgets() {
if ( ! current_user_can( Permissions::VIEW_WP_DASHBOARD_WIDGET ) ) {
return;
}
// Enqueue styles.
$this->assets->enqueue_asset( 'googlesitekit-wp-dashboard-css' );
// Enqueue scripts.
$this->assets->enqueue_asset( 'googlesitekit-wp-dashboard' );
$this->modules->enqueue_assets();
wp_add_dashboard_widget(
'google_dashboard_widget',
__( 'Site Kit Summary', 'google-site-kit' ),
function () {
$this->render_googlesitekit_wp_dashboard();
}
);
}
/**
* Render the Site Kit WordPress Dashboard widget.
*
* @since 1.0.0
* @since 1.120.0 Added the `data-view-only` attribute.
*/
private function render_googlesitekit_wp_dashboard() {
$active_modules = $this->modules->get_active_modules();
$analytics_connected = isset( $active_modules['analytics-4'] ) && $active_modules['analytics-4']->is_connected();
$search_console_connected = isset( $active_modules['search-console'] ) && $active_modules['search-console']->is_connected();
$is_view_only = ! $this->authentication->is_authenticated();
$can_view_shared_analytics = current_user_can( Permissions::READ_SHARED_MODULE_DATA, 'analytics-4' );
$can_view_shared_search_console = current_user_can( Permissions::READ_SHARED_MODULE_DATA, 'search-console' );
$display_analytics_data = ( ! $is_view_only && $analytics_connected ) || ( $is_view_only && $can_view_shared_analytics );
$display_search_console_data = ( ! $is_view_only && $search_console_connected ) || ( $is_view_only && $can_view_shared_search_console );
$class_names = array();
if ( $analytics_connected && $display_analytics_data ) {
$class_names[] = 'googlesitekit-wp-dashboard-analytics_active_and_connected';
}
if ( $search_console_connected && $display_search_console_data ) {
$class_names[] = 'googlesitekit-wp-dashboard-search_console_active_and_connected';
}
if ( ! $analytics_connected && ! $is_view_only ) {
$class_names[] = 'googlesitekit-wp-dashboard-analytics-activate-cta';
}
$class_names = implode( ' ', $class_names );
$this->render_noscript_html();
?>
<div id="js-googlesitekit-wp-dashboard" data-view-only="<?php echo esc_attr( $is_view_only ); ?>" class="googlesitekit-plugin <?php echo esc_attr( $class_names ); ?>">
<div class="googlesitekit-wp-dashboard googlesitekit-wp-dashboard-loading">
<?php
$this->render_loading_container( 'googlesitekit-wp-dashboard__cta' );
?>
<div class="googlesitekit-wp-dashboard-stats">
<?php
if ( $display_analytics_data ) {
$this->render_loading_container( 'googlesitekit-wp-dashboard-loading__can_view_analytics' );
}
if ( $display_search_console_data ) {
$this->render_loading_container( 'googlesitekit-wp-dashboard-loading__search_console_active_and_connected' );
}
if ( ! $analytics_connected && ! $is_view_only ) {
$this->render_loading_container( 'googlesitekit-wp-dashboard-stats__cta' );
}
if ( $display_analytics_data ) {
$this->render_loading_container( 'googlesitekit-unique-visitors-chart-widget' );
$this->render_loading_container( 'googlesitekit-search-console-widget' );
}
?>
</div>
</div>
</div>
<?php
}
/**
* Render the loading container when data is not available and being fetched.
*
* @since 1.144.0
* @param string $class_names Class names to add to the container.
* @return void
*/
private function render_loading_container( $class_names ) {
?>
<div class="googlesitekit-preview-block <?php echo esc_attr( $class_names ); ?>">
<div class="googlesitekit-preview-block__wrapper"></div>
</div>
<?php
}
}