. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
| Server IP : 162.0.212.4 / Your IP :
216.73.216.14 [
Web Server : LiteSpeed System : Linux premium146.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 User : alshnoli ( 2431) PHP Version : 8.3.28 Disable Function : NONE Domains : 1 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/alshnoli/public_html/wp-content/plugins/worker/src/MWP/Action/ |
Upload File : |
<?php
/*
* This file is part of the ManageWP Worker plugin.
*
* (c) ManageWP LLC <contact@managewp.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
class MWP_Action_ClearTransient extends MWP_Action_Abstract
{
public function execute(array $params = array())
{
$total = array(
'deletedTransients' => 0,
'deletedTransientTimeouts' => 0,
);
if (is_array($params['transient'])) {
foreach ($params['transient'] as $transient) {
$cleared = $this->clearTransients($params['prefix'], $transient['name'], $transient['suffix'], $transient['timeout'], $transient['mask'], $transient['limit']);
$total['deletedTransients'] += $cleared['deletedTransients'];
$total['deletedTransientTimeouts'] += $cleared['deletedTransientTimeouts'];
}
}
return $total;
}
private function clearTransients($prefix, $transientType, $suffix, $timeout, $mask, $limit)
{
$wpdb = $this->container->getWordPressContext()->getDb();
$timeoutName = $transientType.$suffix;
$subStrLength = strlen($timeoutName) + 1;
$escapedTimeoutName = str_replace('_', '\_', $timeoutName);
$selectTimeOutedTransients = <<<SQL
SELECT SUBSTR(option_name, {$subStrLength}) AS transient_name FROM {$prefix}options WHERE option_name LIKE '{$escapedTimeoutName}{$mask}' AND option_value < {$timeout} LIMIT {$limit}
SQL;
$transientsToDelete = $wpdb->get_col($selectTimeOutedTransients);
$timeoutsToDelete = array();
if (count($transientsToDelete) === 0) {
return array(
'deletedTransients' => 0,
'deletedTransientTimeouts' => 0,
);
}
foreach ($transientsToDelete as &$transient) {
$timeoutsToDelete[] = "'".$timeoutName.$transient."'";
$transient = "'".$transientType.$transient."'";
}
$deleteQuery = implode(',', $transientsToDelete);
$deleteTransients = <<<SQL
DELETE FROM {$prefix}options WHERE option_name IN ({$deleteQuery})
SQL;
$deletedTransients = $wpdb->query($deleteTransients);
$deleteQuery = implode(',', $timeoutsToDelete);
$deleteTransients = <<<SQL
DELETE FROM {$prefix}options WHERE option_name IN ({$deleteQuery})
SQL;
$deletedTransientTimeouts = $wpdb->query($deleteTransients);
return array(
'deletedTransients' => $deletedTransients,
'deletedTransientTimeouts' => $deletedTransientTimeouts,
);
}
}