do_core_upgrade()
最后更新于:2021-11-26 03:32:20
do_core_upgrade( bool$reinstall=false)Upgrade GeChiUI core display.
参数
- $reinstall
-
(bool) (Optional)
Default value: false
源文件
文件: gc-admin/update-core.php
function do_core_upgrade( $reinstall = false ) {
global $gc_filesystem;
require_once ABSPATH . 'gc-admin/includes/class-gc-upgrader.php';
if ( $reinstall ) {
$url = 'update-core.php?action=do-core-reinstall';
} else {
$url = 'update-core.php?action=do-core-upgrade';
}
$url = gc_nonce_url( $url, 'upgrade-core' );
$version = isset( $_POST['version'] ) ? $_POST['version'] : false;
$locale = isset( $_POST['locale'] ) ? $_POST['locale'] : 'en_US';
$update = find_core_update( $version, $locale );
if ( ! $update ) {
return;
}
// Allow relaxed file ownership writes for User-initiated upgrades when the API specifies
// that it's safe to do so. This only happens when there are no new files to create.
$allow_relaxed_file_ownership = ! $reinstall && isset( $update->new_files ) && ! $update->new_files;
?>
<div class="wrap">
<h1><?php _e( 'Update GeChiUI' ); ?></h1>
<?php
$credentials = request_filesystem_credentials( $url, '', false, ABSPATH, array( 'version', 'locale' ), $allow_relaxed_file_ownership );
if ( false === $credentials ) {
echo '</div>';
return;
}
if ( ! GC_Filesystem( $credentials, ABSPATH, $allow_relaxed_file_ownership ) ) {
// Failed to connect. Error and request again.
request_filesystem_credentials( $url, '', true, ABSPATH, array( 'version', 'locale' ), $allow_relaxed_file_ownership );
echo '</div>';
return;
}
if ( $gc_filesystem->errors->has_errors() ) {
foreach ( $gc_filesystem->errors->get_error_messages() as $message ) {
show_message( $message );
}
echo '</div>';
return;
}
if ( $reinstall ) {
$update->response = 'reinstall';
}
add_filter( 'update_feedback', 'show_message' );
$upgrader = new Core_Upgrader();
$result = $upgrader->upgrade(
$update,
array(
'allow_relaxed_file_ownership' => $allow_relaxed_file_ownership,
)
);
if ( is_gc_error( $result ) ) {
show_message( $result );
if ( 'up_to_date' != $result->get_error_code() && 'locked' != $result->get_error_code() ) {
show_message( __( 'Installation failed.' ) );
}
echo '</div>';
return;
}
show_message( __( 'GeChiUI updated successfully.' ) );
show_message(
'<span class="hide-if-no-js">' . sprintf(
/* translators: 1: GeChiUI version, 2: URL to About screen. */
__( 'Welcome to GeChiUI %1$s. You will be redirected to the About GeChiUI screen. If not, click <a href="https://docs.gechiui.com/functions/do_core_upgrade/%2$s">here</a>.' ),
$result,
esc_url( self_admin_url( 'about.php?updated' ) )
) . '</span>'
);
show_message(
'<span class="hide-if-js">' . sprintf(
/* translators: 1: GeChiUI version, 2: URL to About screen. */
__( 'Welcome to GeChiUI %1$s. <a href="https://docs.gechiui.com/functions/do_core_upgrade/%2$s">Learn more</a>.' ),
$result,
esc_url( self_admin_url( 'about.php?updated' ) )
) . '</span>'
);
?>
</div>
<script type="text/javascript">
window.location = '<?php echo self_admin_url( 'about.php?updated' ); ?>';
</script>
<?php
}