diff --git a/inc/admin/adminbar.php b/inc/admin/adminbar.php index a8e1e8a..964dc92 100755 --- a/inc/admin/adminbar.php +++ b/inc/admin/adminbar.php @@ -100,3 +100,55 @@ function air_helper_adminbar_show_env_styles() { ?> } add_node( [ + 'id' => 'flushallcaches', + 'title' => __( 'Flush all caches', 'air-helper' ), + 'href' => admin_url( 'admin-post.php?action=flush_all_caches' ), + 'meta' => [ + 'class' => 'flushallcaches', + ], + ] ); +} + +/** + * Flush all caches. + */ + +add_action( 'admin_post_flush_all_caches', 'air_helper_flush_all_caches' ); + +function air_helper_flush_all_caches() { + if ( ! current_user_can( 'manage_options' ) ) { + return; + } + + if ( is_plugin_active( 'autoptimize/autoptimize.php' ) ) { + $success = autoptimizeCache::clearall(); + } + + // Redirect back with parameters to show notice + wp_safe_redirect( add_query_arg( 'action', 'flush_all_caches', wp_get_referer() ) ); + exit; +} + +function air_helper_flush_all_caches_notice() { + if ( ! isset( $_GET['action'] ) || 'flush_all_caches' !== $_GET['action'] ) { + return; + } + + ?> +
+

+
+