protected function update($version, $locale) { $args = $this->input(); $version = isset($args['version']) ? $args['version'] : false; $locale = isset($args['locale']) ? $args['locale'] : get_locale(); include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; delete_site_transient('update_core'); wp_version_check(array(), true); if ($version) { $update = find_core_update($version, $locale); } else { $update = $this->find_latest_update_offer(); } /** * Pre-upgrade action * * @since 3.9.3 * * @param object|array $update as returned by find_core_update() or find_core_auto_update() */ do_action('jetpack_pre_core_upgrade', $update); $skin = new Automatic_Upgrader_Skin(); $upgrader = new Core_Upgrader($skin); $this->new_version = $upgrader->upgrade($update); $this->log = $upgrader->skin->get_upgrade_messages(); if (is_wp_error($this->new_version)) { return $this->new_version; } return $this->new_version; }
/** * Update the WordPress core * * @param array $args */ function update($args) { WP_CLI::line('Updating the WordPress core.'); if (!class_exists('Core_Upgrader')) { require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; } ob_start(); $upgrader = new Core_Upgrader(new CLI_Upgrader_Skin()); $result = $upgrader->upgrade($current); $feedback = ob_get_clean(); // Borrowed verbatim from wp-admin/update-core.php if (is_wp_error($result)) { if ('up_to_date' != $result->get_error_code()) { WP_CLI::error('Installation failed (' . WP_CLI::errorToString($result) . ').'); } else { WP_CLI::success(WP_CLI::errorToString($result)); } } else { WP_CLI::success('WordPress upgraded successfully.'); } }
private function update($version, $locale) { $args = $this->input(); $version = isset($args['version']) ? $args['version'] : false; $locale = isset($args['locale']) ? $args['locale'] : get_locale(); include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; delete_site_transient('update_core'); wp_version_check(array(), true); if ($version) { $update = find_core_update($version, $locale); } else { $update = $this->find_latest_update_offer(); } $skin = new Automatic_Upgrader_Skin(); $upgrader = new Core_Upgrader($skin); $this->new_version = $upgrader->upgrade($update); $this->log = $upgrader->skin->get_upgrade_messages(); if (is_wp_error($this->new_version)) { return $this->new_version; } return $this->new_version; }
/** * Upgrade WordPress core display. * * @since 2.7.0 * * @global WP_Filesystem_Base $wp_filesystem Subclass * * @param bool $reinstall */ function do_core_upgrade($reinstall = false) { global $wp_filesystem; include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; 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'); $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 WordPress'); ?> </h1> <?php if (false === ($credentials = request_filesystem_credentials($url, '', false, ABSPATH, array('version', 'locale'), $allow_relaxed_file_ownership))) { echo '</div>'; return; } if (!WP_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 ($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'; } 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_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="%2$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 }
function upgradeWP() { global $wp_version; $wp_filesystem = $this->getWPFilesystem(); $information = array(); include_once ABSPATH . '/wp-admin/includes/update.php'; include_once ABSPATH . '/wp-admin/includes/class-wp-upgrader.php'; // if (file_exists(ABSPATH . '/wp-admin/includes/deprecated.php')) include_once(ABSPATH . '/wp-admin/includes/deprecated.php'); if (file_exists(ABSPATH . '/wp-admin/includes/screen.php')) { include_once ABSPATH . '/wp-admin/includes/screen.php'; } if (file_exists(ABSPATH . '/wp-admin/includes/template.php')) { include_once ABSPATH . '/wp-admin/includes/template.php'; } include_once ABSPATH . '/wp-admin/includes/file.php'; include_once ABSPATH . '/wp-admin/includes/misc.php'; if (null !== $this->filterFunction) { add_filter('pre_site_transient_update_core', $this->filterFunction, 99); } if (null !== $this->filterFunction) { add_filter('pre_transient_update_core', $this->filterFunction, 99); } //Check for new versions @wp_version_check(); $core_updates = get_core_updates(); if (count($core_updates) > 0) { foreach ($core_updates as $core_update) { if ('latest' === $core_update->response) { $information['upgrade'] = 'SUCCESS'; } else { if ('upgrade' === $core_update->response && $core_update->locale === get_locale() && version_compare($wp_version, $core_update->current, '<=')) { //Upgrade! $upgrade = false; if (class_exists('Core_Upgrader')) { $core = new Core_Upgrader(); $upgrade = $core->upgrade($core_update); } //If this does not work - add code from /wp-admin/includes/class-wp-upgrader.php in the newer versions //So users can upgrade older versions too. //3rd option: 'wp_update_core' if (!is_wp_error($upgrade)) { $information['upgrade'] = 'SUCCESS'; } else { $information['upgrade'] = 'WPERROR'; } break; } } } if (!isset($information['upgrade'])) { foreach ($core_updates as $core_update) { if ('upgrade' === $core_update->response && version_compare($wp_version, $core_update->current, '<=')) { //Upgrade! $upgrade = false; if (class_exists('Core_Upgrader')) { $core = new Core_Upgrader(); $upgrade = $core->upgrade($core_update); } //If this does not work - add code from /wp-admin/includes/class-wp-upgrader.php in the newer versions //So users can upgrade older versions too. //3rd option: 'wp_update_core' if (!is_wp_error($upgrade)) { $information['upgrade'] = 'SUCCESS'; } else { $information['upgrade'] = 'WPERROR'; } break; } } } } else { $information['upgrade'] = 'NORESPONSE'; } if (null !== $this->filterFunction) { remove_filter('pre_site_transient_update_core', $this->filterFunction, 99); } if (null !== $this->filterFunction) { remove_filter('pre_transient_update_core', $this->filterFunction, 99); } MainWP_Helper::write($information); }
/** * 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'); } }
public function do_core_upgrade($params) { $required_fields = array('upgrade_id', 'locale', 'version'); $errors = array(); foreach ($required_fields as $field) { if (!isset($params[$field])) { $errors[] = "The '{$field}' field is missing."; } } if (empty($errors)) { require_once $GLOBALS['ithemes_updater_path'] . '/functions.php'; $updates = Ithemes_Sync_Functions::get_update_details(array('verbose' => true, 'force_refresh' => array('core'))); if (empty($updates['core'])) { $errors[] = 'No core updates are currently available.'; } else { if (empty($updates['core'][$params['upgrade_id']])) { $errors[] = 'Unable to find an availble upgrade matching the requested upgrade_id.'; } else { if ($params['locale'] != $updates['core'][$params['upgrade_id']]->locale) { $errors[] = 'The requested upgrade does not match the requested locale.'; } else { if (isset($updates['core'][$params['upgrade_id']]->version) && $params['version'] != $updates['core'][$params['upgrade_id']]->version) { $errors[] = 'The requested upgrade does not match the requested version.'; } else { if (isset($updates['core'][$params['upgrade_id']]->current) && $params['version'] != $updates['core'][$params['upgrade_id']]->current) { $errors[] = 'The requested upgrade does not match the requested version.'; } } } } } } if (!empty($errors)) { return array('errors' => $errors); } Ithemes_Sync_Functions::set_time_limit(300); $original_version = Ithemes_Sync_Functions::get_wordpress_version(); require_once ABSPATH . 'wp-admin/includes/file.php'; require_once ABSPATH . 'wp-admin/includes/update.php'; require_once ABSPATH . 'wp-admin/includes/misc.php'; $upgrader = new Core_Upgrader($this->skin); $result = $upgrader->upgrade($updates['core'][$params['upgrade_id']]); Ithemes_Sync_Functions::refresh_core_updates(); if (is_wp_error($result)) { return array('errors' => array($result->get_error_code() => $result->get_error_message())); } $current_version = Ithemes_Sync_Functions::get_wordpress_version(); $current_updates = Ithemes_Sync_Functions::get_update_details(array('force_refresh' => array('core'))); $current_update_version = false; foreach ($current_updates['core'] as $index => $update) { if (version_compare($update->version, $current_update_version, '>')) { $current_update_version = $update->version; } } $response = array('wordpress_response' => $result, 'original_version' => $original_version, 'current_version' => $current_version, 'current_update_version' => $current_update_version, 'original_update_version' => $updates['core'][$params['upgrade_id']]->version); if (is_multisite()) { // Based on the upgrade action of wp-admin/network/upgrade.php $wp_db_version = Ithemes_Sync_Functions::get_wordpress_db_version(); update_site_option('wpmu_upgrade_site', $wp_db_version); global $wpdb; $blogs = $wpdb->get_results("SELECT * FROM {$wpdb->blogs} WHERE site_id = '{$wpdb->siteid}' AND spam = '0' AND deleted = '0' AND archived = '0'", ARRAY_A); $response['network_upgrade'] = true; foreach ((array) $blogs as $details) { switch_to_blog($details['blog_id']); $siteurl = site_url(); $upgrade_url = admin_url('upgrade.php?step=upgrade_db'); restore_current_blog(); $result = wp_remote_get($upgrade_url, array('timeout' => 120, 'httpversion' => '1.1')); if (is_wp_error($result)) { $response['network_upgrade'] = false; $response['errors'][] = 'Unable to successfully upgrade the network. You may need to visit the network admin dashboard to manually upgrade the network.'; break; } do_action('after_mu_upgrade', $result); do_action('wpmu_upgrade_site', $details['blog_id']); } } if ($current_version == $params['version']) { $response['success'] = true; } return $response; }
private function _update_core($core) { global $wp_filesystem; $status = array('update' => 'core', 'core' => $core, 'oldVersion' => '', 'newVersion' => ''); include ABSPATH . WPINC . '/version.php'; $status['oldVersion'] = $wp_version; if (!current_user_can('update_core')) { $status['error'] = 'updates_permission_denied'; return $status; } include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; wp_version_check(); $locale = get_locale(); $core_update_key = false; $core_update_latest_version = false; $get_core_updates = get_core_updates(); @(include ABSPATH . WPINC . '/version.php'); foreach ($get_core_updates as $k => $core_update) { if (isset($core_update->version) && version_compare($core_update->version, $wp_version, '>') && version_compare($core_update->version, $core_update_latest_version, '>')) { $core_update_latest_version = $core_update->version; $core_update_key = $k; } } if ($core_update_key === false) { $status['error'] = 'no_update_found'; return $status; } $update = $get_core_updates[$core_update_key]; // WP < 3.7 if (!class_exists('Automatic_Upgrader_Skin')) { require_once UPDRAFTPLUS_DIR . '/central/classes/class-automatic-upgrader-skin.php'; } $skin = new Automatic_Upgrader_Skin(); $upgrader = new Core_Upgrader($skin); $result = $upgrader->upgrade($update); $status['messages'] = $upgrader->skin->get_upgrade_messages(); if (is_wp_error($result)) { $status['error'] = $result->get_error_code(); $status['error_message'] = $result->get_error_message(); return $status; } else { if (is_bool($result) && !$result) { $status['error'] = 'unable_to_connect_to_filesystem'; // Pass through the error from WP_Filesystem if one was raised if (is_wp_error($wp_filesystem->errors) && $wp_filesystem->errors->get_error_code()) { $status['error'] = $wp_filesystem->errors->get_error_code(); $status['error_message'] = $wp_filesystem->errors->get_error_message(); } return $status; } elseif (preg_match('/^[0-9]/', $result)) { $status['newVersion'] = $result; return $status; } else { // An unhandled error occured $status['error'] = 'update_failed'; return $status; } } }
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'); } }
/** * This was once used to kick-off the Core Updater. * * Deprecated in favor of instantating a Core_Upgrader instance directly, * and calling the 'upgrade' method. * * @since 2.7.0 * @deprecated 3.7.0 Use Core_Upgrader * @see Core_Upgrader */ function wp_update_core($current, $feedback = '') { _deprecated_function(__FUNCTION__, '3.7.0', 'new Core_Upgrader();'); if (!empty($feedback)) { add_filter('update_feedback', $feedback); } $upgrader = new Core_Upgrader(); return $upgrader->upgrade($current); }
/** * Updates wordpress core to the given version. * * Returns the new version on success, and a Wp_error object on failure * * @param string $version * @return string|object */ function bruteprotect_update_core($version) { $locale = get_locale(); $update = find_core_update($version, $locale); $skin = new Automatic_Upgrader_Skin(); $upgrader = new Core_Upgrader($skin); $results = $upgrader->upgrade($update); return $results; }
function _wprp_upgrade_core() { if (defined('DISALLOW_FILE_MODS') && DISALLOW_FILE_MODS) { return new WP_Error('disallow-file-mods', __("File modification is disabled with the DISALLOW_FILE_MODS constant.", 'wpremote')); } include_once ABSPATH . 'wp-admin/includes/admin.php'; include_once ABSPATH . 'wp-admin/includes/upgrade.php'; include_once ABSPATH . 'wp-includes/update.php'; require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; require_once WPRP_PLUGIN_PATH . 'inc/class-wprp-core-upgrader-skin.php'; // check for filesystem access if (!_wpr_check_filesystem_access()) { return new WP_Error('filesystem-not-writable', __('The filesystem is not writable with the supplied credentials', 'wpremote')); } // force refresh wp_version_check(); $updates = get_core_updates(); if (is_wp_error($updates) || !$updates) { return new WP_Error('no-update-available'); } $update = reset($updates); if (!$update) { return new WP_Error('no-update-available'); } $skin = new WPRP_Core_Upgrader_Skin(); $upgrader = new Core_Upgrader($skin); $result = $upgrader->upgrade($update); if (is_wp_error($result)) { return $result; } global $wp_current_db_version, $wp_db_version; // we have to include version.php so $wp_db_version // will take the version of the updated version of wordpress require ABSPATH . WPINC . '/version.php'; wp_upgrade(); return true; }
public function wp_oracle_get_core_upgrade() { include_once ABSPATH . 'wp-admin/includes/admin.php'; include_once ABSPATH . 'wp-admin/includes/upgrade.php'; require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; require_once ABSPATH . 'wp-admin/includes/update.php'; require_once plugin_dir_path(dirname(__FILE__)) . 'includes/class-wordpress-oracle-core-upgrader-skin.php'; // force refresh wp_version_check(); $updates = get_core_updates(); $update = reset($updates); $skin = new Wordpress_Oracle_Core_Upgrader_Skin(); $upgrader = new Core_Upgrader($skin); $result = $upgrader->upgrade($update, array('allow_relaxed_file_ownership' => true)); if (is_wp_error($result)) { return $result; } global $wp_current_db_version, $wp_db_version; // we have to include version.php so $wp_db_version // will take the version of the updated version of wordpress require ABSPATH . WPINC . '/version.php'; wp_upgrade(); return array('blog' => array('core_version' => $result)); }
function wp_update_core($current, $feedback = '') { if (!empty($feedback)) { add_filter('update_feedback', $feedback); } include ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; $upgrader = new Core_Upgrader(); return $upgrader->upgrade($current); }
/** * Upgrade WordPress core display. * * @since 2.7 * * @return null */ function do_core_upgrade( $reinstall = false ) { global $wp_filesystem; include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; 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'); $version = isset( $_POST['version'] )? $_POST['version'] : false; $locale = isset( $_POST['locale'] )? $_POST['locale'] : 'en_US'; $update = find_core_update( $version, $locale ); if ( !$update ) return; ?> <div class="wrap"> <?php screen_icon('tools'); ?> <h2><?php _e('Update WordPress'); ?></h2> <?php if ( false === ( $credentials = request_filesystem_credentials( $url, '', false, ABSPATH ) ) ) { echo '</div>'; return; } if ( ! WP_Filesystem( $credentials, ABSPATH ) ) { // Failed to connect, Error and request again request_filesystem_credentials( $url, '', true, ABSPATH ); echo '</div>'; return; } 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'; add_filter( 'update_feedback', 'show_message' ); $upgrader = new Core_Upgrader(); $result = $upgrader->upgrade( $update ); 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="%2$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 }
/** * This was once used to kick-off the Core Updater. * * Deprecated in favor of instantating a Core_Upgrader instance directly, * and calling the 'upgrade' method. * * @since 2.7.0 * @deprecated 3.7.0 * @see Core_Upgrader */ function wp_update_core($current, $feedback = '') { _deprecated_function(__FUNCTION__, '3.7', 'new Core_Upgrader();'); if (!empty($feedback)) { add_filter('update_feedback', $feedback); } include ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; $upgrader = new Core_Upgrader(); return $upgrader->upgrade($current); }
/** * [doInstallUpdate description] * @param [type] $update_id [description] * @param [type] $build_url [description] * @param [type] $package_url [description] * @return [type] [description] */ public function doInstallUpdate($update_row) { global $wp_filesystem; /* // Parse Update ID $update_keys = array('type', 'element', 'version', 'locale'); $update_vals = explode( ':', $update_row->update_id ); $update_rule = new wbSiteManager_Params( array_combine(array_intersect_key($update_keys, $update_vals), array_intersect_key($update_vals, $update_keys)) ); if( empty($update_rule->type) ){ $this->out('Invalid Update ID: ' . $update_id); return false; } $this->out('Processing Update ID: '. $update_id); */ // Switch Type $this->out('Processing Update ID: ' . $update_row->update_id); switch ($update_row->type) { case 'core': // Load Update Record $remoteUrl = 'update-core.php?action=do-core-upgrade'; $reinstall = false; if ($update_row->version == $update_row->installed_version) { $reinstall = true; $remoteUrl = 'update-core.php?action=do-core-reinstall'; } $update = find_core_update($update_row->version, $update_row->get('locale', 'en_US')); if (!$update) { $this->out(' - Failed to Load Update'); return false; } if ($reinstall) { $update->response = 'reinstall'; } // Confirm Write Access $allow_relaxed_file_ownership = isset($update->new_files) && !$update->new_files; if (false === ($credentials = request_filesystem_credentials($remoteUrl, '', false, ABSPATH, array('version', 'locale'), $allow_relaxed_file_ownership))) { $this->out(' - Invalid File Permission'); return false; } if (!WP_Filesystem($credentials, ABSPATH, $allow_relaxed_file_ownership)) { $this->out(' - Failed to load File Permissions'); return false; } if ($wp_filesystem->errors->get_error_code()) { foreach ($wp_filesystem->errors->get_error_messages() as $message) { $this->out(' - File Error: ' . $message); } return false; } // Run Update $upgrader_skin = new wbSiteManager_WP_Upgrader_Skin(array(), $this); $upgrader = new Core_Upgrader($upgrader_skin); $result = $upgrader->upgrade($update, array('allow_relaxed_file_ownership' => $allow_relaxed_file_ownership)); $response_html = explode("\n", strip_tags(ob_get_clean())); ob_end_clean(); if (is_wp_error($result)) { if ($result->get_error_data() && is_string($result->get_error_data())) { $message = $result->get_error_message() . ': ' . $result->get_error_data(); } else { $message = $result->get_error_message(); } $this->out(' - Update Error: ' . $message); if ('up_to_date' != $result->get_error_code()) { $this->out(' - Insallation Failed'); } return false; } // Clear Cache set_site_transient('update_core', null); break; case 'plugin': // Install vs Upgrade if ($install) { // Get Plugins API $plugin_api = plugins_api('plugin_information', array('slug' => $update_row->extension_id, 'fields' => array('short_description' => false, 'sections' => false, 'requires' => false, 'rating' => false, 'ratings' => false, 'downloaded' => false, 'last_updated' => false, 'added' => false, 'tags' => false, 'compatibility' => false, 'homepage' => false, 'donate_link' => false))); // Load Plugin Updater $upgrader = new Plugin_Upgrader(new wbSiteManager_Plugin_Upgrader_Skin(array('title' => 'Install Plugin: ' . $update_row->extension_id . ' v' . $update_row->version, 'nonce' => 'install-plugin_' . $update_row->extension_id, 'url' => 'update.php?action=install-plugin&plugin=' . urlencode($update_row->extension_id), 'plugin' => $update_row->extension_id, 'api' => $api), $this)); $upgrader->install($plugin_api->download_link); } else { // Load Plugin Updater $upgrader = new Plugin_Upgrader(new wbSiteManager_Plugin_Upgrader_Skin(array('title' => 'Upgrade Plugin: ' . $update_row->extension_id . ' v' . $update_row->version, 'nonce' => 'upgrade-plugin_' . $update_row->extension_id, 'url' => 'update.php?action=upgrade-plugin&plugin=' . urlencode($update_row->extension_id), 'plugin' => $update_row->extension_id), $this)); $upgrader->upgrade($update_row->extension_id); } // Process Result if (empty($upgrader->result)) { $this->out(' - Installation Failed'); return false; } // Clear Cache // set_site_transient( 'update_core', null ); break; case 'theme': // Install vs Upgrade if ($install) { // Load API $api = themes_api('theme_information', array('slug' => $update_row->extension_id, 'fields' => array('sections' => false, 'tags' => false))); // Load Theme Updater $upgrader = new Theme_Upgrader(new wbSiteManager_Theme_Upgrader_Skin(array('title' => 'Install Theme: ' . $update_row->extension_id, 'nonce' => 'install-theme_' . $update_row->extension_id, 'url' => 'update.php?action=install-theme&theme=' . urlencode($update_row->extension_id), 'theme' => $update_row->extension_id, 'api' => $api), $this)); $upgrader->install($api->download_link); } else { // Load Theme Updater $upgrader = new Theme_Upgrader(new wbSiteManager_Theme_Upgrader_Skin(array('title' => 'Upgrade Theme: ' . $update_row->extension_id, 'nonce' => 'upgrade-theme_' . $update_row->extension_id, 'url' => 'update.php?action=upgrade-theme&theme=' . urlencode($update_row->extension_id), 'theme' => $update_row->extension_id), $this)); $upgrader->upgrade($update_row->extension_id); } // Process Result if (empty($upgrader->result)) { $this->out(' - Installation Failed'); return false; } // Clear Cache // set_site_transient( 'update_core', null ); break; } // Complete $this->out(' - Update Success'); return true; }