PageRenderTime 43ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/wp-admin/upgrade.php

http://github.com/markjaquith/WordPress
PHP | 157 lines | 114 code | 19 blank | 24 comment | 16 complexity | c10db686db74734e2f88f635e5b34b79 MD5 | raw file
Possible License(s): 0BSD
  1. <?php
  2. /**
  3. * Upgrade WordPress Page.
  4. *
  5. * @package WordPress
  6. * @subpackage Administration
  7. */
  8. /**
  9. * We are upgrading WordPress.
  10. *
  11. * @since 1.5.1
  12. * @var bool
  13. */
  14. define( 'WP_INSTALLING', true );
  15. /** Load WordPress Bootstrap */
  16. require dirname( __DIR__ ) . '/wp-load.php';
  17. nocache_headers();
  18. require_once ABSPATH . 'wp-admin/includes/upgrade.php';
  19. delete_site_transient( 'update_core' );
  20. if ( isset( $_GET['step'] ) ) {
  21. $step = $_GET['step'];
  22. } else {
  23. $step = 0;
  24. }
  25. // Do it. No output.
  26. if ( 'upgrade_db' === $step ) {
  27. wp_upgrade();
  28. die( '0' );
  29. }
  30. /**
  31. * @global string $wp_version The WordPress version string.
  32. * @global string $required_php_version The required PHP version string.
  33. * @global string $required_mysql_version The required MySQL version string.
  34. */
  35. global $wp_version, $required_php_version, $required_mysql_version;
  36. $step = (int) $step;
  37. $php_version = phpversion();
  38. $mysql_version = $wpdb->db_version();
  39. $php_compat = version_compare( $php_version, $required_php_version, '>=' );
  40. if ( file_exists( WP_CONTENT_DIR . '/db.php' ) && empty( $wpdb->is_mysql ) ) {
  41. $mysql_compat = true;
  42. } else {
  43. $mysql_compat = version_compare( $mysql_version, $required_mysql_version, '>=' );
  44. }
  45. header( 'Content-Type: ' . get_option( 'html_type' ) . '; charset=' . get_option( 'blog_charset' ) );
  46. ?>
  47. <!DOCTYPE html>
  48. <html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
  49. <head>
  50. <meta name="viewport" content="width=device-width" />
  51. <meta http-equiv="Content-Type" content="<?php bloginfo( 'html_type' ); ?>; charset=<?php echo get_option( 'blog_charset' ); ?>" />
  52. <meta name="robots" content="noindex,nofollow" />
  53. <title><?php _e( 'WordPress &rsaquo; Update' ); ?></title>
  54. <?php wp_admin_css( 'install', true ); ?>
  55. </head>
  56. <body class="wp-core-ui">
  57. <p id="logo"><a href="<?php echo esc_url( __( 'https://wordpress.org/' ) ); ?>"><?php _e( 'WordPress' ); ?></a></p>
  58. <?php if ( get_option( 'db_version' ) == $wp_db_version || ! is_blog_installed() ) : ?>
  59. <h1><?php _e( 'No Update Required' ); ?></h1>
  60. <p><?php _e( 'Your WordPress database is already up to date!' ); ?></p>
  61. <p class="step"><a class="button button-large" href="<?php echo get_option( 'home' ); ?>/"><?php _e( 'Continue' ); ?></a></p>
  62. <?php
  63. elseif ( ! $php_compat || ! $mysql_compat ) :
  64. $version_url = sprintf(
  65. /* translators: %s: WordPress version. */
  66. esc_url( __( 'https://wordpress.org/support/wordpress-version/version-%s/' ) ),
  67. sanitize_title( $wp_version )
  68. );
  69. /* translators: %s: URL to Update PHP page. */
  70. $php_update_message = '</p><p>' . sprintf( __( '<a href="%s">Learn more about updating PHP</a>.' ), esc_url( wp_get_update_php_url() ) );
  71. $annotation = wp_get_update_php_annotation();
  72. if ( $annotation ) {
  73. $php_update_message .= '</p><p><em>' . $annotation . '</em>';
  74. }
  75. if ( ! $mysql_compat && ! $php_compat ) {
  76. $message = sprintf(
  77. /* translators: 1: URL to WordPress release notes, 2: WordPress version number, 3: Minimum required PHP version number, 4: Minimum required MySQL version number, 5: Current PHP version number, 6: Current MySQL version number. */
  78. __( 'You cannot update because <a href="%1$s">WordPress %2$s</a> requires PHP version %3$s or higher and MySQL version %4$s or higher. You are running PHP version %5$s and MySQL version %6$s.' ),
  79. $version_url,
  80. $wp_version,
  81. $required_php_version,
  82. $required_mysql_version,
  83. $php_version,
  84. $mysql_version
  85. ) . $php_update_message;
  86. } elseif ( ! $php_compat ) {
  87. $message = sprintf(
  88. /* translators: 1: URL to WordPress release notes, 2: WordPress version number, 3: Minimum required PHP version number, 4: Current PHP version number. */
  89. __( 'You cannot update because <a href="%1$s">WordPress %2$s</a> requires PHP version %3$s or higher. You are running version %4$s.' ),
  90. $version_url,
  91. $wp_version,
  92. $required_php_version,
  93. $php_version
  94. ) . $php_update_message;
  95. } elseif ( ! $mysql_compat ) {
  96. $message = sprintf(
  97. /* translators: 1: URL to WordPress release notes, 2: WordPress version number, 3: Minimum required MySQL version number, 4: Current MySQL version number. */
  98. __( 'You cannot update because <a href="%1$s">WordPress %2$s</a> requires MySQL version %3$s or higher. You are running version %4$s.' ),
  99. $version_url,
  100. $wp_version,
  101. $required_mysql_version,
  102. $mysql_version
  103. );
  104. }
  105. echo '<p>' . $message . '</p>';
  106. ?>
  107. <?php
  108. else :
  109. switch ( $step ) :
  110. case 0:
  111. $goback = wp_get_referer();
  112. if ( $goback ) {
  113. $goback = esc_url_raw( $goback );
  114. $goback = urlencode( $goback );
  115. }
  116. ?>
  117. <h1><?php _e( 'Database Update Required' ); ?></h1>
  118. <p><?php _e( 'WordPress has been updated! Before we send you on your way, we have to update your database to the newest version.' ); ?></p>
  119. <p><?php _e( 'The database update process may take a little while, so please be patient.' ); ?></p>
  120. <p class="step"><a class="button button-large button-primary" href="upgrade.php?step=1&amp;backto=<?php echo $goback; ?>"><?php _e( 'Update WordPress Database' ); ?></a></p>
  121. <?php
  122. break;
  123. case 1:
  124. wp_upgrade();
  125. $backto = ! empty( $_GET['backto'] ) ? wp_unslash( urldecode( $_GET['backto'] ) ) : __get_option( 'home' ) . '/';
  126. $backto = esc_url( $backto );
  127. $backto = wp_validate_redirect( $backto, __get_option( 'home' ) . '/' );
  128. ?>
  129. <h1><?php _e( 'Update Complete' ); ?></h1>
  130. <p><?php _e( 'Your WordPress database has been successfully updated!' ); ?></p>
  131. <p class="step"><a class="button button-large" href="<?php echo $backto; ?>"><?php _e( 'Continue' ); ?></a></p>
  132. <?php
  133. break;
  134. endswitch;
  135. endif;
  136. ?>
  137. </body>
  138. </html>