| 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/includes/api/v2/ |
Upload File : |
<?php
namespace WP_STATISTICS\Api\v2;
use Exception;
use WP_STATISTICS\Helper;
use WP_STATISTICS\Hits;
use WP_STATISTICS\Option;
class Hit extends \WP_STATISTICS\RestAPI
{
/**
* Hit Endpoint
*
* @var string
*/
public static $endpoint = 'hit';
/**
* Hit constructor.
*
* @see https://developer.wordpress.org/rest-api/extending-the-rest-api/adding-custom-endpoints/
*/
public function __construct()
{
// Use Parent Construct
parent::__construct();
if (Option::get('use_cache_plugin')) {
// Register routes
add_action('rest_api_init', array($this, 'register_routes'));
}
}
/**
* List Of Required Params
*
* @return array
*/
public static function require_params_hit()
{
return array(
'page_uri' => array('required' => true, 'type' => 'string')
);
}
/**
* Register routes
*
* @see https://developer.wordpress.org/reference/classes/wp_rest_server/
*/
public function register_routes()
{
$GLOBALS['wp_statistics_user_id'] = get_current_user_id();
// Record WP Statistics when Cache is enable
register_rest_route(self::$namespace, '/' . self::$endpoint, array(
array(
'methods' => \WP_REST_Server::CREATABLE,
'callback' => array($this, 'hit_callback'),
'args' => self::require_params_hit(),
'permission_callback' => function (\WP_REST_Request $request) {
return $this->checkSignature($request);
}
)
));
}
/**
* Record WP Statistics when Cache is enable
*
* @return \WP_REST_Response
* @throws Exception
*/
public function hit_callback()
{
$statusCode = false;
try {
Helper::validateHitRequest();
Hits::record();
$responseData['status'] = true;
} catch (Exception $e) {
$responseData['status'] = false;
$responseData['data'] = $e->getMessage();
$statusCode = $e->getCode();
}
$response = rest_ensure_response($responseData);
/**
* Set the status code
*/
if ($statusCode) {
$response->set_status($statusCode);
}
/**
* Set headers for the response
*
* @since 13.0.8
*/
$response->set_headers(array(
/**
* Cache-Control for Cloudflare caching compatibility
*
* @link https://wordpress.org/support/topic/request-for-cloudflare-html-caching-compatibility/
*/
'Cache-Control' => 'no-cache',
));
return $response;
}
}
new Hit();