Menu Adam R Brown

WP hooks navigation: Home/browseActions indexFilters index

Source View: update_feedback

To save our bandwidth, we show only a snippet of code around each occurence of the hook. View complete file in SVN (without highlighting).

Understanding Source Code

The best way to understand what a hook does is to look at where it occurs in the source code.

Remember, this hook may occur in more than one file. Moreover, the hook's context may change from version to version.

Source View

This hook occurs 6 times in this file.

Line Code
679  * @param string $to Path to old WordPress installation.
680  * @return WP_Error|null WP_Error on failure, null on success.
681  */
682 function update_core($from, $to) {
683      global $wp_filesystem, $_old_files, $_new_bundled_files, $wpdb;
684
685      @set_time_limit( 300 );
686
687      // Sanity check the unzipped distribution
688      apply_filters( 'update_feedback', __('Verifying the unpacked files…') );
689      $distro = '';
690      $roots = array( '/wordpress/', '/wordpress-mu/' );
691      foreach ( $roots as $root ) {
692           if ( $wp_filesystem->exists( $from . $root . 'readme.html' ) && $wp_filesystem->exists( $from . $root . 'wp-includes/version.php' ) ) {
693                $distro = $root;
694                break;
695           }
696      }
697      if ( ! $distro ) {
 
Line Code
725           $wp_filesystem->delete($from, true);
726
727      if ( !$mysql_compat && !$php_compat )
728           return new WP_Error( 'php_mysql_not_compatible', sprintf( __('The update cannot be installed because WordPress %1$s requires PHP version %2$s or higher and MySQL version %3$s or higher. You are running PHP version %4$s and MySQL version %5$s.'), $wp_version, $required_php_version, $required_mysql_version, $php_version, $mysql_version ) );
729      elseif ( !$php_compat )
730           return new WP_Error( 'php_not_compatible', sprintf( __('The update cannot be installed because WordPress %1$s requires PHP version %2$s or higher. You are running version %3$s.'), $wp_version, $required_php_version, $php_version ) );
731      elseif ( !$mysql_compat )
732           return new WP_Error( 'mysql_not_compatible', sprintf( __('The update cannot be installed because WordPress %1$s requires MySQL version %2$s or higher. You are running version %3$s.'), $wp_version, $required_mysql_version, $mysql_version ) );
733
734      apply_filters( 'update_feedback', __( 'Preparing to install the latest version…' ) );
735
736      // Don't copy wp-content, we'll deal with that below
737      $skip = array( 'wp-content' );
738      $check_is_writable = array();
739
740      // Check to see which files don't really need updating - only available for 3.7 and higher
741      if ( function_exists( 'get_core_checksums' ) ) {
742           // Find the local version of the working directory
743           $working_dir_local = WP_CONTENT_DIR . '/upgrade/' . basename( $from ) . $distro;
 
Line Code
775
776                // Store package-relative paths (the key) of non-writable files in the WP_Error object.
777                $error_data = version_compare( $old_wp_version, '3.7-beta2', '>' ) ? array_keys( $files_not_writable ) : '';
778
779                if ( $files_not_writable )
780                     return new WP_Error( 'files_not_writable', __( 'The update cannot be installed because we will be unable to copy some files. This is usually due to inconsistent file permissions.' ), implode( ', ', $error_data ) );
781           }
782      }
783
784      apply_filters( 'update_feedback', __( 'Enabling Maintenance mode…' ) );
785      // Create maintenance file to signal that we are upgrading
786      $maintenance_string = '<?php $upgrading = ' . time() . '; ?>';
787      $maintenance_file = $to . '.maintenance';
788      $wp_filesystem->delete($maintenance_file);
789      $wp_filesystem->put_contents($maintenance_file, $maintenance_string, FS_CHMOD_FILE);
790
791      apply_filters( 'update_feedback', __( 'Copying the required files&#8230;' ) );
792      // Copy new versions of WP files into place.
793      $result = _copy_dir( $from . $distro, $to, $skip );
794      if ( is_wp_error( $result ) )
795           $result = new WP_Error( $result->get_error_code(), $result->get_error_message(), substr( $result->get_error_data(), strlen( $to ) ) );
796
797      // Check to make sure everything copied correctly, ignoring the contents of wp-content
798      $skip = array( 'wp-content' );
799      $failed = array();
800      if ( isset( $checksums ) && is_array( $checksums ) ) {
 
Line Code
847                $wp_lang_dir = $wp_filesystem->find_folder($lang_dir);
848                if ( $wp_lang_dir ) {
849                     $result = copy_dir($from . $distro . 'wp-content/languages/', $wp_lang_dir);
850                     if ( is_wp_error( $result ) )
851                          $result = new WP_Error( $result->get_error_code() . '_languages', $result->get_error_message(), substr( $result->get_error_data(), strlen( $wp_lang_dir ) ) );
852                }
853           }
854      }
855
856      apply_filters( 'update_feedback', __( 'Disabling Maintenance mode&#8230;' ) );
857      // Remove maintenance file, we're done with potential site-breaking changes
858      $wp_filesystem->delete( $maintenance_file );
859
860      // 3.5 -> 3.5+ - an empty twentytwelve directory was created upon upgrade to 3.5 for some users, preventing installation of Twenty Twelve.
861      if ( '3.5' == $old_wp_version ) {
862           if ( is_dir( WP_CONTENT_DIR . '/themes/twentytwelve' ) && ! file_exists( WP_CONTENT_DIR . '/themes/twentytwelve/style.css' )  ) {
863                $wp_filesystem->delete( $wp_filesystem->wp_themes_dir() . 'twentytwelve/' );
864           }
865      }
 
Line Code
918      // Remove old files
919      foreach ( $_old_files as $old_file ) {
920           $old_file = $to . $old_file;
921           if ( !$wp_filesystem->exists($old_file) )
922                continue;
923           $wp_filesystem->delete($old_file, true);
924      }
925
926      // Upgrade DB with separate request
927      apply_filters('update_feedback', __('Upgrading database&#8230;'));
928      $db_upgrade_url = admin_url('upgrade.php?step=upgrade_db');
929      wp_remote_post($db_upgrade_url, array('timeout' => 60));
930
931      // Clear the cache to prevent an update_option() from saving a stale db_version to the cache
932      wp_cache_flush();
933      // (Not all cache backends listen to 'flush')
934      wp_cache_delete( 'alloptions', 'options' );
935
936      // Remove working directory