rewriting Picture_Tag::register(); // Background AVIF queue (WP-Cron) Format_Generator::register_cron(); // Backup pruning cron add_action( 'h4b_img_prune_originals', [ Optimizer::class, 'prune_originals' ] ); add_action( 'init', [ $this, 'maybe_schedule_cron' ] ); // WP-CLI if ( defined( 'WP_CLI' ) && \WP_CLI ) { CLI::register(); } } public function on_activate(): void { Settings::install_defaults(); if ( ! wp_next_scheduled( 'h4b_img_prune_originals' ) ) { wp_schedule_event( time() + HOUR_IN_SECONDS, 'daily', 'h4b_img_prune_originals' ); } // Make sure the originals dir + .htaccess exist Optimizer::ensure_dirs(); } public function on_deactivate(): void { wp_clear_scheduled_hook( 'h4b_img_prune_originals' ); wp_clear_scheduled_hook( 'h4b_img_generate_avif' ); } public function maybe_schedule_cron(): void { if ( ! wp_next_scheduled( 'h4b_img_prune_originals' ) ) { wp_schedule_event( time() + HOUR_IN_SECONDS, 'daily', 'h4b_img_prune_originals' ); } } }