*/
/** WordPress Administration Bootstrap */
-require_once('./admin.php');
+require_once( dirname( __FILE__ ) . '/admin.php' );
wp_enqueue_style( 'plugin-install' );
wp_enqueue_script( 'plugin-install' );
exit();
}
-if ( ! current_user_can( 'update_core' ) )
+if ( ! current_user_can( 'update_core' ) && ! current_user_can( 'update_themes' ) && ! current_user_can( 'update_plugins' ) )
wp_die( __( 'You do not have sufficient permissions to update this site.' ) );
function list_core_update( $update ) {
- global $wp_local_package, $wpdb;
- static $first_pass = true;
+ global $wp_local_package, $wpdb, $wp_version;
+ static $first_pass = true;
+
+ if ( 'en_US' == $update->locale && 'en_US' == get_locale() )
+ $version_string = $update->current;
+ // If the only available update is a partial builds, it doesn't need a language-specific version string.
+ elseif ( 'en_US' == $update->locale && $update->packages->partial && $wp_version == $update->partial_version && ( $updates = get_core_updates() ) && 1 == count( $updates ) )
+ $version_string = $update->current;
+ else
+ $version_string = sprintf( "%s–<strong>%s</strong>", $update->current, $update->locale );
- $version_string = ('en_US' == $update->locale && 'en_US' == get_locale() ) ?
- $update->current : sprintf("%s–<strong>%s</strong>", $update->current, $update->locale);
$current = false;
if ( !isset($update->response) || 'latest' == $update->response )
$current = true;
$download = __('Download nightly build');
} else {
if ( $current ) {
- $message = sprintf(__('You have the latest version of WordPress. You do not need to update. However, if you want to re-install version %s, you can do so automatically or download the package and re-install manually:'), $version_string);
+ $message = sprintf( __( 'If you need to re-install version %s, you can do so here or download the package and re-install manually:' ), $version_string );
$submit = __('Re-install Now');
$form_action = 'update-core.php?action=do-core-reinstall';
} else {
echo '<input name="locale" value="'. esc_attr($update->locale) .'" type="hidden"/>';
if ( $show_buttons ) {
if ( $first_pass ) {
- submit_button( $submit, $current ? 'button' : 'primary', 'upgrade', false );
+ submit_button( $submit, $current ? 'button' : 'primary regular', 'upgrade', false );
$first_pass = false;
} else {
submit_button( $submit, 'button', 'upgrade', false );
echo '</p>';
if ( 'en_US' != $update->locale && ( !isset($wp_local_package) || $wp_local_package != $update->locale ) )
echo '<p class="hint">'.__('This localized version contains both the translation and various other localization fixes. You can skip upgrading if you want to keep your current translation.').'</p>';
- else if ( 'en_US' == $update->locale && get_locale() != 'en_US' ) {
+ // Partial builds don't need language-specific warnings.
+ elseif ( 'en_US' == $update->locale && get_locale() != 'en_US' && ( ! $update->packages->partial && $wp_version == $update->partial_version ) ) {
echo '<p class="hint">'.sprintf( __('You are about to install WordPress %s <strong>in English (US).</strong> There is a chance this update will break your translation. You may prefer to wait for the localized version to be released.'), $update->response != 'development' ? $update->current : '' ).'</p>';
}
echo '</form>';
* @return null
*/
function core_upgrade_preamble() {
- global $upgrade_error, $wp_version;
+ global $wp_version, $required_php_version, $required_mysql_version;
$updates = get_core_updates();
-?>
- <div class="wrap">
- <?php screen_icon('tools'); ?>
- <h2><?php _e('WordPress Updates'); ?></h2>
-<?php
- if ( $upgrade_error ) {
- echo '<div class="error"><p>';
- if ( $upgrade_error == 'themes' )
- _e('Please select one or more themes to update.');
- else
- _e('Please select one or more plugins to update.');
- echo '</p></div>';
- }
-
- echo '<p>';
- /* translators: %1 date, %2 time. */
- printf( __('Last checked on %1$s at %2$s.'), date_i18n( get_option( 'date_format' ) ), date_i18n( get_option( 'time_format' ) ) );
- echo ' <a class="button" href="' . esc_url( self_admin_url('update-core.php') ) . '">' . __( 'Check Again' ) . '</a>';
- echo '</p>';
if ( !isset($updates[0]->response) || 'latest' == $updates[0]->response ) {
echo '<h3>';
_e('You have the latest version of WordPress.');
+
+ if ( wp_http_supports( array( 'ssl' ) ) ) {
+ require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
+ $upgrader = new WP_Automatic_Updater;
+ $future_minor_update = (object) array(
+ 'current' => $wp_version . '.1.next.minor',
+ 'version' => $wp_version . '.1.next.minor',
+ 'php_version' => $required_php_version,
+ 'mysql_version' => $required_mysql_version,
+ );
+ $should_auto_update = $upgrader->should_update( 'core', $future_minor_update, ABSPATH );
+ if ( $should_auto_update )
+ echo ' ' . __( 'Future security updates will be applied automatically.' );
+ }
echo '</h3>';
} else {
echo '<div class="updated inline"><p>';
echo '</h3>';
}
+ if ( isset( $updates[0] ) && $updates[0]->response == 'development' ) {
+ require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
+ $upgrader = new WP_Automatic_Updater;
+ if ( wp_http_supports( 'ssl' ) && $upgrader->should_update( 'core', $updates[0], ABSPATH ) )
+ echo '<div class="updated inline"><p><strong>BETA TESTERS:</strong> This site is set up to install updates of future beta versions automatically.</p></div>';
+ }
+
echo '<ul class="core-updates">';
$alternate = true;
foreach( (array) $updates as $update ) {
echo '</li>';
}
echo '</ul>';
- if ( $updates ) {
+ // Don't show the maintenance mode notice when we are only showing a single re-install option.
+ if ( $updates && ( count( $updates ) > 1 || $updates[0]->response != 'latest' ) ) {
echo '<p>' . __( 'While your site is being updated, it will be in maintenance mode. As soon as your updates are complete, your site will return to normal.' ) . '</p>';
- } else {
+ } elseif ( ! $updates ) {
list( $normalized_version ) = explode( '-', $wp_version );
echo '<p>' . sprintf( __( '<a href="%s">Learn more about WordPress %s</a>.' ), esc_url( self_admin_url( 'about.php' ) ), $normalized_version ) . '</p>';
}
dismissed_updates();
-
- if ( current_user_can( 'update_plugins' ) )
- list_plugin_updates();
- if ( current_user_can( 'update_themes' ) )
- list_theme_updates();
- do_action('core_upgrade_preamble');
- echo '</div>';
}
function list_plugin_updates() {
?>
<h3><?php _e( 'Plugins' ); ?></h3>
<p><?php _e( 'The following plugins have new versions available. Check the ones you want to update and then click “Update Plugins”.' ); ?></p>
-<form method="post" action="<?php echo $form_action; ?>" name="upgrade-plugins" class="upgrade">
+<form method="post" action="<?php echo esc_url( $form_action ); ?>" name="upgrade-plugins" class="upgrade">
<?php wp_nonce_field('upgrade-core'); ?>
<p><input id="upgrade-plugins" class="button" type="submit" value="<?php esc_attr_e('Update Plugins'); ?>" name="upgrade" /></p>
<table class="widefat" cellspacing="0" id="update-plugins-table">
?>
<h3><?php _e( 'Themes' ); ?></h3>
<p><?php _e( 'The following themes have new versions available. Check the ones you want to update and then click “Update Themes”.' ); ?></p>
-<p><?php printf( __('<strong>Please Note:</strong> Any customizations you have made to theme files will be lost. Please consider using <a href="%s">child themes</a> for modifications.'), _x('http://codex.wordpress.org/Child_Themes', 'Link used in suggestion to use child themes in GUU') ); ?></p>
-<form method="post" action="<?php echo $form_action; ?>" name="upgrade-themes" class="upgrade">
+<p><?php printf( __( '<strong>Please Note:</strong> Any customizations you have made to theme files will be lost. Please consider using <a href="%s">child themes</a> for modifications.' ), __( 'http://codex.wordpress.org/Child_Themes' ) ); ?></p>
+<form method="post" action="<?php echo esc_url( $form_action ); ?>" name="upgrade-themes" class="upgrade">
<?php wp_nonce_field('upgrade-core'); ?>
<p><input id="upgrade-themes" class="button" type="submit" value="<?php esc_attr_e('Update Themes'); ?>" name="upgrade" /></p>
<table class="widefat" cellspacing="0" id="update-themes-table">
echo "
<tr class='active'>
<th scope='row' class='check-column'><input type='checkbox' name='checked[]' value='" . esc_attr( $stylesheet ) . "' /></th>
- <td class='plugin-title'><img src='" . esc_url( $theme->get_screenshot() ) . "' width='64' height='64' style='float:left; padding: 0 5px 5px' /><strong>" . $theme->display('Name') . '</strong> ' . sprintf( __( 'You have version %1$s installed. Update to %2$s.' ), $theme->display('Version'), $theme->update['new_version'] ) . "</td>
+ <td class='plugin-title'><img src='" . esc_url( $theme->get_screenshot() ) . "' width='85' height='64' style='float:left; padding: 0 5px 5px' /><strong>" . $theme->display('Name') . '</strong> ' . sprintf( __( 'You have version %1$s installed. Update to %2$s.' ), $theme->display('Version'), $theme->update['new_version'] ) . "</td>
</tr>";
}
?>
<?php
}
+function list_translation_updates() {
+ $updates = wp_get_translation_updates();
+ if ( ! $updates ) {
+ if ( 'en_US' != get_locale() ) {
+ echo '<h3>' . __( 'Translations' ) . '</h3>';
+ echo '<p>' . __( 'Your translations are all up to date.' ) . '</p>';
+ }
+ return;
+ }
+
+ $form_action = 'update-core.php?action=do-translation-upgrade';
+ ?>
+ <h3><?php _e( 'Translations' ); ?></h3>
+ <form method="post" action="<?php echo esc_url( $form_action ); ?>" name="upgrade-themes" class="upgrade">
+ <p><?php _e( 'Some of your translations are out of date.' ); ?></p>
+ <?php wp_nonce_field('upgrade-translations'); ?>
+ <p><input class="button" type="submit" value="<?php esc_attr_e( 'Update Translations' ); ?>" name="upgrade" /></p>
+ </form>
+ <?php
+}
+
/**
* Upgrade WordPress core display.
*
function do_core_upgrade( $reinstall = false ) {
global $wp_filesystem;
+ include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
+
if ( $reinstall )
$url = 'update-core.php?action=do-core-reinstall';
else
$url = 'update-core.php?action=do-core-upgrade';
$url = wp_nonce_url($url, 'upgrade-core');
- if ( false === ($credentials = request_filesystem_credentials($url, '', false, ABSPATH)) )
- return;
$version = isset( $_POST['version'] )? $_POST['version'] : false;
$locale = isset( $_POST['locale'] )? $_POST['locale'] : 'en_US';
if ( !$update )
return;
- if ( ! WP_Filesystem($credentials, ABSPATH) ) {
- request_filesystem_credentials($url, '', true, ABSPATH); //Failed to connect, Error and request again
- return;
- }
?>
<div class="wrap">
<?php screen_icon('tools'); ?>
<h2><?php _e('Update WordPress'); ?></h2>
<?php
+
+ if ( false === ( $credentials = request_filesystem_credentials( $url, '', false, ABSPATH ) ) ) {
+ echo '</div>';
+ return;
+ }
+
+ if ( ! WP_Filesystem( $credentials, ABSPATH ) ) {
+ // Failed to connect, Error and request again
+ request_filesystem_credentials( $url, '', true, ABSPATH );
+ echo '</div>';
+ return;
+ }
+
if ( $wp_filesystem->errors->get_error_code() ) {
foreach ( $wp_filesystem->errors->get_error_messages() as $message )
show_message($message);
if ( $reinstall )
$update->response = 'reinstall';
- $result = wp_update_core($update, 'show_message');
+ add_filter( 'update_feedback', 'show_message' );
+
+ $upgrader = new Core_Upgrader();
+ $result = $upgrader->upgrade( $update );
if ( is_wp_error($result) ) {
show_message($result);
}
show_message( __('WordPress updated successfully') );
- show_message( '<span class="hide-if-no-js">' . sprintf( __( 'Welcome to WordPress %1$s. You will be redirected to the About WordPress screen. If not, click <a href="%s">here</a>.' ), $result, esc_url( self_admin_url( 'about.php?updated' ) ) ) . '</span>' );
+ show_message( '<span class="hide-if-no-js">' . sprintf( __( 'Welcome to WordPress %1$s. You will be redirected to the About WordPress screen. If not, click <a href="%2$s">here</a>.' ), $result, esc_url( self_admin_url( 'about.php?updated' ) ) ) . '</span>' );
show_message( '<span class="hide-if-js">' . sprintf( __( 'Welcome to WordPress %1$s. <a href="%2$s">Learn more</a>.' ), $result, esc_url( self_admin_url( 'about.php?updated' ) ) ) . '</span>' );
?>
</div>
wp_version_check();
require_once(ABSPATH . 'wp-admin/admin-header.php');
- core_upgrade_preamble();
+ ?>
+ <div class="wrap">
+ <?php screen_icon('tools'); ?>
+ <h2><?php _e('WordPress Updates'); ?></h2>
+ <?php
+ if ( $upgrade_error ) {
+ echo '<div class="error"><p>';
+ if ( $upgrade_error == 'themes' )
+ _e('Please select one or more themes to update.');
+ else
+ _e('Please select one or more plugins to update.');
+ echo '</p></div>';
+ }
+
+ echo '<p>';
+ /* translators: %1 date, %2 time. */
+ printf( __('Last checked on %1$s at %2$s.'), date_i18n( get_option( 'date_format' ) ), date_i18n( get_option( 'time_format' ) ) );
+ echo ' <a class="button" href="' . esc_url( self_admin_url('update-core.php') ) . '">' . __( 'Check Again' ) . '</a>';
+ echo '</p>';
+
+ if ( $core = current_user_can( 'update_core' ) )
+ core_upgrade_preamble();
+ if ( $plugins = current_user_can( 'update_plugins' ) )
+ list_plugin_updates();
+ if ( $themes = current_user_can( 'update_themes' ) )
+ list_theme_updates();
+ if ( $core || $plugins || $themes )
+ list_translation_updates();
+ unset( $core, $plugins, $themes );
+ do_action('core_upgrade_preamble');
+ echo '</div>';
include(ABSPATH . 'wp-admin/admin-footer.php');
} elseif ( 'do-core-upgrade' == $action || 'do-core-reinstall' == $action ) {
+
+ if ( ! current_user_can( 'update_core' ) )
+ wp_die( __( 'You do not have sufficient permissions to update this site.' ) );
+
check_admin_referer('upgrade-core');
// do the (un)dismiss actions before headers,
echo '</div>';
include(ABSPATH . 'wp-admin/admin-footer.php');
+} elseif ( 'do-translation-upgrade' == $action ) {
+
+ if ( ! current_user_can( 'update_core' ) && ! current_user_can( 'update_plugins' ) && ! current_user_can( 'update_themes' ) )
+ wp_die( __( 'You do not have sufficient permissions to update this site.' ) );
+
+ check_admin_referer( 'upgrade-translations' );
+
+ require_once( ABSPATH . 'wp-admin/admin-header.php' );
+ include_once( ABSPATH . 'wp-admin/includes/class-wp-upgrader.php' );
+
+ $url = 'update-core.php?action=do-translation-upgrade';
+ $nonce = 'upgrade-translations';
+ $title = __( 'Update Translations' );
+ $context = WP_LANG_DIR;
+
+ $upgrader = new Language_Pack_Upgrader( new Language_Pack_Upgrader_Skin( compact( 'url', 'nonce', 'title', 'context' ) ) );
+ $result = $upgrader->bulk_upgrade();
+
+ require_once( ABSPATH . 'wp-admin/admin-footer.php' );
+
} else {
do_action('update-core-custom_' . $action);
-}
\ No newline at end of file
+}