Index: trunk/src/wp-admin/update-core.php
===================================================================
--- trunk/src/wp-admin/update-core.php	(revision 49490)
+++ trunk/src/wp-admin/update-core.php	(revision 49587)
@@ -63,5 +63,5 @@
 
 	if ( 'development' === $update->response ) {
-		$message = __( 'You are using a development version of WordPress. You can update to the latest nightly build automatically:' );
+		$message = __( 'You are using a development version of WordPress. You can update to the latest nightly build manually:' );
 	} else {
 		if ( $current ) {
@@ -128,5 +128,5 @@
 				$message = sprintf(
 					/* translators: 1: Installed WordPress version number, 2: URL to WordPress release notes, 3: New WordPress version number, including locale if necessary. */
-					__( 'You can update from WordPress %1$s to <a href="%2$s">WordPress %3$s</a> automatically:' ),
+					__( 'You can update from WordPress %1$s to <a href="%2$s">WordPress %3$s</a> manually:' ),
 					$wp_version,
 					$version_url,
@@ -255,5 +255,9 @@
 
 	if ( isset( $updates[0]->version ) && version_compare( $updates[0]->version, $wp_version, '>' ) ) {
-		echo '<div class="notice notice-warning"><p>';
+		echo '<h2 class="response">';
+		_e( 'An updated version of WordPress is available.' );
+		echo '</h2>';
+
+		echo '<div class="notice notice-warning inline"><p>';
 		printf(
 			/* translators: 1: Documentation on WordPress backups, 2: Documentation on updating WordPress. */
@@ -263,8 +267,4 @@
 		);
 		echo '</p></div>';
-
-		echo '<h2 class="response">';
-		_e( 'An updated version of WordPress is available.' );
-		echo '</h2>';
 	}
 
@@ -307,20 +307,20 @@
  */
 function core_auto_updates_settings() {
-	$upgrade_major_value = '';
-	if ( isset( $_POST['core-auto-updates-settings'] ) && wp_verify_nonce( $_POST['set_core_auto_updates_settings'], 'core-auto-updates-nonce' ) ) {
-		if ( isset( $_POST['core-auto-updates-major'] ) && 1 === (int) $_POST['core-auto-updates-major'] ) {
-			update_site_option( 'auto_update_core_major', 1 );
-		} else {
-			update_site_option( 'auto_update_core_major', 0 );
-		}
-		echo '<div class="notice notice-success is-dismissible"><p>';
-		_e( 'WordPress auto-update settings updated.' );
-		echo '</p></div>';
-	}
-
-	$upgrade_dev   = get_site_option( 'auto_update_core_dev', true );
-	$upgrade_minor = get_site_option( 'auto_update_core_minor', true );
-	$upgrade_major = get_site_option( 'auto_update_core_major', false );
-
+	if ( isset( $_GET['core-major-auto-updates-saved'] ) ) {
+		if ( 'enabled' === $_GET['core-major-auto-updates-saved'] ) {
+			$notice_text = __( 'Automatic updates for all WordPress versions have been enabled. Thank you!' );
+			echo '<div class="notice notice-success is-dismissible"><p>' . $notice_text . '</p></div>';
+		} elseif ( 'disabled' === $_GET['core-major-auto-updates-saved'] ) {
+			$notice_text = __( 'WordPress will only receive automatic security and maintenance releases from now on.' );
+			echo '<div class="notice notice-success is-dismissible"><p>' . $notice_text . '</p></div>';
+		}
+	}
+
+	// Defaults:
+	$upgrade_dev   = get_site_option( 'auto_update_core_dev', 'enabled' ) === 'enabled';
+	$upgrade_minor = get_site_option( 'auto_update_core_minor', 'enabled' ) === 'enabled';
+	$upgrade_major = get_site_option( 'auto_update_core_major', 'unset' ) === 'enabled';
+
+	$can_set_update_option = true;
 	// WP_AUTO_UPDATE_CORE = true (all), 'beta', 'rc', 'minor', false.
 	if ( defined( 'WP_AUTO_UPDATE_CORE' ) ) {
@@ -344,4 +344,22 @@
 			$upgrade_major = false;
 		}
+
+		// The UI is overridden by the WP_AUTO_UPDATE_CORE constant.
+		$can_set_update_option = false;
+	}
+
+	if ( defined( 'AUTOMATIC_UPDATER_DISABLED' ) ) {
+		if ( true === AUTOMATIC_UPDATER_DISABLED ) {
+			$upgrade_dev   = false;
+			$upgrade_minor = false;
+			$upgrade_major = false;
+		}
+		// The UI is overridden by the AUTOMATIC_UPDATER_DISABLED constant.
+		$can_set_update_option = false;
+	}
+
+	// Is the UI overridden by a plugin using the allow_major_auto_core_updates filter?
+	if ( has_filter( 'allow_major_auto_core_updates' ) ) {
+		$can_set_update_option = false;
 	}
 
@@ -358,38 +376,54 @@
 		'major' => $upgrade_major,
 	);
+
+	if ( $upgrade_major ) {
+		$wp_version = get_bloginfo( 'version' );
+		$updates    = get_core_updates();
+
+		if ( isset( $updates[0]->version ) && version_compare( $updates[0]->version, $wp_version, '>' ) ) {
+			echo '<p>' . wp_get_auto_update_message() . '</p>';
+		}
+	}
+
+	$action_url = self_admin_url( 'update-core.php?action=core-major-auto-updates-settings' );
 	?>
-	<form method="post" action="<?php echo esc_url( $_SERVER['REQUEST_URI'] ); ?>" name="core-auto-updates" class="form-core-auto-updates">
-		<?php wp_nonce_field( 'core-auto-updates-nonce', 'set_core_auto_updates_settings' ); ?>
-		<h2><?php _e( 'Auto-update settings' ); ?></h2>
-		<p>
-			<?php
-			if ( $auto_update_settings['major'] ) {
-				$wp_version = get_bloginfo( 'version' );
-				$updates    = get_core_updates();
-				if ( isset( $updates[0]->version ) && version_compare( $updates[0]->version, $wp_version, '>' ) ) {
-					echo wp_get_auto_update_message();
-				}
-			}
-			?>
-		</p>
-		<p>
-			<input type="checkbox" name="core-auto-updates-major" id="core-auto-updates-major" value="1" <?php checked( $auto_update_settings['major'], 1 ); ?> />
-			<label for="core-auto-updates-major">
-				<?php _e( 'Automatically keep this site up-to-date with regular feature updates.' ); ?>
-			</label>
-		</p>
+
+	<p class="auto-update-status">
 		<?php
-		/**
-		 * Fires after the major core auto-update checkbox.
-		 *
-		 * @since 5.6.0
-		 */
-		do_action( 'after_core_auto_updates_settings_fields', $auto_update_settings );
+		if ( $upgrade_major ) {
+			_e( 'This site is automatically kept up to date with each new version of WordPress.' );
+
+			if ( $can_set_update_option ) {
+				echo '<br>';
+				echo sprintf(
+					/* Translators: Action link to disable core auto-updates. */
+					__( '<a href="%s">Switch to automatic updates for maintenance and security releases only.</a>' ),
+					wp_nonce_url( add_query_arg( 'value', 'disable', $action_url ), 'core-major-auto-updates-nonce' )
+				);
+			}
+		} elseif ( $upgrade_minor ) {
+			_e( 'This site is automatically kept up to date with maintenance and security releases of WordPress.' );
+
+			if ( $can_set_update_option ) {
+				echo '<br>';
+				echo sprintf(
+					/* Translators: Action link to enable core auto-updates. */
+					__( '<a href="%s">Enable automatic updates for all new versions of WordPress.</a>' ),
+					wp_nonce_url( add_query_arg( 'value', 'enable', $action_url ), 'core-major-auto-updates-nonce' )
+				);
+			}
+		} else {
+			_e( 'This site will not receive automatic updates for new versions of WordPress.' );
+		}
 		?>
-		<p>
-			<input id="core-auto-updates-settings" class="button" type="submit" value="<?php esc_attr_e( 'Save' ); ?>" name="core-auto-updates-settings" />
-		</p>
-	</form>
+	</p>
+
 	<?php
+	/**
+	 * Fires after the major core auto-update settings.
+	 *
+	 * @since 5.6.0
+	 */
+	do_action( 'after_core_auto_updates_settings', $auto_update_settings );
 }
 
@@ -958,4 +992,6 @@
 	<div class="wrap">
 	<h1><?php _e( 'WordPress Updates' ); ?></h1>
+	<p><?php _e( 'Here you can find information about updates, set auto-updates and see what plugins or themes need updating.' ); ?></p>
+
 	<?php
 	if ( $upgrade_error ) {
@@ -976,5 +1012,10 @@
 	}
 
-	echo '<p>';
+	echo '<h2 class="wp-current-version">';
+	/* translators: Current version of WordPress. */
+	printf( __( 'Current version: %s' ), get_bloginfo( 'version' ) );
+	echo '</h2>';
+
+	echo '<p class="update-last-checked">';
 	/* translators: 1: Date, 2: Time. */
 	printf( __( 'Last checked on %1$s at %2$s.' ), date_i18n( __( 'F j, Y' ), $last_update_check ), date_i18n( __( 'g:i a' ), $last_update_check ) );
@@ -983,6 +1024,6 @@
 
 	if ( current_user_can( 'update_core' ) ) {
+		core_auto_updates_settings();
 		core_upgrade_preamble();
-		core_auto_updates_settings();
 	}
 	if ( current_user_can( 'update_plugins' ) ) {
@@ -1159,4 +1200,21 @@
 	require_once ABSPATH . 'wp-admin/admin-footer.php';
 
+} elseif ( 'core-major-auto-updates-settings' === $action ) {
+	$redirect_url = self_admin_url( 'update-core.php' );
+
+	if ( isset( $_GET['value'] ) ) {
+		check_admin_referer( 'core-major-auto-updates-nonce' );
+
+		if ( 'enable' === $_GET['value'] ) {
+			update_site_option( 'auto_update_core_major', 'enabled' );
+			$redirect_url = add_query_arg( 'core-major-auto-updates-saved', 'enabled', $redirect_url );
+		} elseif ( 'disable' === $_GET['value'] ) {
+			update_site_option( 'auto_update_core_major', 'disabled' );
+			$redirect_url = add_query_arg( 'core-major-auto-updates-saved', 'disabled', $redirect_url );
+		}
+	}
+
+	wp_redirect( $redirect_url );
+	exit;
 } else {
 	/**
