| 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/CLI/ |
Upload File : |
<?php
namespace WP_Statistics\CLI;
use WP_Statistics\Models\VisitorsModel;
use WP_Statistics\Models\OnlineModel;
class CliDataProvider
{
/**
* Visitor model instance.
*
* @var VisitorsModel
*/
protected $visitorsModel;
/**
* Online model instance.
*
* @var OnlineModel
*/
protected $onlineModel;
/**
* CliDataProvider constructor.
*
* Initializes model instances for visitors and online data.
*/
public function __construct()
{
$this->visitorsModel = new VisitorsModel();
$this->onlineModel = new OnlineModel();
}
/**
* Get summary data for visitors and online users.
*
* @param array $args
*
* @return array
*/
public function getSummaryData($args = [])
{
$data = $this->visitorsModel->getVisitorsHitsSummary(array_merge($args, [
'ignore_post_type' => true,
'include_total' => true,
'exclude' => ['last_week', 'last_month', '7days', '30days', '90days', '6months']
]));
return [
'visitors' => array_values(wp_list_pluck($data, 'visitors')),
'hits' => array_values(wp_list_pluck($data, 'hits')),
'labels' => array_values(wp_list_pluck($data, 'label')),
'online' => $this->onlineModel->countOnlines(),
];
}
/**
* Get detailed data about currently online visitors.
*
* @param array $args
*
* @return array
*/
public function getOnlineData($args = [])
{
return $this->onlineModel->getOnlineVisitorsData(array_merge($args, ['page' => 1]));
}
/**
* Get detailed visitor data.
*
* @param array $args
*
* @return array
*/
public function getVisitorsData($args = [])
{
return $this->visitorsModel->getVisitorsData(array_merge($args, ['ignore_date' => true, 'page' => 1]));
}
}