diff --git a/wp-admin/includes/class-wp-site-health.php b/wp-admin/includes/class-wp-site-health.php index a198b496d7..eda8bfaa4b 100644 --- a/wp-admin/includes/class-wp-site-health.php +++ b/wp-admin/includes/class-wp-site-health.php @@ -2009,9 +2009,19 @@ class WP_Site_Health { 'test' => 'update_temp_backup_writable', ); - if ( ! $wp_filesystem ) { + if ( ! function_exists( 'WP_Filesystem' ) ) { require_once ABSPATH . '/wp-admin/includes/file.php'; - WP_Filesystem(); + } + + ob_start(); + $credentials = request_filesystem_credentials( '' ); + ob_end_clean(); + + if ( false === $credentials || ! WP_Filesystem( $credentials ) ) { + $result['status'] = 'recommended'; + $result['label'] = __( 'Could not access filesystem' ); + $result['description'] = __( 'Unable to connect to the filesystem. Please confirm your credentials.' ); + return $result; } $wp_content = $wp_filesystem->wp_content_dir(); diff --git a/wp-includes/update.php b/wp-includes/update.php index 350182b2ce..7c4e31feef 100644 --- a/wp-includes/update.php +++ b/wp-includes/update.php @@ -1113,9 +1113,16 @@ function wp_delete_all_temp_backups() { function _wp_delete_all_temp_backups() { global $wp_filesystem; - if ( ! $wp_filesystem ) { + if ( ! function_exists( 'WP_Filesystem' ) ) { require_once ABSPATH . '/wp-admin/includes/file.php'; - WP_Filesystem(); + } + + ob_start(); + $credentials = request_filesystem_credentials( '' ); + ob_end_clean(); + + if ( false === $credentials || ! WP_Filesystem( $credentials ) ) { + return new WP_Error( 'fs_unavailable', __( 'Could not access filesystem.' ) ); } if ( ! $wp_filesystem->wp_content_dir() ) { diff --git a/wp-includes/version.php b/wp-includes/version.php index 077bcb66ef..90f48edd15 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -16,7 +16,7 @@ * * @global string $wp_version */ -$wp_version = '6.4-alpha-56339'; +$wp_version = '6.4-alpha-56341'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.