# jch-optimize/trunk/src/Controller/CleanCache.php

JCH Optimize, version trunk. 66 lines.

- Page: https://pluginprobe.com/plugins/jch-optimize/trunk/code/src/Controller/CleanCache.php
- Raw: https://pluginprobe.com/plugins/jch-optimize/trunk/raw/src/Controller/CleanCache.php
- Modified: 2026-07-11T15:21:38+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/jch-optimize/trunk/code/src/Controller/CleanCache.php#L10-L20`.

```php
<?php

/**
 * JCH Optimize - Performs several front-end optimizations for fast downloads
 *
 * @package   jchoptimize/wordpress-platform
 * @author    Samuel Marshall <samuel@jch-optimize.net>
 * @copyright Copyright (c) 2021 Samuel Marshall / JCH Optimize
 * @license   GNU/GPLv3, or later. See LICENSE file
 *
 * If LICENSE file missing, see <http://www.gnu.org/licenses/>.
 */

namespace JchOptimize\WordPress\Controller;

use _JchOptimizeVendor\V91\Joomla\Input\Input;
use JchOptimize\Core\Model\CacheMaintainer;
use JchOptimize\Core\Mvc\Controller;
use JchOptimize\WordPress\Log\WordpressNoticeLogger;

use function __;
use function JchOptimize\WordPress\base64_decode_url;
use function time;
use function update_option;
use function wp_redirect;

class CleanCache extends Controller
{
    use AuthorizesAdminRequestsTrait;

    public function __construct(private CacheMaintainer $cacheMaintainer, ?Input $input)
    {
        parent::__construct($input);
    }

    public function execute(): bool
    {
        $this->authorizeAnyCapability(['manage_options', 'jch_clear_page_cache']);
        /** @var WordpressNoticeLogger $logger */
        $logger = $this->logger;
        /** @var Input $input */
        $input = $this->getInput();

        if ($this->cacheMaintainer->cleanCache()) {
            update_option('jch_optimize_cache_last_cleared', time(), false);
            $logger->success(__('Cache deleted successfully!', 'jch-optimize'));

            $result = true;
        } else {
            $logger->error(__('Error cleaning cache!', 'jch-optimize'));

            $result = false;
        }

        if (($return = (string)$input->get('return')) != '') {
            $redirect = base64_decode_url($return);
        } else {
            $redirect = 'options-general.php?page=jch_optimize';
        }

        wp_redirect($redirect);

        return $result;
    }
}

```
