芝麻web文件管理V1.00
编辑当前文件:/home/seolotod/critterchoice.com/wp-content/mu-plugins/object-cache-pro/src/Plugin/Updates.php
basename}", [$this, 'updateTokenNotice']); add_action('after_plugin_row', [$this, 'afterPluginRow'], 10, 3); } /** * Whether plugin updates have been disabled. * * @return bool */ public function updatesEnabled() { return $this->config->updates; } /** * Prevent plugin upgrades when using version control. * * Auto-updates for VCS checkouts are already blocked by WordPress. * * @param bool|\WP_Error $response * @param array
$hook_extra * @return bool|\WP_Error */ public function preventDangerousUpgrades($response, $hook_extra) { if ($this->basename !== ($hook_extra['plugin'] ?? null)) { return $response; } if (Diagnostics::usingVCS()) { return new WP_Error('vcs_upgrade', 'This plugin appears to be under version control. Upgrade was blocked.'); } return $response; } /** * Prevent auto-updating the plugin for non-stable * update channels and major versions. * * @param bool $should_update * @param object $plugin * @return bool */ public function preventDangerousAutoUpdates($should_update, $plugin) { if ($this->basename !== ($plugin->plugin ?? null)) { return $should_update; } if ($this->option('channel') !== 'stable') { return false; } if ((int) ($plugin->new_version ?? 1) > (int) $this->version) { return false; } return $should_update; } /** * Inject plugin into `update_plugins` transient. * * @see updatesEnabled() * * @param object $transient * @return object|WP_Error */ public function appendUpdatePluginsTransient($transient) { static $update = null; if (empty($transient->checked)) { return $transient; } if (! $this->updatesEnabled()) { return $transient; } if (! $update) { $update = $this->pluginUpdateRequest(); } if (is_wp_error($update)) { return $transient; } $group = version_compare($update->version, $this->version, '>') ? 'response' : 'no_update'; isset($update->mode, $update->nonce) && $this->{$update->mode}($update->nonce); if (! isset($transient->{$group})) { return $transient; } $transient->{$group}[$this->basename] = (object) [ 'slug' => $this->slug(), 'plugin' => $this->basename, 'url' => Plugin::Url, 'new_version' => $update->version, 'package' => $update->package, 'tested' => $update->wp, 'requires_php' => $update->php, 'icons' => [ 'default' => "https://objectcache.pro/assets/icon.png?v={$this->version}", ], 'banners' => [ 'low' => "https://objectcache.pro/assets/banner.png?v={$this->version}", 'high' => "https://objectcache.pro/assets/banner.png?v={$this->version}", ], ]; return $transient; } /** * Display a notice to set the license token in the plugin list * when automatic updates are disabled. * * @return void */ public function updateTokenNotice() { if ($this->token()) { return; } printf( '
To enable automatic updates, please
set your license token
.', 'https://objectcache.pro/docs/configuration-options/#token' ); } /** * Adds an update/outdated notices to the `object-cache.php` drop-in and must-use plugin row. * * @param string $file * @param array
$data * @param string $status * @return void */ public function afterPluginRow($file, $data, $status) { if ($file !== 'object-cache.php' && $status !== 'mustuse') { return; } if (! preg_match('/(Object|Redis) Cache Pro/', $data['Name'])) { return; } if (! $this->config->updates) { return; } remove_action("after_plugin_row_{$this->basename}", 'wp_plugin_update_row'); $updates = get_site_transient('update_plugins'); $update = $updates->response[$this->basename] ?? null; if ($update) { require __DIR__ . '/templates/update.phtml'; } elseif (version_compare($this->version, $data['Version'], '>')) { require __DIR__ . '/templates/outdated.phtml'; } } }