| Server IP : 172.67.159.97 / Your IP : 216.73.217.154 Web Server : nginx/1.24.0 System : Linux wordpress-sites 6.8.0-134-generic #134-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 26 18:43:11 UTC 2026 x86_64 User : www-data ( 33) PHP Version : 8.1.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/rebeccaone.com/wp-content/plugins/worker/src/MWP/Extension/ |
Upload File : |
<?php
/*
* This file is part of the ManageWP Worker plugin.
*
* (c) ManageWP LLC <[email protected]>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
class MWP_Extension_HitCounter
{
private $context;
/**
* @var int
*/
private $numberOfDays;
const OPTION_NAME = 'user_hit_count';
/**
* @param MWP_WordPress_Context $context
* @param int $numberOfDays Number of days to keep the log.
*/
public function __construct(MWP_WordPress_Context $context, $numberOfDays = 1)
{
$this->context = $context;
$this->numberOfDays = $numberOfDays;
}
/**
* @param int $incrementBy
* @param DateTime $dateTime
*
* Note: Type hint removed from $dateTime parameter to fix PHP 8.4+ deprecation warning
* about implicitly nullable parameters while maintaining backward compatibility with PHP 5.5+.
* The nullable type syntax (?DateTime) is not supported in PHP 5.5-7.0.
*/
public function increment($incrementBy = 1, $dateTime = null)
{
if ($dateTime === null) {
$dateTime = new DateTime('now', new DateTimeZone('UTC'));
}
/** @var DateTime $dateTime */
$date = $dateTime->format('Y-m-d');
$hitCount = (array)$this->getHitCount();
if (!isset($hitCount[$date])) {
$hitCount[$date] = 0;
ksort($hitCount);
$logSince = clone $dateTime;
$logSince->modify(sprintf('-%d day', $this->numberOfDays));
$logSinceDate = $logSince->format('Y-m-d');
foreach ($hitCount as $hitDate => $hitTotal) {
// The old functionality had a bug where keys were invalid dates, hence the date length check.
if ($hitDate <= $logSinceDate || strlen($hitDate) !== 10) {
unset($hitCount[$hitDate]);
}
}
}
$hitCount[$date] += $incrementBy;
$this->context->optionSet(self::OPTION_NAME, $hitCount);
}
/**
* @return array
*/
public function getHitCount()
{
$hitCount = $this->context->optionGet(self::OPTION_NAME, array());
return $hitCount;
}
}