'; // Check for options that also disable force updates $options = MPSUM_Updates_Manager::get_options('core'); // Show a notice if all updates are disabled if (isset($options['all_updates']) && 'off' == $options['all_updates']) { printf('
%s
', esc_html__('All updates are disabled.', 'stops-core-theme-and-plugin-updates').' '.esc_html__('Please re-enable all updates for force updates to work.', 'stops-core-theme-and-plugin-updates')); } // Show a notice if automatic updates are off if (!MPSUM_Utils::get_instance()->is_automatic_updates_enabled()) { printf('
%s
', esc_html__('Automatic updates are off, so Force updates will not work.', 'stops-core-theme-and-plugin-updates')); } // Show a warning if delay updates is above zero if (isset($options['delay_updates']) && $options['delay_updates'] > 0) { printf('
%s
', esc_html__('Delayed updates are on, so some assets may not be updated automatically.', 'stops-core-theme-and-plugin-updates')); } // Begin output printf('

%s

', esc_html__('Force automatic updates', 'stops-core-theme-and-plugin-updates')); printf('
%s
', esc_html__('Force updates will request automatic updates of your plugins, core, themes, and translations immediately.', 'stops-core-theme-and-plugin-updates').' '.esc_html__('This is useful for debugging and checking that automatic updates are working as intended.', 'stops-core-theme-and-plugin-updates').' '.esc_html__('By default, WordPress checks for updates every 12 hours.', 'stops-core-theme-and-plugin-updates').' '.esc_html__('Running force updates will, if successful, cause updates to happen immediately.', 'stops-core-theme-and-plugin-updates')); $updates = array(); if (current_user_can('update_core')) $updates[] = __('core', 'stops-core-theme-and-plugin-updates'); if (current_user_can('update_plugins')) $updates[] = __('plugin', 'stops-core-theme-and-plugin-updates'); if (current_user_can('update_themes')) $updates[] = __('theme', 'stops-core-theme-and-plugin-updates'); if (current_user_can('update_themes') || current_user_can('update_plugins')) $updates[] = __('translation', 'stops-core-theme-and-plugin-updates'); if (!$updates) { printf('
%s
', esc_html__("You don't have sufficient user capabilities to force automatic updates.", 'stops-core-theme-and-plugin-updates')); } else { $allowed_entities = ''; $delimiter = ''; foreach ($updates as $i => $update) { $allowed_entities .= $delimiter.($allowed_entities ? ' ' : '').$update; $delimiter = ','; if ($allowed_entities && count($updates)-1 == $i+1) $delimiter = ' '.__('and', 'stops-core-theme-and-plugin-updates'); } /* Translators: %s: Allowed update types. */ if (count($updates) < 4) printf('
%s
', sprintf(esc_html__("You can only force %s automatic updates due to insufficient user capabilities you have for the website.", 'stops-core-theme-and-plugin-updates'), ''.esc_html($allowed_entities).'')); } $utils = MPSUM_Utils::get_instance(); $updraftplus = $utils->is_installed('updraftplus'); if (true === $updraftplus['installed'] && true === $updraftplus['active']) { global $updraftplus_admin; if (is_a($updraftplus_admin, 'UpdraftPlus_Admin') && is_callable(array($updraftplus_admin, 'add_backup_scaffolding'))) { printf('', esc_html__('Take a backup first (with UpdraftPlus)', 'stops-core-theme-and-plugin-updates')); $updraftplus_admin->add_backup_scaffolding(__('Take a backup before update', 'stops-core-theme-and-plugin-updates'), array($updraftplus_admin, 'backupnow_modal_contents')); } } else { if (true === $updraftplus['installed'] && false === $updraftplus['active']) { $can_activate = is_multisite() ? current_user_can('manage_network_plugins') : current_user_can('activate_plugins'); if ($can_activate) { $activate_link = is_multisite() ? network_admin_url('plugins.php?action=activate&plugin='.$updraftplus['name']) : self_admin_url('plugins.php?action=activate&plugin='.$updraftplus['name']); $url = esc_url(wp_nonce_url( $activate_link, 'activate-plugin_'.$updraftplus['name'] )); $url_text = __('Follow this link to activate it.', 'stops-core-theme-and-plugin-updates'); $anchor = "{$url_text}"; } $required_plugin = __('Take a backup with UpdraftPlus before updating.', 'stops-core-theme-and-plugin-updates'); printf('

%s %s

', esc_html($required_plugin), wp_kses($anchor, array('a' => array('href' => array())))); } else { if (current_user_can('install_plugins')) { $url = esc_url(wp_nonce_url( is_multisite() ? network_admin_url('update.php?action=install-plugin&plugin=updraftcentral') : self_admin_url('update.php?action=install-plugin&plugin=updraftplus'), 'install-plugin_updraftplus' )); $url_text = __('Follow this link to install it.', 'stops-core-theme-and-plugin-updates'); $anchor = "{$url_text}"; $required_plugin = __('You can take backups using UpdraftPlus before updating.', 'stops-core-theme-and-plugin-updates'); printf('

%s %s

', esc_html($required_plugin), wp_kses($anchor, array('a' => array('href' => array())))); } } } printf('

', esc_attr__('Force updates', 'stops-core-theme-and-plugin-updates')); echo '';