Astra_Minify::clear_assets_cache()

Deletes cached CSS files based on the current context (live, preview or customizer) or all if $all is set to true.


Description


Return

(boolean) Returns True if files were successfull deleted, False If files could not be deleted.


Source

File: classes/class-astra-minify.php

		public static function clear_assets_cache() {

			// Make sure the filesystem is loaded.
			self::load_filesystem();

			$dir_name   = 'astra-addon';
			$cache_dir  = self::get_cache_dir();
			$asset_slug = self::_asset_slug();

			/* Delete CSS Keys */
			delete_option( self::$_css_key . '-' . $asset_slug );
			delete_option( self::$_css_key . '-files-' . $asset_slug );

			/* Delete JS Keys */
			delete_option( self::$_js_key . '-' . $asset_slug );
			delete_option( self::$_js_key . '-files-' . $asset_slug );
			delete_option( self::$_js_key . '-dep-' . $asset_slug );

			if ( ! empty( $cache_dir['path'] ) && stristr( $cache_dir['path'], $dir_name ) ) {
				$directory     = trailingslashit( $cache_dir['path'] );
				$filelist      = (array) self::$astra_addon_filesystem->dirlist( $directory, true );
				$delete_status = true;

				foreach ( $filelist as $file ) {

					// don't delete dynamic css files.
					// @TODO: use Astra_Cache to generate and manage CSS files.
					if ( false !== strpos( $file['name'], 'dynamic-css' ) ) {
						continue;
					}

					// Skip astra-addon css/js files if customizer preview. Whenever customizer was refreshed, astra-addon used to regenerate. If HTML cache is enabled on the frontend then just visiting the customizer regenerates the astra-addon assets and gives 404 not found error for astra-addon assets on frontend.
					if ( self::is_customizer_preview() && ( false !== strpos( $file['name'], 'astra-addon-' ) ) ) {
						continue;
					}

					$file = $directory . $file['name'];

					if ( is_file( $file ) && file_exists( $file ) ) {
						$delete_status = self::$astra_addon_filesystem->delete( $file );
					}
				}

				// If the file was not correctly deleted.
				if ( false == $delete_status ) {
					// Set status CSS status True. This will load the CSS as inline.
					update_option( 'ast-theme-css-status', true );
					update_option( 'astra-addon-js-status', true );

					return false;
				}
			}

			return true;
		}

Changelog

Changelog
Version Description
1.0 Introduced.


User Contributed Notes

You must log in before being able to contribute a note or feedback.