Server : Apache System : Linux pod-100823:apache2_74:v0.5.7 5.4.0-1138-gcp #147~18.04.1-Ubuntu SMP Mon Oct 7 21:46:26 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33.7 Disable Function : apache_child_terminate,apache_get_modules,apache_get_version,apache_getenv,apache_note,apache_setenv,disk_free_space,disk_total_space,diskfreespace,dl,exec,fastcgi_finish_request,link,opcache_compile_file,opcache_get_configuration,opcache_invalidate,opcache_is_script_cached,opcache_reset,passthru,pclose,pcntl_exec,popen,posix_getpid,posix_getppid,posix_getpwuid,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_uname,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,realpath_cache_get,shell_exec,show_source,symlink,system Directory : /nas/content/live/attorneyexperi/wp-content/plugins/ugslot/MWP/Action/ |
<?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, ); } }