*/ public static function get_bulk_transients(): array { return [ 'imagify_custom-folders_optimize_running', 'imagify_wp_optimize_running', 'imagify_bulk_optimization_complete', 'imagify_missing_next_gen_total', 'imagify_bulk_optimization_result', 'imagify_bulk_optimization_infos', 'imagify_bulk_optimization_level', // Stale artifact from old WP_Background_Process, retained for hygiene on upgraded sites. ]; } /** * Returns raw LIKE pattern templates for process-lock and legacy RPC transients. * * These are plain strings where `%` is a wildcard placeholder and `_` is a * literal underscore. Callers must pass each part through $wpdb->esc_like() * before assembling the final LIKE expression — do NOT use these strings * directly as SQL LIKE patterns. * * @return array */ public static function get_locked_transient_patterns(): array { return [ '_transient_%imagify-auto-optimize-%', // Legacy/deprecated, retained for hygiene on older installs. '_transient_%imagify_rpc_%', // Legacy/deprecated. '_transient_imagify_%_process_locked', '_site_transient_imagify_%_process_lock%', ]; } /** * Returns the ActionScheduler hook names to unschedule. * * @return array */ public static function get_scheduler_hooks(): array { return [ 'imagify_optimize_media', 'imagify_convert_next_gen', ]; } }