| Server IP : 38.190.208.107 / Your IP : 216.73.217.46 Web Server : nginx/1.28.1 System : Linux ht2026040333114 6.1.0-10-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.37-1 (2023-07-03) x86_64 User : root ( 0) PHP Version : 8.2.28 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,eval,assert,passthru,system,exec,shell_exec,popen,proc_open MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /www/wwwroot/wp.3/wp-content/plugins/wp-statistics/src/Service/Admin/Metabox/ |
Upload File : |
<?php
namespace WP_Statistics\Service\Admin\Metabox;
use WP_Screen;
use WP_Statistics\Core\CoreFactory;
class MetaboxManager
{
public function __construct()
{
add_action('admin_init', [$this, 'registerMetaboxes']);
add_action('admin_init', [$this, 'hideDashboardMetaboxes']);
}
/**
* Registers active metaboxes.
*
* @return void
*/
public function registerMetaboxes()
{
$metaboxes = MetaboxHelper::getActiveMetaboxes();
foreach ($metaboxes as $metabox) {
$metabox->register();
}
}
/**
* Hides default dashboard metaboxes for the current user on fresh installs.
*
* Hooked into 'admin_init'. Runs only once on fresh installs.
* Excludes the 'wp-statistics-quickstats-widget' from being hidden.
*
* @return void
*/
public function hideDashboardMetaboxes()
{
$userId = get_current_user_id();
$hiddenMetaboxesKey = 'metaboxhidden_dashboard';
$metaboxInitFlagKey = 'wp_statistics_metaboxhidden_dashboard_initialized';
if (get_user_meta($userId, $metaboxInitFlagKey, true)) {
return;
}
if (!CoreFactory::isFresh() && get_user_meta($userId, $hiddenMetaboxesKey, true)) {
return;
}
$hidden = [];
$metaboxes = MetaboxHelper::getActiveMetaboxes();
foreach ($metaboxes as $metabox) {
$key = $metabox->getKey();
if ($key === 'wp-statistics-quickstats-widget') {
continue;
}
$hidden[] = $key;
}
if (empty($hidden)) {
return;
}
$existingHidden = get_user_meta($userId, $hiddenMetaboxesKey, true);
if (!is_array($existingHidden)) {
update_user_meta($userId, $hiddenMetaboxesKey, $hidden);
} elseif (array_diff($hidden, $existingHidden)) {
$mergedHidden = array_unique(array_merge($existingHidden, $hidden));
update_user_meta($userId, $hiddenMetaboxesKey, $mergedHidden);
}
update_user_meta($userId, $metaboxInitFlagKey, 1);
}
}