WP hooks navigation: Home/browse • Actions index • Filters index
To save our bandwidth, we show only a snippet of code around each occurence of the hook. View complete file in SVN (without highlighting).
The best way to understand what a hook does is to look at where it occurs in the source code.
do_action( "hook_name" )apply_filters( "hook_name", "what_to_filter" ).Remember, this hook may occur in more than one file. Moreover, the hook's context may change from version to version.
This hook occurs 6 times in this file.
| Line | Code |
|---|---|
| 887 | * 2. Before Maintenance Mode is enabled. |
| 888 | * 3. Before WordPress begins copying over the necessary files. |
| 889 | * 4. Before Maintenance Mode is disabled. |
| 890 | * 5. Before the database is upgraded. |
| 891 | * |
| 892 | * @since 2.5.0 |
| 893 | * |
| 894 | * @param string $feedback The core update feedback messages. |
| 895 | */ |
| 896 | apply_filters( 'update_feedback', __( 'Verifying the unpacked files…' ) ); |
| 897 | |
| 898 | // Sanity check the unzipped distribution. |
| 899 | $distro = ''; |
| 900 | $roots = array( '/wordpress/', '/wordpress-mu/' ); |
| 901 | foreach ( $roots as $root ) { |
| 902 | if ( $wp_filesystem->exists( $from . $root . 'readme.html' ) && $wp_filesystem->exists( $from . $root . 'wp-includes/version.php' ) ) { |
| 903 | $distro = $root; |
| 904 | break; |
| 905 | } |
| Line | Code |
| 941 | |
| 942 | if ( !$mysql_compat && !$php_compat ) |
| 943 | 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 ) ); |
| 944 | elseif ( !$php_compat ) |
| 945 | 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 ) ); |
| 946 | elseif ( !$mysql_compat ) |
| 947 | 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 ) ); |
| 948 | |
| 949 | /** This filter is documented in wp-admin/includes/update-core.php */ |
| 950 | apply_filters( 'update_feedback', __( 'Preparing to install the latest version…' ) ); |
| 951 | |
| 952 | // Don't copy wp-content, we'll deal with that below |
| 953 | // We also copy version.php last so failed updates report their old version |
| 954 | $skip = array( 'wp-content', 'wp-includes/version.php' ); |
| 955 | $check_is_writable = array(); |
| 956 | |
| 957 | // Check to see which files don't really need updating - only available for 3.7 and higher |
| 958 | if ( function_exists( 'get_core_checksums' ) ) { |
| 959 | // Find the local version of the working directory |
| Line | Code |
| 995 | // Store package-relative paths (the key) of non-writable files in the WP_Error object. |
| 996 | $error_data = version_compare( $old_wp_version, '3.7-beta2', '>' ) ? array_keys( $files_not_writable ) : ''; |
| 997 | |
| 998 | if ( $files_not_writable ) |
| 999 | 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 ) ); |
| 1000 | } |
| 1001 | } |
| 1002 | |
| 1003 | /** This filter is documented in wp-admin/includes/update-core.php */ |
| 1004 | apply_filters( 'update_feedback', __( 'Enabling Maintenance mode…' ) ); |
| 1005 | // Create maintenance file to signal that we are upgrading |
| 1006 | $maintenance_string = '<?php $upgrading = ' . time() . '; ?>'; |
| 1007 | $maintenance_file = $to . '.maintenance'; |
| 1008 | $wp_filesystem->delete($maintenance_file); |
| 1009 | $wp_filesystem->put_contents($maintenance_file, $maintenance_string, FS_CHMOD_FILE); |
| 1010 | |
| 1011 | /** This filter is documented in wp-admin/includes/update-core.php */ |
| 1012 | apply_filters( 'update_feedback', __( 'Copying the required files…' ) ); |
| 1013 | // Copy new versions of WP files into place. |
| 1014 | $result = _copy_dir( $from . $distro, $to, $skip ); |
| 1015 | if ( is_wp_error( $result ) ) |
| 1016 | $result = new WP_Error( $result->get_error_code(), $result->get_error_message(), substr( $result->get_error_data(), strlen( $to ) ) ); |
| 1017 | |
| 1018 | // Since we know the core files have copied over, we can now copy the version file |
| 1019 | if ( ! is_wp_error( $result ) ) { |
| 1020 | if ( ! $wp_filesystem->copy( $from . $distro . 'wp-includes/version.php', $to . 'wp-includes/version.php', true /* overwrite */ ) ) { |
| 1021 | $wp_filesystem->delete( $from, true ); |
| Line | Code |
| 1082 | if ( $wp_lang_dir ) { |
| 1083 | $result = copy_dir($from . $distro . 'wp-content/languages/', $wp_lang_dir); |
| 1084 | if ( is_wp_error( $result ) ) |
| 1085 | $result = new WP_Error( $result->get_error_code() . '_languages', $result->get_error_message(), substr( $result->get_error_data(), strlen( $wp_lang_dir ) ) ); |
| 1086 | } |
| 1087 | } |
| 1088 | } |
| 1089 | |
| 1090 | /** This filter is documented in wp-admin/includes/update-core.php */ |
| 1091 | apply_filters( 'update_feedback', __( 'Disabling Maintenance mode…' ) ); |
| 1092 | // Remove maintenance file, we're done with potential site-breaking changes |
| 1093 | $wp_filesystem->delete( $maintenance_file ); |
| 1094 | |
| 1095 | // 3.5 -> 3.5+ - an empty twentytwelve directory was created upon upgrade to 3.5 for some users, preventing installation of Twenty Twelve. |
| 1096 | if ( '3.5' == $old_wp_version ) { |
| 1097 | if ( is_dir( WP_CONTENT_DIR . '/themes/twentytwelve' ) && ! file_exists( WP_CONTENT_DIR . '/themes/twentytwelve/style.css' ) ) { |
| 1098 | $wp_filesystem->delete( $wp_filesystem->wp_themes_dir() . 'twentytwelve/' ); |
| 1099 | } |
| 1100 | } |
| Line | Code |
| 1164 | |
| 1165 | // Remove any Genericons example.html's from the filesystem |
| 1166 | _upgrade_422_remove_genericons(); |
| 1167 | |
| 1168 | // Remove the REST API plugin if its version is Beta 4 or lower |
| 1169 | _upgrade_440_force_deactivate_incompatible_plugins(); |
| 1170 | |
| 1171 | // Upgrade DB with separate request |
| 1172 | /** This filter is documented in wp-admin/includes/update-core.php */ |
| 1173 | apply_filters( 'update_feedback', __( 'Upgrading database…' ) ); |
| 1174 | $db_upgrade_url = admin_url('upgrade.php?step=upgrade_db'); |
| 1175 | wp_remote_post($db_upgrade_url, array('timeout' => 60)); |
| 1176 | |
| 1177 | // Clear the cache to prevent an update_option() from saving a stale db_version to the cache |
| 1178 | wp_cache_flush(); |
| 1179 | // (Not all cache back ends listen to 'flush') |
| 1180 | wp_cache_delete( 'alloptions', 'options' ); |
| 1181 | |
| 1182 | // Remove working directory |