@@ -659,7 +659,21 @@ function wp_new_blog_notification() {
659659 add_filter ( 'send_site_admin_email_change_email ' , '__return_false ' );
660660 }
661661
662- require_once ABSPATH . 'wp-admin/includes/upgrade.php ' ;
662+ $ upgrade_file = ABSPATH . 'wp-admin/includes/upgrade.php ' ;
663+ if ( ! file_exists ( $ upgrade_file ) ) {
664+ WP_CLI ::error ( "WordPress installation is incomplete. The file ' {$ upgrade_file }' is missing. " );
665+ }
666+
667+ // Suppress errors from require_once and catch them for better error messages.
668+ // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged -- Intentional to provide better error messages.
669+ if ( ! @require_once $ upgrade_file ) {
670+ $ error = error_get_last ();
671+ if ( $ error ) {
672+ WP_CLI ::error ( "Failed to load WordPress installation file ' {$ upgrade_file }': {$ error ['message ' ]}" );
673+ } else {
674+ WP_CLI ::error ( "Failed to load WordPress installation file ' {$ upgrade_file }'. " );
675+ }
676+ }
663677
664678 $ defaults = [
665679 'title ' => '' ,
@@ -715,7 +729,21 @@ function wp_new_blog_notification() {
715729 private function multisite_convert_ ( $ assoc_args ) {
716730 global $ wpdb ;
717731
718- require_once ABSPATH . 'wp-admin/includes/upgrade.php ' ;
732+ $ upgrade_file = ABSPATH . 'wp-admin/includes/upgrade.php ' ;
733+ if ( ! file_exists ( $ upgrade_file ) ) {
734+ WP_CLI ::error ( "WordPress installation is incomplete. The file ' {$ upgrade_file }' is missing. " );
735+ }
736+
737+ // Suppress errors from require_once and catch them for better error messages.
738+ // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged -- Intentional to provide better error messages.
739+ if ( ! @require_once $ upgrade_file ) {
740+ $ error = error_get_last ();
741+ if ( $ error ) {
742+ WP_CLI ::error ( "Failed to load WordPress installation file ' {$ upgrade_file }': {$ error ['message ' ]}" );
743+ } else {
744+ WP_CLI ::error ( "Failed to load WordPress installation file ' {$ upgrade_file }'. " );
745+ }
746+ }
719747
720748 $ domain = self ::get_clean_basedomain ();
721749 if ( 'localhost ' === $ domain && ! empty ( $ assoc_args ['subdomains ' ] ) ) {
@@ -1211,7 +1239,21 @@ public function update( $args, $assoc_args ) {
12111239 && ( $ update ->version !== $ wp_version
12121240 || Utils \get_flag_value ( $ assoc_args , 'force ' ) ) ) {
12131241
1214- require_once ABSPATH . 'wp-admin/includes/upgrade.php ' ;
1242+ $ upgrade_file = ABSPATH . 'wp-admin/includes/upgrade.php ' ;
1243+ if ( ! file_exists ( $ upgrade_file ) ) {
1244+ WP_CLI ::error ( "WordPress installation is incomplete. The file ' {$ upgrade_file }' is missing. " );
1245+ }
1246+
1247+ // Suppress errors from require_once and catch them for better error messages.
1248+ // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged -- Intentional to provide better error messages.
1249+ if ( ! @require_once $ upgrade_file ) {
1250+ $ error = error_get_last ();
1251+ if ( $ error ) {
1252+ WP_CLI ::error ( "Failed to load WordPress installation file ' {$ upgrade_file }': {$ error ['message ' ]}" );
1253+ } else {
1254+ WP_CLI ::error ( "Failed to load WordPress installation file ' {$ upgrade_file }'. " );
1255+ }
1256+ }
12151257
12161258 if ( $ update ->version ) {
12171259 WP_CLI ::log ( "Updating to version {$ update ->version } ( {$ update ->locale })... " );
@@ -1371,7 +1413,21 @@ public function update_db( $args, $assoc_args ) {
13711413 }
13721414 WP_CLI ::success ( "WordPress database upgraded on {$ success }/ {$ total } sites. " );
13731415 } else {
1374- require_once ABSPATH . 'wp-admin/includes/upgrade.php ' ;
1416+ $ upgrade_file = ABSPATH . 'wp-admin/includes/upgrade.php ' ;
1417+ if ( ! file_exists ( $ upgrade_file ) ) {
1418+ WP_CLI ::error ( "WordPress installation is incomplete. The file ' {$ upgrade_file }' is missing. " );
1419+ }
1420+
1421+ // Suppress errors from require_once and catch them for better error messages.
1422+ // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged -- Intentional to provide better error messages.
1423+ if ( ! @require_once $ upgrade_file ) {
1424+ $ error = error_get_last ();
1425+ if ( $ error ) {
1426+ WP_CLI ::error ( "Failed to load WordPress installation file ' {$ upgrade_file }': {$ error ['message ' ]}" );
1427+ } else {
1428+ WP_CLI ::error ( "Failed to load WordPress installation file ' {$ upgrade_file }'. " );
1429+ }
1430+ }
13751431
13761432 /**
13771433 * @var string $wp_current_db_version
0 commit comments