PATH:
home
/
niazsaze
/
public_html
/
wp-content
/
plugins
/
wp-statistics
/
src
/
Service
/
Analytics
/
DeviceDetection
<?php namespace WP_Statistics\Service\Analytics\DeviceDetection; use DeviceDetector\DeviceDetector; use Exception; use WP_STATISTICS\Helper; class UserAgentService { protected $deviceDetector; /** * Constructor to initialize DeviceDetector with the user agent. */ public function __construct() { try { // Get HTTP User Agent $userAgent = UserAgent::getHttpUserAgent(); // Initialize DeviceDetector with the user agent string $this->deviceDetector = new \WP_Statistics\Dependencies\DeviceDetector\DeviceDetector($userAgent); $this->deviceDetector->parse(); } catch (Exception $e) { // In case of an error, set deviceDetector to null $this->deviceDetector = null; } } /** * Return the DeviceDetector instance. * * @return DeviceDetector|null */ public function getDeviceDetector() { return $this->deviceDetector; } /** * Get the browser name. * * @return string|null */ public function getBrowser() { return $this->deviceDetector ? $this->deviceDetector->getClient('name') : null; } /** * Get the platform (Operating System). * * @return string|null */ public function getPlatform() { return $this->deviceDetector ? $this->deviceDetector->getOs('name') : null; } /** * Get the browser version. * * @return string|null */ public function getVersion() { return $this->deviceDetector ? Helper::getMajorVersionOnly($this->deviceDetector->getClient('version')) : null; } /** * Get the device type (mobile/desktop). * * @return string|null */ public function getDevice() { return $this->deviceDetector ? $this->deviceDetector->getDeviceName() : null; } /** * Get the device model. * * @return string|null */ public function getModel() { $model = ''; if (! empty($this->deviceDetector)) { $brand = $this->deviceDetector->getBrandName(); $device = $this->deviceDetector->getModel(); if (!empty($device)) { $words = explode(' ', trim($device)); $device = $words[0] ?? null; if (! empty($device) && ctype_digit($device)) { $device = ''; } } $model = trim($brand . ' ' . $device); } return $model ?? null; } /** * Check if the browser was detected. * * @return bool */ public function isBrowserDetected() { return $this->deviceDetector && $this->deviceDetector->getClient('name') !== null; } /** * Check if the platform was detected. * * @return bool */ public function isPlatformDetected() { return $this->deviceDetector && $this->deviceDetector->getOs('name') !== null; } /** * Check if the user agent is a bot. * * @return bool */ public function isBot() { return $this->deviceDetector && $this->deviceDetector->isBot(); } }
[-] DeviceHelper.php
[edit]
[-] UserAgentService.php
[edit]
[-] UserAgent.php
[edit]
[+]
..