ruạṛ
<?php namespace DeliciousBrains\WPMDB\Pro\UI; use DeliciousBrains\WPMDB\Common\Filesystem\Filesystem; use DeliciousBrains\WPMDB\Common\FormData\FormData; use DeliciousBrains\WPMDB\Common\Profile\ProfileManager; use DeliciousBrains\WPMDB\Common\Properties\DynamicProperties; use DeliciousBrains\WPMDB\Common\Properties\Properties; use DeliciousBrains\WPMDB\Common\Settings\Settings; use DeliciousBrains\WPMDB\Common\Sql\Table; use DeliciousBrains\WPMDB\Common\UI\Notice; use DeliciousBrains\WPMDB\Common\Util\Util; use DeliciousBrains\WPMDB\Common\Addon\Addon; use DeliciousBrains\WPMDB\Pro\Api; use DeliciousBrains\WPMDB\Pro\Beta\BetaManager; use DeliciousBrains\WPMDB\Pro\License; use DeliciousBrains\WPMDB\Pro\Plugin\ProPluginManager; use DeliciousBrains\WPMDB\WPMDBDI; class Template extends \DeliciousBrains\WPMDB\Common\UI\TemplateBase { /** * @var Notice */ public $notice; /** * @var FormData */ public $form_data; /** * @var DynamicProperties */ public $dynamic_props; /** * @var */ public $addons; /** * @var License */ public $license; /** * @var Addon */ public $addon; /** * @var ProPluginManager */ public $plugin_manager; public function __construct( Settings $settings, Util $util, ProfileManager $profile, Filesystem $filesystem, Table $table, Notice $notice, FormData $form_data, Addon $addon, Properties $properties, ProPluginManager $plugin_manager ) { parent::__construct($settings, $util, $profile, $filesystem, $table, $properties); $this->notice = $notice; $this->form_data = $form_data; $this->dynamic_props = DynamicProperties::getInstance(); $this->addon = $addon; $this->plugin_manager = $plugin_manager; } public function register() { $this->license = WPMDBDI::getInstance()->get(License::class); // templating actions add_filter('wpmdb_notification_strings', [$this, 'notifications']); $accepted_fields = $this->form_data->get_accepted_fields(); $accepted_fields = array_diff($accepted_fields, ['exclude_post_revisions']); $this->form_data->set_accepted_fields($accepted_fields); } function notifications($notifications) { $notice_id = 'outdated_addons_warning'; $notice_links = $this->notice->check_notice($notice_id); if (!$notice_links) { return; } foreach ($this->addon->getAddons() as $addon_basename => $addon) { if (false == $this->addon->is_addon_outdated($addon_basename) || false == is_plugin_active($addon_basename)) { continue; } $update_url = wp_nonce_url(network_admin_url('update.php?action=upgrade-plugin&plugin=' . urlencode($addon_basename)), 'upgrade-plugin_' . $addon_basename); $addon_slug = current(explode('/', $addon_basename)); if (isset($GLOBALS['wpmdb_meta'][$addon_slug]['version'])) { $version = ' (' . $GLOBALS['wpmdb_meta'][$addon_slug]['version'] . ')'; } else { $version = ''; } $installed_version = $GLOBALS['wpmdb_meta'][$this->props->plugin_slug]['version']; $is_core_beta = BetaManager::is_beta_version($installed_version); // Maybe prompt user to disable addons if beta doesn't support them if ($is_core_beta) { $url = add_query_arg(array( 'action' => 'deactivate', 'plugin' => $addon_basename, 'paged' => 1, ), network_admin_url('plugins.php')); $url = add_query_arg('_wpnonce', wp_create_nonce('deactivate-plugin_' . $addon_basename), $url); $msg = '<div><strong>Update Required</strong> — ' . sprintf(__('The version of the %1$s addon you have installed%2$s is out-of-date and will not work with this beta version WP Migrate. There may be a <a href="%3$s">beta update available</a>, otherwise please <a href="%4$s">deactivate this addon</a>.', 'wp-migrate-db'), $addon['name'], $version, $update_url, $url) . '</div>'; } else { $msg = '<div><strong>Update Required</strong> — ' . sprintf(__('The version of the %1$s addon you have installed%2$s is out-of-date and will not work with this version WP Migrate. <a href="%3$s">Update Now</a>', 'wp-migrate-db'), $addon['name'], $version, $update_url) . '</div>'; } // @TODO enable these notifications once Addons are released on 2.0 branch // $notifications[$addon_basename] = [ // 'message' => $msg, // 'link' => false, // 'id' => $addon_basename, // ]; } $secret_key_notice_id = 'secret_key_warning'; $secret_key_links = $this->notice->check_notice($secret_key_notice_id, true, 604800); if (!$secret_key_links) { return $notifications; } // Only show the warning if the key is 32 characters in length if (strlen($this->settings['key']) <= 32) { $notifications[$secret_key_notice_id] = [ 'message' => $this->template_to_string('secret-key-warning', 'pro', $secret_key_links), 'link' => $secret_key_links, 'id' => $secret_key_notice_id, ]; } if (!defined('WP_HTTP_BLOCK_EXTERNAL') || !WP_HTTP_BLOCK_EXTERNAL) { return $notifications; } $notice_id = 'block_external_warning'; $notice_links = $this->notice->check_notice($notice_id, true, 604800); if (!$notice_links) { return $notifications; } $notifications[$notice_id] = [ 'message' => $this->template_to_string('block-external-warning', 'pro', $notice_links), 'link' => $notice_links, 'id' => $notice_id, ]; return $notifications; } }
cải xoăn