本文整理汇总了PHP中Core_Upgrader::should_update_to_version方法的典型用法代码示例。如果您正苦于以下问题:PHP Core_Upgrader::should_update_to_version方法的具体用法?PHP Core_Upgrader::should_update_to_version怎么用?PHP Core_Upgrader::should_update_to_version使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Core_Upgrader
的用法示例。
在下文中一共展示了Core_Upgrader::should_update_to_version方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: should_update
/**
* Tests to see if we can and should update a specific item.
*
* @since 3.7.0
*
* @param string $type The type of update being checked: 'core', 'theme',
* 'plugin', 'translation'.
* @param object $item The update offer.
* @param string $context The filesystem context (a path) against which filesystem
* access and status should be checked.
*/
public function should_update($type, $item, $context)
{
// Used to see if WP_Filesystem is set up to allow unattended updates.
$skin = new Automatic_Upgrader_Skin();
if ($this->is_disabled()) {
return false;
}
// Only relax the filesystem checks when the update doesn't include new files
$allow_relaxed_file_ownership = false;
if ('core' == $type && isset($item->new_files) && !$item->new_files) {
$allow_relaxed_file_ownership = true;
}
// If we can't do an auto core update, we may still be able to email the user.
if (!$skin->request_filesystem_credentials(false, $context, $allow_relaxed_file_ownership) || $this->is_vcs_checkout($context)) {
if ('core' == $type) {
$this->send_core_update_notification_email($item);
}
return false;
}
// Next up, is this an item we can update?
if ('core' == $type) {
$update = Core_Upgrader::should_update_to_version($item->current);
} else {
$update = !empty($item->autoupdate);
}
/**
* Filter whether to automatically update core, a plugin, a theme, or a language.
*
* The dynamic portion of the hook name, `$type`, refers to the type of update
* being checked. Can be 'core', 'theme', 'plugin', or 'translation'.
*
* Generally speaking, plugins, themes, and major core versions are not updated
* by default, while translations and minor and development versions for core
* are updated by default.
*
* See the {@see 'allow_dev_auto_core_updates', {@see 'allow_minor_auto_core_updates'},
* and {@see 'allow_major_auto_core_updates'} filters for a more straightforward way to
* adjust core updates.
*
* @since 3.7.0
*
* @param bool $update Whether to update.
* @param object $item The update offer.
*/
$update = apply_filters('auto_update_' . $type, $update, $item);
if (!$update) {
if ('core' == $type) {
$this->send_core_update_notification_email($item);
}
return false;
}
// If it's a core update, are we actually compatible with its requirements?
if ('core' == $type) {
global $wpdb;
$php_compat = version_compare(phpversion(), $item->php_version, '>=');
if (file_exists(WP_CONTENT_DIR . '/db.php') && empty($wpdb->is_mysql)) {
$mysql_compat = true;
} else {
$mysql_compat = version_compare($wpdb->db_version(), $item->mysql_version, '>=');
}
if (!$php_compat || !$mysql_compat) {
return false;
}
}
return true;
}
示例2: upgrade_screen
function upgrade_screen()
{
$html = ob_get_clean();
if (!$this->check_user_permission() && !$this->can_update_core()) {
$html = preg_replace('~<form[^>]*?>~', '<!--form opening tag removed by BusinessPres-->', $html);
$html = str_replace('</form>', '<!--form closing tag removed by BusinessPres-->', $html);
}
if (!$this->check_user_permission() && (empty($this->aOptions['cap_update']) || !$this->aOptions['cap_update'])) {
$html = preg_replace('~<input[^>]*?type=["\']checkbox["\'][^>]*?>~', '', $html);
$html = preg_replace('~<thead[\\s\\S]*?</thead>~', '', $html);
$html = preg_replace('~<tfoot[\\s\\S]*?</tfoot>~', '', $html);
$html = preg_replace('~<input[^>]*?upgrade-plugins[^>]*?>~', '', $html);
$html = preg_replace('~<input[^>]*?upgrade-themes[^>]*?>~', '', $html);
}
global $wp_version;
$new_html = '';
if (!$this->check_user_permission() && !$this->can_update_core()) {
$new_html .= "<div class='error'><p>" . $this->talk_no_permissions('upgrade WordPress core') . "</p></div>";
}
$new_html .= "<h4>WordPress " . $wp_version . " installed<br />";
global $wp_version;
$sStatus = false;
$iTTL = 0;
$aVersions = $this->cache_core_version_info();
if ($aVersions && isset($aVersions['data']) && count($aVersions['data']) > 0) {
if ($this->get_version_branch() && isset($aVersions['data'][$this->get_version_branch()])) {
$iDate = strtotime($aVersions['data'][$this->get_version_branch()]);
$iTTL = $iDate + 3600 * 24 * 30 * 30;
// the current version is good has time to live set to 30 months
if ($iTTL - time() < 0) {
$sStatus = "Not Secure - Major Upgrade Required";
} else {
if ($iTTL - time() < 3600 * 24 * 30 * 3) {
// if the current version is older than 23 monts, warn the user
$sStatus = "Update Recommended Soon";
} else {
$sStatus = "Secure";
}
}
}
if ($this->get_branch_latest() != $wp_version && strtotime($aVersions['data'][$this->get_branch_latest()]) + 3600 * 24 * 5 < time()) {
$sStatus = "Not Secure - Minor Upgrade Required";
}
}
$new_html .= "Last updated: " . date('j F Y', strtotime($aVersions['data'][$this->get_branch_latest()])) . "<br />";
$new_html .= "Status: " . $sStatus . "<br />";
$iRemaining = floor(($iTTL - time()) / (3600 * 24) / 30);
if ($iRemaining > 0) {
$new_html .= "Projected security updates: " . $iRemaining . " months.";
} else {
$new_html .= "Projected security updates: Negative " . abs($iRemaining) . " months. Expired or expiration imminent.";
}
$new_html .= "</h4>\n";
if (!class_exists('Core_Upgrader')) {
include_once ABSPATH . '/wp-admin/includes/admin.php';
include_once ABSPATH . '/wp-admin/includes/class-wp-upgrader.php';
}
if (class_exists('Core_Upgrader')) {
$new_html .= "<p>Core auto-updates status: ";
$bDisabled = false;
if (class_exists('Core_Upgrader')) {
$objUpdater = new WP_Automatic_Updater();
if ($objUpdater->is_disabled()) {
$new_html .= "disabled";
$bDisabled = true;
}
}
if (!$bDisabled) {
if (Core_Upgrader::should_update_to_version('100.1.2.3')) {
$new_html .= "<strong>Major version updates enabled</strong>";
} else {
if (Core_Upgrader::should_update_to_version(get_bloginfo('version') . '.0.1')) {
$new_html .= "only Minor version updates enabled";
}
}
}
$new_html .= "</p>";
}
$aBlockedUpdates = get_site_option('businesspress_core_update_delay');
$bFound = false;
if ($aBlockedUpdates) {
foreach ($aBlockedUpdates as $key => $value) {
if (stripos($key, '.next.minor') === false) {
$bFound = true;
}
}
}
if ($bFound && $aBlockedUpdates) {
ksort($aBlockedUpdates);
$aBlockedUpdates = array_reverse($aBlockedUpdates);
$new_html .= "<p>Recently blocked updates:</p>";
$new_html .= "<ul>\n";
foreach ($aBlockedUpdates as $key => $value) {
if (stripos($key, '.next.minor') !== false) {
$new_html .= "<li>WP core internal autoupdate check " . human_time_diff(time(), $value) . " ago</li>\n";
continue;
}
$new_html .= "<li><a href='https://codex.wordpress.org/Version_" . $key . "' target='_blank'>" . $key . "</a> " . human_time_diff(time(), $value) . " ago</li>\n";
}
$new_html .= "</ul>\n";
//.........这里部分代码省略.........