Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
natchbone
/
wp-smushit
/
core
/
next-gen
:
class-next-gen-controller.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace Smush\Core\Next_Gen; use Smush\Core\Avif\Avif_Configuration; use Smush\Core\Controller; use Smush\Core\Settings; use Smush\Core\Webp\Webp_Configuration; class Next_Gen_Controller extends Controller { const DELETE_OLD_IMAGES_CRON_HOOK = 'wp_smush_next_gen_delete_old_images'; const OLD_IMAGES_RETENTION_DAYS = 7; /** * @var Settings */ private $settings; /** * @var Next_Gen_Manager */ private $next_gen_manager; public function __construct() { $this->settings = Settings::get_instance(); $this->next_gen_manager = Next_Gen_Manager::get_instance(); $this->register_action( 'wp_smush_webp_status_changed', array( $this, 'maybe_update_previously_active_format_key_on_webp_status_changed' ) ); $this->register_action( 'wp_smush_avif_status_changed', array( $this, 'maybe_update_previously_active_format_key_on_avif_status_changed' ) ); $this->register_action( 'wp_smush_next_gen_after_format_switch', array( $this, 'schedule_delete_old_next_gen_images_cron' ), 10, 2 ); $this->register_action( self::DELETE_OLD_IMAGES_CRON_HOOK, array( $this, 'cron_delete_old_next_gen_images' ) ); } public function maybe_update_previously_active_format_key_on_webp_status_changed() { if ( $this->settings->is_webp_module_active() ) { return; } $this->next_gen_manager->save_previously_active_format_key( Webp_Configuration::FORMAT_KEY ); } public function maybe_update_previously_active_format_key_on_avif_status_changed() { if ( $this->settings->is_avif_module_active() ) { return; } $this->next_gen_manager->save_previously_active_format_key( Avif_Configuration::FORMAT_KEY ); } public function schedule_delete_old_next_gen_images_cron( $new_format_key, $old_format_key ) { wp_unschedule_hook( self::DELETE_OLD_IMAGES_CRON_HOOK ); // Schedules a new event. $cron_time = time() + DAY_IN_SECONDS * self::OLD_IMAGES_RETENTION_DAYS; wp_schedule_single_event( $cron_time, self::DELETE_OLD_IMAGES_CRON_HOOK, array( $old_format_key ) ); } public function cron_delete_old_next_gen_images( $format_key ) { if ( ! wp_doing_cron() ) { return; } $configuration = $this->next_gen_manager->get_format_configuration( $format_key ); if ( $configuration->is_activated() ) { return; } $configuration->delete_all_next_gen_files(); } }