• File: class-uagb-caching.php
  • Full Path: /home/matthif/www/wp-content/plugins/ultimate-addons-for-gutenberg/classes/class-uagb-caching.php
  • Date Modified: 02/24/2024 11:29 PM
  • File size: 2.16 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?php
/**
 * UAGB Caching.
 *
 * @package UAGB
 */

if ( ! defined'ABSPATH' ) ) {
    exit; 
// Exit if accessed directly.
}

use 
SiteGround_Optimizer\Options\Options;
use 
SiteGround_Optimizer\File_Cacher\File_Cacher;

/**
 * Class UAGB_Caching.
 *
 * @since 2.10.1
 */
class UAGB_Caching {

    
/**
     * Member Variable
     *
     * @since 2.10.1
     * @var UAGB_Caching|null
     */
    
private static $instance;

    
/**
     *  Initiator
     *
     * @since 2.10.1
     * @return UAGB_Caching
     */
    
public static function get_instance() {

        if ( ! isset( 
self::$instance ) || null === self::$instance ) {
            
self::$instance = new self();

        }
        return 
self::$instance;
    }

    
/**
     * Constructor
     *
     * @since 2.10.1
     */
    
public function __construct() {
        
add_action'uagb_delete_uag_asset_dir', array( $this'clear_cache' ) );
        
add_action'uagb_delete_page_assets', array( $this'clear_cache' ) );
    }

    
/**
     * Clears the cache.
     *
     * @since 2.10.1
     * @return void
     */
    
public function clear_cache() {
        
self::clear_siteground_cache();
        
self::clear_cloudways_cache();
    }

    
/**
     * Clears the SiteGround cache.
     *
     * @since 2.10.1
     * @return void
     */
    
public static function clear_siteground_cache() {
        if ( ! 
class_exists'SiteGround_Optimizer\Options\Options' ) || ! class_exists'SiteGround_Optimizer\File_Cacher\File_Cacher' ) ) {
            return;
        }

        if ( 
Options::is_enabled'siteground_optimizer_file_caching' ) ) {
            
File_Cacher::get_instance()->purge_everything();
        }
    }

    
/**
     * This function helps to purge all cache in clodways envirnoment.
     * In presence of Breeze plugin (https://wordpress.org/plugins/breeze/)
     *
     * @since 2.11.0
     * @return void
     */
    
public static function clear_cloudways_cache() {
        if ( ! 
class_exists'Breeze_Configuration' ) || ! class_exists'Breeze_CloudFlare_Helper' ) || ! class_exists'Breeze_Admin' ) ) {
            return;
        }

        
// clear varnish cache.
        
$admin = new Breeze_Admin();
        
$admin->breeze_clear_varnish();

        
// clear static cache.
        
Breeze_Configuration::breeze_clean_cache();
        
Breeze_CloudFlare_Helper::reset_all_cache();
    }
}

/**
 *  Prepare if class 'UAGB_Caching' exist.
 *  Kicking this off by calling 'get_instance()' method
 */
UAGB_Caching::get_instance();