parent_base, array('plugins', 'duplicator'))) { return; } ?>


%s to %s', 'duplicator'), esc_html("test 1"), esc_html(time())); ?>

General Settings', 'duplicator'), 'admin.php?page=duplicator-settings'); ?>

id == 'duplicator_page_duplicator-tools' && isset($_GET['action']) && $_GET['action'] == 'installer'); if (DUP_Server::hasInstallerFiles() && !$is_installer_cleanup_req) { DUP_Migration::renameInstallersPhpFiles(); $on_active_tab = isset($_GET['section']) ? $_GET['section'] : ''; echo '

'; //Safe Mode Notice $safe_html = ''; if (get_option("duplicator_exe_safe_mode", 0) > 0) { $safe_msg1 = __('Safe Mode:', 'duplicator'); $safe_msg2 = __('During the install safe mode was enabled deactivating all plugins.
Please be sure to ', 'duplicator'); $safe_msg3 = __('re-activate the plugins', 'duplicator'); $safe_html = "

{$safe_msg1}
{$safe_msg2} {$safe_msg3}!

"; } //On Tools > Cleanup Page if ($screen->id == 'duplicator_page_duplicator-tools' && ($on_active_tab == "info" || $on_active_tab == '')) { $title = __('This site has been successfully migrated!', 'duplicator'); $msg1 = __('Final step(s):', 'duplicator'); $msg2 = __('This message will be removed after all installer files are removed. Installer files must be removed to maintain a secure site. ' .'Click the link above or button below to remove all installer files and complete the migration.', 'duplicator'); echo " ".esc_html($title)."
{$safe_html} ".esc_html($msg1)."
"; printf("1. %s
", esc_html__('Remove Installation Files Now!', 'duplicator')); printf("2. %s
", esc_html__('Optionally, Review Duplicator at WordPress.org...', 'duplicator')); echo "
".esc_html($msg2)."
"; //All other Pages } else { $title = __('Migration Almost Complete!', 'duplicator'); $msg = __('Reserved Duplicator installation files have been detected in the root directory. Please delete these installation files to ' .'avoid security issues.
Go to:Duplicator > Tools > Information >Stored Data and click the "Remove Installation Files" button', 'duplicator'); $nonce = wp_create_nonce('duplicator_cleanup_page'); $url = self_admin_url('admin.php?page=duplicator-tools&tab=diagnostics§ion=info&_wpnonce='.$nonce); echo "{$title}
{$safe_html} {$msg}"; @printf("
%s", __('Take me there now!', 'duplicator')); } echo "

"; } } /** * Shows a message for redirecting a page * * @return string The location to redirect to */ public static function redirect($location) { echo '
'; esc_html__('Redirecting Please Wait...', 'duplicator'); echo '
'; echo ""; die(esc_html__('Invalid token permissions to perform this request.', 'duplicator')); } /** * Shows install deactivated function */ public static function installAutoDeactivatePlugins() { $reactivatePluginsAfterInstallation = get_option(self::OPTION_KEY_ACTIVATE_PLUGINS_AFTER_INSTALL, false); if (is_array($reactivatePluginsAfterInstallation)) { $installedPlugins = array_keys(get_plugins()); $shouldBeActivated = array(); foreach ($reactivatePluginsAfterInstallation as $pluginSlug => $pluginTitle) { if (in_array($pluginSlug, $installedPlugins) && !is_plugin_active($pluginSlug)) { $shouldBeActivated[$pluginSlug] = $pluginTitle; } } if (empty($shouldBeActivated)) { delete_option(self::OPTION_KEY_ACTIVATE_PLUGINS_AFTER_INSTALL); } else { $activatePluginsAnchors = array(); foreach ($shouldBeActivated as $slug => $title) { $activateURL = wp_nonce_url(admin_url('plugins.php?action=activate&plugin='.$slug), 'activate-plugin_'.$slug); $anchorTitle = sprintf(esc_html__('Activate %s', 'duplicator'), $title); $activatePluginsAnchors[] = ''. $title.''; } ?>

".esc_html__("Warning!", "duplicator")." ".esc_html__("Migration Almost Complete!", "duplicator")."
"; echo esc_html__("Plugin(s) listed here have been deactivated during installation to help prevent issues. Please activate them to finish this migration: ", "duplicator")."
"; echo implode(' ,', $activatePluginsAnchors); ?>

id, $duplicator_pages) || (isset($notices[$notice_id]) && 'true' === $notices[$notice_id])) { return; } // not using DUP_Util::getTablePrefix() in place of $tablePrefix because DUP_UI_Notice included initially (Duplicator\Lite\Requirement is depended on the DUP_UI_Notice) $tablePrefix = (is_multisite() && is_plugin_active_for_network('duplicator/duplicator.php')) ? $GLOBALS['wpdb']->base_prefix : $GLOBALS['wpdb']->prefix; $packagesCount = $GLOBALS['wpdb']->get_var('SELECT count(id) FROM '.$tablePrefix.'duplicator_packages WHERE status=100'); if ($packagesCount < DUPLICATOR_FEEDBACK_NOTICE_SHOW_AFTER_NO_PACKAGE) { return; } $notices[$notice_id] = 'false'; update_user_meta(get_current_user_id(), DUPLICATOR_ADMIN_NOTICES_USER_META_KEY, $notices); $dismiss_url = wp_nonce_url( add_query_arg(array( 'action' => 'duplicator_set_admin_notice_viewed', 'notice_id' => esc_attr($notice_id), ), admin_url('admin-post.php')), 'duplicator_set_admin_notice_viewed', 'nonce' ); ?>
" style="text-align:top; margin:0; height:60px; width:60px;" alt="Duplicator">

roles) && !current_user_can('export')) { $errorMessage = __('Duplicator
Your logged-in user role does not have export capability so you don\'t have access to Duplicator functionality.', 'duplicator'). "
". sprintf(__('RECOMMENDATION: Add export capability to your role. See FAQ: %s', 'duplicator'), 'https://snapcreek.com/duplicator/docs/faqs-tech/#faq-licensing-040-q', __('Why is the Duplicator/Packages menu missing from my admin menu?', 'duplicator')); DUP_UI_Notice::displayGeneralAdminNotice($errorMessage, self::GEN_ERROR_NOTICE, true); } } /** * display genral admin notice by printing it * * @param string $htmlMsg html code to be printed * @param integer $noticeType constant value of SELF::GEN_ * @param boolean $isDismissible whether the notice is dismissable or not. Default is true * @param array|string $extraClasses add more classes to the notice div * @return void */ public static function displayGeneralAdminNotice($htmlMsg, $noticeType, $isDismissible = true, $extraClasses = array()) { if (empty($extraClasses)) { $classes = array(); } elseif (is_array($extraClasses)) { $classes = $extraClasses; } else { $classes = array($extraClasses); } $classes[] = 'notice'; switch ($noticeType) { case self::GEN_INFO_NOTICE: $classes[] = 'notice-info'; break; case self::GEN_SUCCESS_NOTICE: $classes[] = 'notice-success'; break; case self::GEN_WARNING_NOTICE: $classes[] = 'notice-warning'; break; case self::GEN_ERROR_NOTICE: $classes[] = 'notice-error'; break; default: throw new Exception('Invalid Admin notice type!'); } if ($isDismissible) { $classes[] = 'is-dismissible'; } $classesStr = implode(' ', $classes); ?>