forked from LiveCarta/LiveCartaWP
Changed source root directory
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
|
||||
use Duplicator\Utils\ExtraPlugins\ExtraItem;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
* @var ExtraItem $plugin
|
||||
*/
|
||||
|
||||
$plugin = $tplData['plugin'];
|
||||
|
||||
switch ($plugin->getStatus()) {
|
||||
case ExtraItem::STATUS_ACTIVE:
|
||||
$buttonLabel = __('Activated', 'duplicator');
|
||||
$buttonClass = 'disabled';
|
||||
$statusClass = 'status-active';
|
||||
break;
|
||||
case ExtraItem::STATUS_INSTALLED:
|
||||
$buttonLabel = __('Activate', 'duplicator');
|
||||
$buttonClass = 'button-secondary';
|
||||
$statusClass = 'status-installed';
|
||||
break;
|
||||
case ExtraItem::STATUS_NOT_INSTALLED:
|
||||
default:
|
||||
$buttonLabel = __('Install Plugin', 'duplicator');
|
||||
$buttonClass = 'button-primary';
|
||||
$statusClass = 'status-missing';
|
||||
break;
|
||||
}
|
||||
|
||||
?>
|
||||
<div class="addons-container">
|
||||
<div class="addon-item">
|
||||
<div class="details dup-clearfix">
|
||||
<img src="<?php echo esc_url($plugin->icon); ?>" alt="<?php echo $plugin->name; ?> logo">
|
||||
<h5 class="addon-name">
|
||||
<?php echo $plugin->name; ?>
|
||||
</h5>
|
||||
<p class="addon-desc"><?php echo $plugin->desc; ?></p>
|
||||
</div>
|
||||
<div class="actions dup-clear">
|
||||
<div class="status">
|
||||
<strong><?php _e('Status:', 'duplicator') ?>
|
||||
<span class="status-label <?php echo $statusClass; ?>">
|
||||
<?php echo $plugin->getStatusText(); ?>
|
||||
</span>
|
||||
</strong>
|
||||
</div>
|
||||
<div class="action-button">
|
||||
<?php if ($plugin->getURLType() === ExtraItem::URL_TYPE_GENERIC) { ?>
|
||||
<a href="<?php echo esc_url($plugin->url); ?>"
|
||||
title="<?php echo esc_attr($buttonLabel); ?>"
|
||||
target="_blank" rel="noopener noreferrer"
|
||||
class="button <?php echo $buttonClass; ?>"
|
||||
>
|
||||
<?php echo esc_html($buttonLabel); ?>
|
||||
</a>
|
||||
<?php } else { ?>
|
||||
<button class="button <?php echo $buttonClass; ?> dup-extra-plugin-item" data-plugin="<?php echo $plugin->getSlug();?>">
|
||||
<?php echo esc_html($buttonLabel); ?>
|
||||
</button>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
use Duplicator\Utils\ExtraPlugins\ExtraItem;
|
||||
use Duplicator\Utils\ExtraPlugins\ExtraPluginsMng;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || die();
|
||||
|
||||
if (!current_user_can('install_plugins')) {
|
||||
return;
|
||||
}
|
||||
?>
|
||||
<div id="dup-admin-addons">
|
||||
<div id="dup-admin-addons-list">
|
||||
<div class="list">
|
||||
<?php
|
||||
ExtraPluginsMng::getInstance()->foreachCallback(function (ExtraItem $plugin) use ($tplMng) {
|
||||
$tplMng->render(
|
||||
'admin_pages/about_us/about_us/extra_plugin_item',
|
||||
array('plugin' => $plugin->skipLite() ? $plugin->getPro() : $plugin)
|
||||
);
|
||||
});
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,55 @@
|
||||
<div class="dup-admin-about-section dup-admin-columns">
|
||||
<div class="dup-admin-column-60">
|
||||
<h3>
|
||||
<?php esc_html_e('Hello and welcome to Duplicator, the most reliable WordPress backup and migration plugin. ' .
|
||||
'At Duplicator, we build software that helps protect your website with our reliable secure backups and ' .
|
||||
'migrate your website without any manual effort.', 'duplicator'); ?>
|
||||
</h3>
|
||||
<p>
|
||||
<?php esc_html_e('Over the years, we found that most WordPress backup and migration plugins were unreliable, ' .
|
||||
'buggy, slow, and very hard to use. So we started with a simple goal: build a WordPress backup and migration ' .
|
||||
'plugin that’s both easy and powerful.', 'duplicator'); ?>
|
||||
</p>
|
||||
<p>
|
||||
<?php esc_html_e('Our goal is to take the pain out of creating backups, migrations, and make it easy.', 'duplicator'); ?>
|
||||
</p>
|
||||
<p>
|
||||
<?php
|
||||
printf(
|
||||
wp_kses(
|
||||
/* translators: %1$s - WPBeginner URL; %2$s - OptinMonster URL; %3$s - MonsterInsights URL. */
|
||||
__(
|
||||
'Duplicator is brought to you by the same team that’s behind the largest WordPress resource site, ' .
|
||||
'<a href="%1$s" target="_blank" rel="noopener noreferrer">WPBeginner</a>, the most popular ' .
|
||||
'lead-generation software, <a href="%2$s" target="_blank" rel="noopener noreferrer">OptinMonster</a>, ' .
|
||||
'the best WordPress analytics plugin, <a href="%3$s" target="_blank" rel="noopener noreferrer">MonsterInsights</a>, and more!',
|
||||
'duplicator'
|
||||
),
|
||||
array(
|
||||
'a' => array(
|
||||
'href' => array(),
|
||||
'rel' => array(),
|
||||
'target' => array(),
|
||||
),
|
||||
)
|
||||
),
|
||||
'https://www.wpbeginner.com/?utm_source=duplicatorplugin&utm_medium=pluginaboutpage&utm_campaign=aboutduplicator',
|
||||
'https://optinmonster.com/?utm_source=duplicatorplugin&utm_medium=pluginaboutpage&utm_campaign=aboutduplicator',
|
||||
'https://www.monsterinsights.com/?utm_source=duplicatorplugin&utm_medium=pluginaboutpage&utm_campaign=aboutduplicator'
|
||||
);
|
||||
?>
|
||||
</p>
|
||||
<p>
|
||||
<?php esc_html_e('Yup, we know a thing or two about building awesome products that customers love.', 'duplicator'); ?>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="dup-admin-column-40 dup-admin-column-last">
|
||||
<figure>
|
||||
<img src="<?php echo DUPLICATOR_PLUGIN_URL; ?>assets/img/about/team.jpeg" alt="<?php esc_attr_e('The Awesome Motive Team photo', 'duplicator'); ?>">
|
||||
<figcaption>
|
||||
<?php esc_html_e('The Awesome Motive Team', 'duplicator'); ?><br>
|
||||
</figcaption>
|
||||
</figure>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Template for About Us page
|
||||
*
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
|
||||
<div class="wrap" id="dup-admin-about">
|
||||
<?php
|
||||
$tplMng->render('admin_pages/about_us/about_us/info');
|
||||
$tplMng->render('admin_pages/about_us/about_us/extra_plugins');
|
||||
?>
|
||||
</div>
|
||||
@@ -0,0 +1,72 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Template for First Package section
|
||||
*
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
use Duplicator\Utils\LinkManager;
|
||||
|
||||
defined('ABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
<div class="dup-admin-about-section dup-admin-about-section-first-form" style="display:flex;">
|
||||
|
||||
<div class="dup-admin-about-section-first-form-text">
|
||||
|
||||
<h2><?php _e('Creating Your First Backup', 'duplicator') ?></h2>
|
||||
|
||||
<p>
|
||||
<?php _e('Want to get started creating your first Backup with Duplicator? By following the step by step ' .
|
||||
'instructions in this walkthrough, you can easily create a backup or migration.', 'duplicator') ?>
|
||||
</p>
|
||||
<p>
|
||||
<?php _e('To begin, you’ll need to be logged into the WordPress admin area. Once there, click on Duplicator ' .
|
||||
'in the admin sidebar to go the Backups page.', 'duplicator') ?>
|
||||
</p>
|
||||
<p>
|
||||
<?php _e('In the Backups page, the Backups list will be empty because there are no Backups yet. To create ' .
|
||||
'a new Backup, click on the Create New button, and this will launch the Backup Creation Wizard.', 'duplicator') ?>
|
||||
</p>
|
||||
|
||||
<ul class="list-plain">
|
||||
<li>
|
||||
<a
|
||||
href="<?php echo esc_url(LinkManager::getCategoryUrl(LinkManager::QUICK_START_CAT, 'about-getting_started', 'Quick Start Guide')); ?>"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
<?php _e('Quick Start Guide', 'duplicator'); ?>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
href="<?php echo esc_url(LinkManager::getDocUrl('backup-site', 'about-getting_started', 'Create Backup')); ?>"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
<?php _e('How to Create a Backup', 'duplicator'); ?>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
href="<?php echo esc_url(LinkManager::getDocUrl('classic-install', 'about-getting_started', 'Migrate')); ?>"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
<?php _e('How to Migrate to a New Site', 'duplicator'); ?>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,113 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Template for First Package section
|
||||
*
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
use Duplicator\Utils\LinkManager;
|
||||
use Duplicator\Utils\Upsell;
|
||||
|
||||
defined('ABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
<div class="dup-admin-about-section dup-admin-about-section-hero">
|
||||
|
||||
<div class="dup-admin-about-section-hero-main">
|
||||
<h2>
|
||||
<?php _e('Get Duplicator Pro and Unlock all the Powerful Features', 'duplicator'); ?>
|
||||
</h2>
|
||||
|
||||
<p class="bigger">
|
||||
<?php
|
||||
echo wp_kses(
|
||||
__(
|
||||
'Thanks for being a loyal Duplicator Lite user. <strong>Upgrade to Duplicator Pro</strong> to unlock ' .
|
||||
'all the awesome features and experience<br>why Duplicator is consistently rated the best WordPress migration plugin.',
|
||||
'duplicator'
|
||||
),
|
||||
array(
|
||||
'br' => array(),
|
||||
'strong' => array(),
|
||||
)
|
||||
);
|
||||
?>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<?php
|
||||
printf(
|
||||
wp_kses( /* translators: %s - stars. */
|
||||
__(
|
||||
'We know that you will truly love Duplicator. It has over <strong>4000+ five star ratings</strong> ' .
|
||||
'(%s) and is active on over 1 million websites.',
|
||||
'duplicator'
|
||||
),
|
||||
array(
|
||||
'strong' => array(),
|
||||
)
|
||||
),
|
||||
'<i class="fa fa-star" aria-hidden="true"></i>' .
|
||||
'<i class="fa fa-star" aria-hidden="true"></i>' .
|
||||
'<i class="fa fa-star" aria-hidden="true"></i>' .
|
||||
'<i class="fa fa-star" aria-hidden="true"></i>' .
|
||||
'<i class="fa fa-star" aria-hidden="true"></i>'
|
||||
);
|
||||
?>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="dup-admin-about-section-hero-extra">
|
||||
<div class="dup-admin-about-section-features">
|
||||
<ul class="list">
|
||||
<?php
|
||||
foreach (Upsell::getCalloutCTAFeatureList() as $feature) {
|
||||
?>
|
||||
<li class="item">
|
||||
<span>
|
||||
<?php echo esc_html($feature); ?>
|
||||
</span>
|
||||
</li>
|
||||
<?php
|
||||
};
|
||||
?>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<h3 class="call-to-action">
|
||||
<?php
|
||||
printf(
|
||||
'<a href="%s" target="_blank" rel="noopener noreferrer">',
|
||||
esc_url(LinkManager::getCampaignUrl('duplicator-about_getting-started', 'Get Duplicator Pro Today'))
|
||||
);
|
||||
|
||||
_e('Get Duplicator Pro Today and Unlock all the Powerful Features', 'duplicator');
|
||||
?>
|
||||
</a>
|
||||
</h3>
|
||||
|
||||
<p>
|
||||
<?php
|
||||
printf(
|
||||
__(
|
||||
'Bonus: Duplicator Lite users get <span class="price-20-off">%1$d%% off regular price</span>, ' .
|
||||
'automatically applied at checkout.',
|
||||
'duplicator'
|
||||
),
|
||||
DUP_Constants::UPSELL_DEFAULT_DISCOUNT
|
||||
);
|
||||
?>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Template for getting started page
|
||||
*
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
use Duplicator\Core\Views\TplMng;
|
||||
use Duplicator\Utils\LinkManager;
|
||||
|
||||
defined('ABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
|
||||
?>
|
||||
|
||||
<div class="wrap" id="dup-admin-about">
|
||||
<?php
|
||||
TplMng::getInstance()->render('admin_pages/about_us/getting_started/first_package');
|
||||
|
||||
TplMng::getInstance()->render('admin_pages/about_us/getting_started/get_pro');
|
||||
?>
|
||||
</div>
|
||||
@@ -0,0 +1,123 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Template for lite vs pro page
|
||||
*
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || exit;
|
||||
|
||||
use Duplicator\Controllers\AboutUsController;
|
||||
use Duplicator\Utils\LinkManager;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
<div class="wrap" id="dup-admin-about">
|
||||
<div class="dup-admin-about-section dup-admin-about-section-squashed">
|
||||
<h1 class="centered">
|
||||
<?php
|
||||
echo wp_kses(
|
||||
__(
|
||||
'<strong>Lite</strong> vs <strong>Pro</strong>',
|
||||
'duplicator'
|
||||
),
|
||||
[
|
||||
'strong' => [],
|
||||
]
|
||||
);
|
||||
?>
|
||||
</h1>
|
||||
|
||||
<p class="centered">
|
||||
<?php esc_html_e('Get the most out of Duplicator by upgrading to Pro and unlocking all of the powerful features.', 'duplicator'); ?>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="dup-admin-about-section dup-admin-about-section-squashed dup-admin-about-section-hero dup-admin-about-section-table">
|
||||
|
||||
<div class="dup-admin-about-section-hero-main dup-admin-columns">
|
||||
<div class="dup-admin-column-33">
|
||||
<h3 class="no-margin">
|
||||
<?php esc_html_e('Feature', 'duplicator'); ?>
|
||||
</h3>
|
||||
</div>
|
||||
<div class="dup-admin-column-33">
|
||||
<h3 class="no-margin">
|
||||
<?php echo __('Lite', 'duplicator'); ?>
|
||||
</h3>
|
||||
</div>
|
||||
<div class="dup-admin-column-33">
|
||||
<h3 class="no-margin">
|
||||
<?php echo __('Pro', 'duplicator'); ?>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dup-admin-about-section-hero-extra no-padding dup-admin-columns">
|
||||
|
||||
<table>
|
||||
<?php foreach (AboutUsController::getLiteVsProFeatures() as $feature) : ?>
|
||||
<tr class="dup-admin-columns">
|
||||
<td class="dup-admin-column-33">
|
||||
<p><?php echo $feature['title']; ?></p>
|
||||
</td>
|
||||
<td class="dup-admin-column-33">
|
||||
<p class="features-<?php echo $feature['lite_enabled']; ?>">
|
||||
<strong>
|
||||
<?php
|
||||
if (isset($feature['lite_text'])) {
|
||||
echo $feature['lite_text'];
|
||||
} else {
|
||||
$feature['lite_enabled'] === AboutUsController::LITE_ENABLED_FULL ? _e('Included', 'duplicator')
|
||||
: _e('Not Available', 'duplicator');
|
||||
}
|
||||
?>
|
||||
</strong>
|
||||
</p>
|
||||
</td>
|
||||
<td class="dup-admin-column-33">
|
||||
<p class="features-full">
|
||||
<strong>
|
||||
<?php echo isset($feature['pro_text']) ? $feature['pro_text'] : __('Included', 'duplicator'); ?>
|
||||
</strong>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dup-admin-about-section dup-admin-about-section-hero">
|
||||
<div class="dup-admin-about-section-hero-main no-border">
|
||||
<h3 class="call-to-action centered">
|
||||
<?php
|
||||
printf(
|
||||
'<a href="%s" target="_blank" rel="noopener noreferrer">',
|
||||
esc_url(LinkManager::getCampaignUrl('about_duplicator_lite_vs_pro', 'Get Duplicator Pro Today'))
|
||||
);
|
||||
_e('Get Duplicator Pro Today and Unlock all the Powerful Features', 'duplicator')
|
||||
?>
|
||||
</a>
|
||||
</h3>
|
||||
|
||||
<p class="centered">
|
||||
<?php
|
||||
printf(
|
||||
__(
|
||||
'Bonus: Duplicator Lite users get <span class="price-20-off">%1$d%% off regular price</span>, ' .
|
||||
'automatically applied at checkout.',
|
||||
'duplicator'
|
||||
),
|
||||
DUP_Constants::UPSELL_DEFAULT_DISCOUNT
|
||||
);
|
||||
?>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
use Duplicator\Controllers\AboutUsController;
|
||||
use Duplicator\Core\Controllers\ControllersManager;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
|
||||
<h2 class="nav-tab-wrapper">
|
||||
<a href="<?php echo ControllersManager::getMenuLink(ControllersManager::ABOUT_US_SUBMENU_SLUG, AboutUsController::ABOUT_US_TAB);?>"
|
||||
class="nav-tab <?php echo ($tplData['active_tab'] === AboutUsController::ABOUT_US_TAB) ? 'nav-tab-active' : '' ?>">
|
||||
<?php esc_html_e('About Us', 'duplicator'); ?>
|
||||
</a>
|
||||
<a href="<?php echo ControllersManager::getMenuLink(ControllersManager::ABOUT_US_SUBMENU_SLUG, AboutUsController::GETTING_STARTED);?>"
|
||||
class="nav-tab <?php echo ($tplData['active_tab'] === AboutUsController::GETTING_STARTED) ? 'nav-tab-active' : '' ?>">
|
||||
<?php esc_html_e('Getting Started', 'duplicator'); ?>
|
||||
</a>
|
||||
<a href="<?php echo ControllersManager::getMenuLink(ControllersManager::ABOUT_US_SUBMENU_SLUG, AboutUsController::LITE_VS_PRO);?>"
|
||||
class="nav-tab <?php echo ($tplData['active_tab'] === AboutUsController::LITE_VS_PRO) ? 'nav-tab-active' : '' ?>">
|
||||
<?php esc_html_e('Lite vs Pro', 'duplicator'); ?>
|
||||
</a>
|
||||
</h2>
|
||||
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
*/
|
||||
|
||||
use Duplicator\Libs\Snap\SnapIO;
|
||||
|
||||
defined("ABSPATH") or die("");
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Controllers\ControllersManager $ctrlMng
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
<div class="filter-files-tab-content">
|
||||
<?php $tplMng->render('parts/filters/package_components', array(
|
||||
'package' => $tplData['package'],
|
||||
)); ?>
|
||||
</div>
|
||||
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Admin Notifications content.
|
||||
*
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
|
||||
use Duplicator\Utils\LinkManager;
|
||||
use Duplicator\Utils\Email\EmailSummary;
|
||||
|
||||
defined('ABSPATH') || exit;
|
||||
|
||||
$frequency = DUP_Settings::Get('email_summary_frequency');
|
||||
?>
|
||||
|
||||
<h3 class="title"><?php _e('Email Summary', 'duplicator') ?></h3>
|
||||
<hr size="1" />
|
||||
<table class="dup-capabilities-selector-wrapper form-table">
|
||||
<tr valign="top">
|
||||
<th scope="row"><label><?php _e('Frequency', 'duplicator'); ?></label></th>
|
||||
<td>
|
||||
<select id="email-summary-frequency" name="email_summary_frequency">
|
||||
<?php foreach (EmailSummary::getAllFrequencyOptions() as $key => $label) : ?>
|
||||
<option value="<?php echo esc_attr((string) $key); ?>" <?php selected($frequency, $key); ?>>
|
||||
<?php echo esc_html($label); ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<p class="description">
|
||||
<?php
|
||||
$faqUrl = LinkManager::getDocUrl('how-to-disable-email-summaries', 'email_summary', 'how to disable');
|
||||
echo sprintf(
|
||||
esc_html_x(
|
||||
'You can view the email summary example %1shere%2s.',
|
||||
'%1s and %2s are the opening and close <a> tags to the summary preview link',
|
||||
'duplicator'
|
||||
),
|
||||
'<a href="' . EmailSummary::getPreviewLink() . '" target="_blank">',
|
||||
'</a>'
|
||||
) . ' ' . sprintf(
|
||||
esc_html_x(
|
||||
'Learn %1show to disable%2s.',
|
||||
'%1s and %2s are opening and closing link tags to the documentation.',
|
||||
'duplicator'
|
||||
),
|
||||
'<a href="' . $faqUrl . '" target="_blank" >',
|
||||
'</a>'
|
||||
);
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -0,0 +1,263 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
|
||||
use Duplicator\Core\Controllers\ControllersManager;
|
||||
use Duplicator\Utils\LinkManager;
|
||||
use Duplicator\Libs\Snap\SnapUtil;
|
||||
use Duplicator\Core\Views\TplMng;
|
||||
|
||||
global $wp_version;
|
||||
global $wpdb;
|
||||
|
||||
$action_updated = null;
|
||||
$action_response = __("General Settings Saved", 'duplicator');
|
||||
|
||||
//SAVE RESULTS
|
||||
if (isset($_POST['action']) && $_POST['action'] == 'save') {
|
||||
//Nonce Check
|
||||
if (!isset($_POST['dup_settings_save_nonce_field']) || !wp_verify_nonce($_POST['dup_settings_save_nonce_field'], 'dup_settings_save')) {
|
||||
die('Invalid token permissions to perform this request.');
|
||||
}
|
||||
|
||||
DUP_Settings::Set('wpfront_integrate', isset($_POST['wpfront_integrate']) ? "1" : "0");
|
||||
|
||||
$skip_archive_scan = filter_input(INPUT_POST, 'skip_archive_scan', FILTER_VALIDATE_BOOLEAN);
|
||||
DUP_Settings::Set('skip_archive_scan', $skip_archive_scan);
|
||||
|
||||
$unhook_third_party_js = filter_input(INPUT_POST, 'unhook_third_party_js', FILTER_VALIDATE_BOOLEAN);
|
||||
DUP_Settings::Set('unhook_third_party_js', $unhook_third_party_js);
|
||||
|
||||
$unhook_third_party_css = filter_input(INPUT_POST, 'unhook_third_party_css', FILTER_VALIDATE_BOOLEAN);
|
||||
DUP_Settings::Set('unhook_third_party_css', $unhook_third_party_css);
|
||||
|
||||
$email_summary_frequency = SnapUtil::sanitizeStrictInput(INPUT_POST, 'email_summary_frequency');
|
||||
DUP_Settings::setEmailSummaryFrequency($email_summary_frequency);
|
||||
|
||||
|
||||
|
||||
DUP_Settings::Save();
|
||||
$action_updated = true;
|
||||
DUP_Util::initSnapshotDirectory();
|
||||
}
|
||||
|
||||
$wpfront_integrate = DUP_Settings::Get('wpfront_integrate');
|
||||
$wpfront_ready = apply_filters('wpfront_user_role_editor_duplicator_integration_ready', false);
|
||||
$skip_archive_scan = DUP_Settings::Get('skip_archive_scan');
|
||||
$unhook_third_party_js = DUP_Settings::Get('unhook_third_party_js');
|
||||
$unhook_third_party_css = DUP_Settings::Get('unhook_third_party_css');
|
||||
$actionUrl = ControllersManager::getMenuLink(ControllersManager::SETTINGS_SUBMENU_SLUG, 'general');
|
||||
?>
|
||||
|
||||
<style>
|
||||
form#dup-settings-form input[type=text] {width: 400px; }
|
||||
div.dup-feature-found {padding:3px; border:1px solid silver; background: #f7fcfe; border-radius: 3px; width:400px; font-size: 12px}
|
||||
div.dup-feature-notfound {padding:5px; border:1px solid silver; background: #fcf3ef; border-radius: 3px; width:500px; font-size: 13px; line-height: 18px}
|
||||
table.nested-table-data td {padding:5px 5px 5px 0}
|
||||
</style>
|
||||
|
||||
<form id="dup-settings-form" action="<?php echo esc_url($actionUrl); ?>" method="post">
|
||||
|
||||
<?php wp_nonce_field('dup_settings_save', 'dup_settings_save_nonce_field', false); ?>
|
||||
<input type="hidden" name="action" value="save">
|
||||
<input type="hidden" name="page" value="duplicator-settings">
|
||||
|
||||
<?php if ($action_updated) : ?>
|
||||
<div id="message" class="notice notice-success is-dismissible dup-wpnotice-box"><p><?php echo esc_html($action_response); ?></p></div>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php TplMng::getInstance()->render('admin_pages/settings/general/license'); ?>
|
||||
|
||||
<?php TplMng::getInstance()->render('admin_pages/settings/general/email_summary'); ?>
|
||||
|
||||
<!-- ===============================
|
||||
ADVANCED SETTINGS -->
|
||||
<h3 class="title"><?php esc_html_e('Advanced', 'duplicator'); ?> </h3>
|
||||
<hr size="1" />
|
||||
<table class="form-table">
|
||||
<tr>
|
||||
<th scope="row"><label><?php esc_html_e("Settings", 'duplicator'); ?></label></th>
|
||||
<td>
|
||||
<button class="button" onclick="Duplicator.Pack.ConfirmResetAll(); return false;">
|
||||
<i class="fas fa-redo fa-sm"></i> <?php esc_html_e('Reset Backups', 'duplicator'); ?>
|
||||
</button>
|
||||
<p class="description">
|
||||
<?php
|
||||
esc_html_e("This process will reset all Backups by deleting those without a completed status, reset the active Backup id and perform a "
|
||||
. "cleanup of the build tmp file.", 'duplicator');
|
||||
?>
|
||||
<i class="fas fa-question-circle fa-sm"
|
||||
data-tooltip-title="<?php esc_attr_e("Reset Settings", 'duplicator'); ?>"
|
||||
data-tooltip="<?php
|
||||
esc_attr_e('This action should only be used if the Backups screen is having issues or a build is stuck.', 'duplicator'); ?>">
|
||||
</i>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<th scope="row"><label><?php esc_html_e('Backup scan', 'duplicator'); ?></label></th>
|
||||
<td>
|
||||
<input type="checkbox" name="skip_archive_scan" id="_skip_archive_scan" <?php checked($skip_archive_scan, true); ?> value="1" />
|
||||
<label for="_skip_archive_scan"><?php esc_html_e("Skip", 'duplicator') ?> </label><br/>
|
||||
<p class="description">
|
||||
<?php
|
||||
esc_html_e('If enabled all files check on scan will be skipped before Backup creation. '
|
||||
. 'In some cases, this option can be beneficial if the scan process is having issues running or returning errors.', 'duplicator');
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label><?php esc_html_e("Foreign JavaScript", 'duplicator'); ?></label></th>
|
||||
<td>
|
||||
<input type="checkbox" name="unhook_third_party_js" id="unhook_third_party_js" <?php checked($unhook_third_party_js, true); ?> value="1"/>
|
||||
<label for="unhook_third_party_js"><?php esc_html_e("Disable", 'duplicator'); ?></label> <br/>
|
||||
<p class="description">
|
||||
<?php
|
||||
esc_html_e("Check this option if other plugins/themes JavaScript files are conflicting with Duplicator.", 'duplicator');
|
||||
echo '<br/>';
|
||||
esc_html_e("Do not modify this setting unless you know the expected result or have talked to support.", 'duplicator');
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label><?php esc_html_e("Foreign CSS", 'duplicator'); ?></label></th>
|
||||
<td>
|
||||
<input type="checkbox" name="unhook_third_party_css" id="unhook_third_party_css" <?php checked($unhook_third_party_css, true); ?> value="1"/>
|
||||
<label for="unhook_third_party_css"><?php esc_html_e("Disable", 'duplicator'); ?></label> <br/>
|
||||
<p class="description">
|
||||
<?php
|
||||
esc_html_e("Check this option if other plugins/themes CSS files are conflicting with Duplicator.", 'duplicator');
|
||||
echo '<br/>';
|
||||
esc_html_e("Do not modify this setting unless you know the expected result or have talked to support.", 'duplicator');
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p class="submit" style="margin: 20px 0px 0xp 5px;">
|
||||
<br/>
|
||||
<input
|
||||
type="submit"
|
||||
name="submit"
|
||||
id="submit"
|
||||
class="button-primary"
|
||||
value="<?php esc_attr_e("Save General Settings", 'duplicator') ?>"
|
||||
style="display: inline-block;"
|
||||
/>
|
||||
</p>
|
||||
|
||||
</form>
|
||||
|
||||
<!-- ==========================================
|
||||
THICK-BOX DIALOGS: -->
|
||||
<?php
|
||||
$reset_confirm = new DUP_UI_Dialog();
|
||||
$reset_confirm->title = __('Reset Backups ?', 'duplicator');
|
||||
$reset_confirm->message = __('This will clear and reset all of the current temporary Backups. Would you like to continue?', 'duplicator');
|
||||
$reset_confirm->progressText = __('Resetting settings, Please Wait...', 'duplicator');
|
||||
$reset_confirm->jscallback = 'Duplicator.Pack.ResetAll()';
|
||||
$reset_confirm->progressOn = false;
|
||||
$reset_confirm->okText = __('Yes', 'duplicator');
|
||||
$reset_confirm->cancelText = __('No', 'duplicator');
|
||||
$reset_confirm->closeOnConfirm = true;
|
||||
$reset_confirm->initConfirm();
|
||||
|
||||
$faqUrl = esc_url(LinkManager::getDocUrl('how-to-resolve-duplicator-plugin-user-interface-ui-issues', 'settings-admin_notice'));
|
||||
$msg_ajax_error = new DUP_UI_Messages(
|
||||
__('AJAX Call Error!', 'duplicator') . '<br>' .
|
||||
sprintf(
|
||||
_x(
|
||||
'AJAX error encountered when resetting Backups. Please see %1$sthis FAQ entry%2$s for possible resolutions.',
|
||||
'1 and 2 are opening and closing <a> tags',
|
||||
'duplicator'
|
||||
),
|
||||
'<a href="' . $faqUrl . '" target="_blank">',
|
||||
'</a>'
|
||||
),
|
||||
DUP_UI_Messages::ERROR
|
||||
);
|
||||
|
||||
$msg_ajax_error->hide_on_init = true;
|
||||
$msg_ajax_error->is_dismissible = true;
|
||||
$msg_ajax_error->initMessage();
|
||||
|
||||
$msg_response_error = new DUP_UI_Messages(__('RESPONSE ERROR!', 'duplicator'), DUP_UI_Messages::ERROR);
|
||||
$msg_response_error->hide_on_init = true;
|
||||
$msg_response_error->is_dismissible = true;
|
||||
$msg_response_error->initMessage();
|
||||
|
||||
$msg_response_success = new DUP_UI_Messages('', DUP_UI_Messages::NOTICE);
|
||||
$msg_response_success->hide_on_init = true;
|
||||
$msg_response_success->is_dismissible = true;
|
||||
$msg_response_success->initMessage();
|
||||
?>
|
||||
<script>
|
||||
jQuery(document).ready(function ($)
|
||||
{
|
||||
var msgDebug = <?php echo DUP_Util::isWpDebug() ? 'true' : 'false'; ?>;
|
||||
Duplicator.Pack.ConfirmResetAll = function ()
|
||||
{
|
||||
<?php $reset_confirm->showConfirm(); ?>
|
||||
};
|
||||
|
||||
Duplicator.Pack.ResetAll = function ()
|
||||
{
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: ajaxurl,
|
||||
dataType: "json",
|
||||
data: {
|
||||
action: 'duplicator_reset_all_settings',
|
||||
nonce: '<?php echo wp_create_nonce('duplicator_reset_all_settings'); ?>'
|
||||
},
|
||||
success: function (result) {
|
||||
if (msgDebug) {
|
||||
console.log(result);
|
||||
}
|
||||
|
||||
if (result.success) {
|
||||
var message = '<?php _e('Backups successfully reset', 'duplicator'); ?>';
|
||||
if (msgDebug) {
|
||||
console.log(result.data.message);
|
||||
console.log(result.data.html);
|
||||
}
|
||||
<?php
|
||||
$msg_response_success->updateMessage('message');
|
||||
$msg_response_success->showMessage();
|
||||
?>
|
||||
} else {
|
||||
var message = '<?php _e('RESPONSE ERROR!', 'duplicator'); ?>' + '<br><br>' + result.data.message;
|
||||
if (msgDebug) {
|
||||
message += '<br><br>' + result.data.html;
|
||||
}
|
||||
<?php
|
||||
$msg_response_error->updateMessage('message');
|
||||
$msg_response_error->showMessage();
|
||||
?>
|
||||
}
|
||||
},
|
||||
error: function (result) {
|
||||
if (msgDebug) {
|
||||
console.log(result);
|
||||
}
|
||||
<?php $msg_ajax_error->showMessage(); ?>
|
||||
}
|
||||
});
|
||||
};
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* License section template for General settings
|
||||
*
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
use Duplicator\Utils\LinkManager;
|
||||
|
||||
?>
|
||||
|
||||
<h3 class="title"><?php esc_html_e('License', 'duplicator'); ?> </h3>
|
||||
<hr size="1" />
|
||||
<table class="form-table licenses-table">
|
||||
<tr valign="top">
|
||||
<th scope="row"><label><?php esc_html_e('License Key', 'duplicator'); ?></label></th>
|
||||
<td>
|
||||
<div class="description" style="max-width:700px">
|
||||
<p><?php esc_html_e('You\'re using Duplicator Lite - no license needed. Enjoy!', 'duplicator'); ?> 🙂</p>
|
||||
<p>
|
||||
<?php printf(
|
||||
wp_kses(
|
||||
__('To unlock more features consider <strong><a href="%s" target="_blank"
|
||||
rel="noopener noreferrer">upgrading to PRO</a></strong>.', 'duplicator'),
|
||||
array(
|
||||
'a' => array(
|
||||
'href' => array(),
|
||||
'class' => array(),
|
||||
'target' => array(),
|
||||
'rel' => array(),
|
||||
),
|
||||
'strong' => array(),
|
||||
)
|
||||
),
|
||||
esc_url(LinkManager::getCampaignUrl('license-tab', 'upgrading to PRO'))
|
||||
); ?>
|
||||
</p>
|
||||
<p class="discount-note">
|
||||
<?php
|
||||
printf(
|
||||
__(
|
||||
'As a valued Duplicator Lite user you receive <strong>%1$d%% off</strong>, automatically applied at checkout!',
|
||||
'duplicator'
|
||||
),
|
||||
DUP_Constants::UPSELL_DEFAULT_DISCOUNT
|
||||
);
|
||||
?>
|
||||
</p>
|
||||
<hr>
|
||||
<p>
|
||||
<?php _e('Already purchased? Connect to unlock <b>Duplicator PRO!</b>', 'duplicator'); ?></p>
|
||||
<p>
|
||||
<button type="button" class="dup-btn dup-btn-md dup-btn-orange" id="dup-settings-connect-btn">
|
||||
<?php echo esc_html__('Connect to Duplicator Pro', 'duplicator'); ?>
|
||||
</button>
|
||||
</p>
|
||||
<p>
|
||||
<small><?php esc_html_e('This opens connect.duplicator.com where you\'ll securely connect to Duplicator Pro.', 'duplicator'); ?></small>
|
||||
</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -0,0 +1,96 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
<div>
|
||||
<b>
|
||||
<?php _e('All information sent to the server is anonymous.', 'duplicator'); ?><br>
|
||||
<?php _e('No information about storage or Backup\'s content are sent.', 'duplicator'); ?>
|
||||
</b>
|
||||
</div>
|
||||
<br>
|
||||
<div>
|
||||
<?php
|
||||
_e(
|
||||
'Usage tracking for Duplicator helps us better understand our users and their website needs by looking
|
||||
at a range of server and website environments.',
|
||||
'duplicator'
|
||||
);
|
||||
?>
|
||||
<b>
|
||||
<?php _e('This allows us to continuously improve our product as well as our Q&A / testing process.', 'duplicator'); ?>
|
||||
</b>
|
||||
<?php _e('Below is the list of information that Duplicator collects as part of the usage tracking:', 'duplicator'); ?>
|
||||
</div>
|
||||
<ul>
|
||||
<li>
|
||||
<?php
|
||||
_e(
|
||||
'<b>PHP Version:</b> so we know which PHP versions we have to test against (no one likes whitescreens or log files full of errors).',
|
||||
'duplicator'
|
||||
);
|
||||
?>
|
||||
</li>
|
||||
<li>
|
||||
<?php
|
||||
_e(
|
||||
'<b>WordPress Version:</b> so we know which WordPress versions to support and test against.',
|
||||
'duplicator'
|
||||
);
|
||||
?>
|
||||
</li>
|
||||
<li>
|
||||
<?php
|
||||
_e(
|
||||
'<b>MySQL Version:</b> so we know which versions of MySQL to support and test against for our custom tables.',
|
||||
'duplicator'
|
||||
);
|
||||
?>
|
||||
</li>
|
||||
<li>
|
||||
<?php
|
||||
_e(
|
||||
'<b>Duplicator Version:</b> so we know which versions of Duplicator are potentially responsible for issues when we get bug reports,
|
||||
allowing us to identify issues and release solutions much faster.',
|
||||
'duplicator'
|
||||
);
|
||||
?>
|
||||
</li>
|
||||
<li>
|
||||
<?php
|
||||
_e(
|
||||
'<b>Plugins and Themes infos:</b> so we can figure out which ones can generate compatibility errors with Duplicator.',
|
||||
'duplicator'
|
||||
);
|
||||
?>
|
||||
</li>
|
||||
<li>
|
||||
<?php
|
||||
_e(
|
||||
'<b>Site info:</b> General information about the site such as database, file size, number of users, and sites in case it is a multisite.
|
||||
This is useful for us to understand the critical issues of Backup creation.',
|
||||
'duplicator'
|
||||
);
|
||||
?>
|
||||
</li>
|
||||
<li>
|
||||
<?php
|
||||
_e(
|
||||
'<b>Backups infos:</b> Information about the Backups created and the type of components included.',
|
||||
'duplicator'
|
||||
);
|
||||
?>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -0,0 +1,211 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
|
||||
use Duplicator\Core\Controllers\ControllersManager;
|
||||
use Duplicator\Libs\Snap\SnapUtil;
|
||||
|
||||
global $wp_version;
|
||||
global $wpdb;
|
||||
|
||||
$action_updated = null;
|
||||
$action_response = __("Misc Settings Saved", 'duplicator');
|
||||
|
||||
//SAVE RESULTS
|
||||
if (isset($_POST['action']) && $_POST['action'] == 'save') {
|
||||
//Nonce Check
|
||||
if (!isset($_POST['dup_settings_save_nonce_field']) || !wp_verify_nonce($_POST['dup_settings_save_nonce_field'], 'dup_settings_save')) {
|
||||
die('Invalid token permissions to perform this request.');
|
||||
}
|
||||
|
||||
DUP_Settings::Set('uninstall_settings', isset($_POST['uninstall_settings']) ? "1" : "0");
|
||||
DUP_Settings::Set('uninstall_files', isset($_POST['uninstall_files']) ? "1" : "0");
|
||||
DUP_Settings::Set('package_debug', isset($_POST['package_debug']) ? "1" : "0");
|
||||
|
||||
$usage_tracking = filter_input(INPUT_POST, 'usage_tracking', FILTER_VALIDATE_BOOLEAN);
|
||||
DUP_Settings::setUsageTracking($usage_tracking);
|
||||
|
||||
$amNotices = !SnapUtil::sanitizeBoolInput(INPUT_POST, 'dup_am_notices');
|
||||
DUP_Settings::Set('amNotices', $amNotices);
|
||||
|
||||
if (isset($_REQUEST['trace_log_enabled'])) {
|
||||
dup_log::trace("#### trace log enabled");
|
||||
// Trace on
|
||||
|
||||
if (DUP_Settings::Get('trace_log_enabled') == 0) {
|
||||
DUP_Log::DeleteTraceLog();
|
||||
}
|
||||
|
||||
DUP_Settings::Set('trace_log_enabled', 1);
|
||||
} else {
|
||||
dup_log::trace("#### trace log disabled");
|
||||
|
||||
// Trace off
|
||||
DUP_Settings::Set('trace_log_enabled', 0);
|
||||
}
|
||||
|
||||
DUP_Settings::Save();
|
||||
$action_updated = true;
|
||||
DUP_Util::initSnapshotDirectory();
|
||||
}
|
||||
|
||||
$trace_log_enabled = DUP_Settings::Get('trace_log_enabled');
|
||||
$uninstall_settings = DUP_Settings::Get('uninstall_settings');
|
||||
$uninstall_files = DUP_Settings::Get('uninstall_files');
|
||||
$package_debug = DUP_Settings::Get('package_debug');
|
||||
$actionUrl = ControllersManager::getMenuLink(ControllersManager::SETTINGS_SUBMENU_SLUG, 'misc');
|
||||
?>
|
||||
|
||||
<style>
|
||||
form#dup-settings-form input[type=text] {width: 400px; }
|
||||
div.dup-feature-found {padding:3px; border:1px solid silver; background: #f7fcfe; border-radius: 3px; width:400px; font-size: 12px}
|
||||
div.dup-feature-notfound {padding:5px; border:1px solid silver; background: #fcf3ef; border-radius: 3px; width:500px; font-size: 13px; line-height: 18px}
|
||||
table.nested-table-data td {padding:5px 5px 5px 0}
|
||||
</style>
|
||||
|
||||
<form id="dup-settings-form" action="<?php echo esc_url($actionUrl); ?>" method="post">
|
||||
|
||||
<?php wp_nonce_field('dup_settings_save', 'dup_settings_save_nonce_field', false); ?>
|
||||
<input type="hidden" name="action" value="save">
|
||||
<input type="hidden" name="page" value="duplicator-settings">
|
||||
|
||||
<?php if ($action_updated) : ?>
|
||||
<div id="message" class="notice notice-success is-dismissible dup-wpnotice-box"><p><?php echo esc_html($action_response); ?></p></div>
|
||||
<?php endif; ?>
|
||||
|
||||
<h3 class="title"><?php esc_html_e("Plugin", 'duplicator') ?> </h3>
|
||||
<hr size="1" />
|
||||
<table class="form-table">
|
||||
<tr valign="top">
|
||||
<th scope="row"><label><?php esc_html_e("Version", 'duplicator'); ?></label></th>
|
||||
<td>
|
||||
<?php
|
||||
echo DUPLICATOR_VERSION;
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<th scope="row"><label><?php esc_html_e("Uninstall", 'duplicator'); ?></label></th>
|
||||
<td>
|
||||
<p>
|
||||
<input type="checkbox" name="uninstall_settings" id="uninstall_settings" <?php echo ($uninstall_settings) ? 'checked="checked"' : ''; ?> />
|
||||
<label for="uninstall_settings"><?php esc_html_e("Delete Plugin Settings", 'duplicator') ?> </label>
|
||||
</p>
|
||||
<p>
|
||||
<input type="checkbox" name="uninstall_files" id="uninstall_files" <?php echo ($uninstall_files) ? 'checked="checked"' : ''; ?> />
|
||||
<label for="uninstall_files"><?php esc_html_e("Delete Entire Storage Directory", 'duplicator') ?></label><br/>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<th scope="row"><label><?php esc_html_e("Usage statistics", 'duplicator'); ?></label></th>
|
||||
<td>
|
||||
<?php if (DUPLICATOR_USTATS_DISALLOW) { // @phpstan-ignore-line ?>
|
||||
<span class="maroon">
|
||||
<?php _e('Usage statistics are hardcoded disallowed.', 'duplicator'); ?>
|
||||
</span>
|
||||
<?php } else { ?>
|
||||
<input
|
||||
type="checkbox"
|
||||
name="usage_tracking"
|
||||
id="usage_tracking"
|
||||
value="1"
|
||||
<?php checked(DUP_Settings::Get('usage_tracking')); ?>
|
||||
>
|
||||
<label for="usage_tracking"><?php _e("Enable usage tracking", 'duplicator'); ?> </label>
|
||||
<i
|
||||
class="fas fa-question-circle fa-sm"
|
||||
data-tooltip-title="<?php esc_attr_e("Usage Tracking", 'duplicator'); ?>"
|
||||
data-tooltip="<?php echo esc_attr($tplMng->render('admin_pages/settings/general/usage_tracking_tooltip', array(), false)); ?>"
|
||||
data-tooltip-width="600"
|
||||
>
|
||||
</i>
|
||||
<?php } ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<th scope="row"><label><?php esc_html_e("Hide Announcements", 'duplicator'); ?></label></th>
|
||||
<td>
|
||||
<input
|
||||
type="checkbox"
|
||||
name="dup_am_notices"
|
||||
id="dup_am_notices"
|
||||
<?php checked(!DUP_Settings::Get('amNotices')); ?>
|
||||
/>
|
||||
<label for="dup_am_notices">
|
||||
<?php esc_html_e("Check this option to hide plugin announcements and update details.", 'duplicator') ?>
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3 class="title"><?php esc_html_e("Debug", 'duplicator') ?> </h3>
|
||||
<hr size="1" />
|
||||
<table class="form-table">
|
||||
<tr>
|
||||
<th scope="row"><label><?php esc_html_e("Debugging", 'duplicator'); ?></label></th>
|
||||
<td>
|
||||
<input type="checkbox" name="package_debug" id="package_debug" <?php echo ($package_debug) ? 'checked="checked"' : ''; ?> />
|
||||
<label for="package_debug"><?php esc_html_e("Enable debug options throughout user interface", 'duplicator'); ?></label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<th scope="row"><label><?php esc_html_e("Trace Log", 'duplicator'); ?></label></th>
|
||||
<td>
|
||||
<input type="checkbox" name="trace_log_enabled" id="trace_log_enabled" <?php echo ($trace_log_enabled == 1) ? 'checked="checked"' : ''; ?> />
|
||||
<label for="trace_log_enabled"><?php esc_html_e("Enabled", 'duplicator') ?> </label><br/>
|
||||
<p class="description">
|
||||
<?php
|
||||
esc_html_e('Turns on detailed operation logging. Logging will occur in both PHP error and local trace logs.', 'duplicator');
|
||||
echo ('<br/>');
|
||||
esc_html_e('WARNING: Only turn on this setting when asked to by support as tracing will impact performance.', 'duplicator');
|
||||
?>
|
||||
</p><br/>
|
||||
<button class="button" <?php
|
||||
if (!DUP_Log::TraceFileExists()) {
|
||||
echo 'disabled';
|
||||
}
|
||||
?> onclick="Duplicator.Pack.DownloadTraceLog(); return false">
|
||||
<i class="fa fa-download"></i> <?php echo esc_html__('Download Trace Log', 'duplicator') . ' (' . DUP_LOG::GetTraceStatus() . ')'; ?>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
</table><br/>
|
||||
|
||||
<p class="submit" style="margin: 20px 0px 0xp 5px;">
|
||||
<br/>
|
||||
<input
|
||||
type="submit"
|
||||
name="submit"
|
||||
id="submit"
|
||||
class="button-primary"
|
||||
value="<?php esc_attr_e("Save Misc Settings", 'duplicator') ?>"
|
||||
style="display: inline-block;"
|
||||
/>
|
||||
</p>
|
||||
|
||||
</form>
|
||||
|
||||
<script>
|
||||
jQuery(document).ready(function ($)
|
||||
{
|
||||
// which: 0=installer, 1=archive, 2=sql file, 3=log
|
||||
Duplicator.Pack.DownloadTraceLog = function ()
|
||||
{
|
||||
var actionLocation = ajaxurl + '?action=DUP_CTRL_Tools_getTraceLog&nonce=' + '<?php echo wp_create_nonce('DUP_CTRL_Tools_getTraceLog'); ?>';
|
||||
location.href = actionLocation;
|
||||
};
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,105 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
*
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2023, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
|
||||
<div class="features">
|
||||
<div class="block">
|
||||
<h1><?php esc_html_e('Duplicator Features', 'duplicator'); ?></h1>
|
||||
<h6><?php esc_html_e('Duplicator is both easy to use and extremely powerful. We have tons of helpful features ' .
|
||||
'that allow us to give you everything you need from a backup & migration plugin.', 'duplicator'); ?></h6>
|
||||
|
||||
<div class="feature-list dup-clearfix">
|
||||
<div class="feature-block first">
|
||||
<img src="<?php echo DUPLICATOR_PLUGIN_URL; ?>assets/img/welcome/scheduled-backups.svg">
|
||||
<h5><?php esc_html_e('Scheduled Backups', 'duplicator'); ?></h5>
|
||||
<p>
|
||||
<?php esc_html_e('Ensure that important data is regularly and consistently backed up, allowing for ' .
|
||||
'quick and efficient recovery in case of data loss.', 'duplicator'); ?>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="feature-block last">
|
||||
<img src="<?php echo DUPLICATOR_PLUGIN_URL; ?>assets/img/welcome/cloud-backups.svg">
|
||||
<h5><?php esc_html_e('Cloud Backups', 'duplicator'); ?></h5>
|
||||
<p>
|
||||
<?php esc_html_e('Back up to Dropbox, FTP, Google Drive, OneDrive, or Amazon S3 and more for safe storage.', 'duplicator'); ?>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="feature-block first">
|
||||
<img src="<?php echo DUPLICATOR_PLUGIN_URL; ?>assets/img/welcome/recovery-points.svg">
|
||||
<h5><?php esc_html_e('Recovery Points', 'duplicator'); ?></h5>
|
||||
<p>
|
||||
<?php esc_html_e('Recovery Points provides protection against mistakes and bad updates by letting ' .
|
||||
'you quickly rollback your system to a known, good state.', 'duplicator'); ?>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="feature-block last">
|
||||
<img src="<?php echo DUPLICATOR_PLUGIN_URL; ?>assets/img/welcome/secure-file-encryption.svg">
|
||||
<h5><?php esc_html_e('Secure File Encryption', 'duplicator'); ?></h5>
|
||||
<p>
|
||||
<?php esc_html_e('Protect and secure the Backup file with industry-standard AES-256 encryption.', 'duplicator'); ?>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="feature-block first">
|
||||
<img src="<?php echo DUPLICATOR_PLUGIN_URL; ?>assets/img/welcome/server-to-server-import.svg">
|
||||
<h5><?php esc_html_e('Server to Server Import', 'duplicator'); ?></h5>
|
||||
<p>
|
||||
<?php esc_html_e('Direct Backup import from source server or cloud storage using URL. No need to ' .
|
||||
'download the Backup to your desktop machine first.', 'duplicator'); ?>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="feature-block last">
|
||||
<img src="<?php echo DUPLICATOR_PLUGIN_URL; ?>assets/img/welcome/file-and-database-filters.svg">
|
||||
<h5><?php esc_html_e('File & Database Table Filters', 'duplicator'); ?></h5>
|
||||
<p>
|
||||
<?php esc_html_e('Use file and database filters to pick and choose exactly what you want to backup or ' .
|
||||
'transfer. No bloat!', 'duplicator'); ?>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="feature-block first">
|
||||
<img src="<?php echo DUPLICATOR_PLUGIN_URL; ?>assets/img/welcome/large-site-support.svg">
|
||||
<h5><?php esc_html_e('Large Site Support', 'duplicator'); ?></h5>
|
||||
<p>
|
||||
<?php esc_html_e('Duplicator Pro has developed a new way to package backups especially tailored for ' .
|
||||
'larger site. No server timeouts or other restrictions.', 'duplicator'); ?>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="feature-block last">
|
||||
<img src="<?php echo DUPLICATOR_PLUGIN_URL; ?>assets/img/welcome/multisite-support.svg">
|
||||
<h5><?php esc_html_e('Multisite Support', 'duplicator'); ?></h5>
|
||||
<p>
|
||||
<?php esc_html_e('Duplicator Pro supports multisite network backup & migration. You can even install ' .
|
||||
' a subsite as a standalone site.', 'duplicator'); ?>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="button-wrap">
|
||||
<a href="<?php echo \Duplicator\Utils\LinkManager::getCampaignUrl('welcome-page', 'See All Features') ?>"
|
||||
class="dup-btn dup-btn-lg dup-btn-grey" rel="noopener noreferrer"
|
||||
target="_blank">
|
||||
<?php esc_html_e('See All Features', 'duplicator'); ?>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
*
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2023, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
|
||||
<div class="footer">
|
||||
<div class="block dup-clearfix">
|
||||
<div class="button-wrap">
|
||||
<div class="left">
|
||||
<a href="<?php echo esc_url($tplData['packageNonceUrl']); ?>"
|
||||
class="dup-btn dup-btn-block dup-btn-lg dup-btn-orange">
|
||||
<?php esc_html_e('Create Your First Backup', 'duplicator'); ?>
|
||||
</a>
|
||||
</div>
|
||||
<div class="right">
|
||||
<a href="<?php echo esc_url(\Duplicator\Utils\LinkManager::getCampaignUrl('welcome-page', 'Upgrade to Duplicator Pro')); ?>"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
class="dup-btn dup-btn-block dup-btn-lg dup-btn-trans-green">
|
||||
<span class="underline">
|
||||
<?php esc_html_e('Upgrade to Duplicator Pro', 'duplicator'); ?> <span
|
||||
class="dashicons dashicons-arrow-right"></span>
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,148 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
*
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2023, Snap Creek LLC
|
||||
*/
|
||||
|
||||
use Duplicator\Core\Controllers\ControllersManager;
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
<div class="intro">
|
||||
<div class="sullie">
|
||||
<img src="<?php echo DUPLICATOR_PLUGIN_URL; ?>assets/img/welcome/willie.svg"
|
||||
alt="<?php esc_attr_e('Willie the Duplicator mascot', 'duplicator'); ?>">
|
||||
</div>
|
||||
<div class="block">
|
||||
<h1><?php esc_html_e('Never miss an important update', 'duplicator'); ?></h1>
|
||||
</div>
|
||||
<div class="block">
|
||||
<h6>
|
||||
<?php esc_html_e(
|
||||
'Opt in to get email notifications for security & feature updates, educational content, ' .
|
||||
'and occasional offers, and to share some basic WordPress environment info. This will ' .
|
||||
'help us make the plugin more compatible with your site and better at doing what you need it to.',
|
||||
'duplicator'
|
||||
); ?>
|
||||
</h6>
|
||||
<div class="button-wrap">
|
||||
<div>
|
||||
<button id="enable-usage-stats-btn" class="dup-btn dup-btn-lg dup-btn-orange dup-btn-block">
|
||||
<?php esc_html_e('Allow & Continue', 'duplicator'); ?>
|
||||
<i class="fas fa-arrow-right"></i>
|
||||
</button>
|
||||
</div>
|
||||
<div>
|
||||
<a href="<?php echo ControllersManager::getMenuLink(ControllersManager::PACKAGES_SUBMENU_SLUG); ?>"
|
||||
class="dup-btn dup-btn-lg dup-btn-grey dup-btn-block"
|
||||
rel="noopener noreferrer">
|
||||
<?php esc_html_e('Skip', 'duplicator'); ?>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="block terms-container">
|
||||
<div class="terms-list-toggle">
|
||||
<?php esc_html_e('This will allow Duplicator to', 'duplicator'); ?>
|
||||
<i class="fas fa-chevron-right fa-sm"></i>
|
||||
</div>
|
||||
<ul class="terms-list" style="display: none;">
|
||||
<li>
|
||||
<i class="fas fa-user"></i>
|
||||
<div>
|
||||
<b>
|
||||
<?php esc_html_e('View Basic Profile Info', 'duplicator'); ?>
|
||||
<i
|
||||
class="fas fa-question-circle"
|
||||
data-tooltip-title="<?php esc_attr_e("Basic Profile Info", 'duplicator'); ?>"
|
||||
data-tooltip="<?php
|
||||
esc_attr_e(
|
||||
'Never miss important updates, get security warnings before they ' .
|
||||
'become public knowledge, and receive notifications about special offers and awesome new features.',
|
||||
'duplicator'
|
||||
); ?>"
|
||||
aria-expanded="false"
|
||||
></i>
|
||||
</b>
|
||||
<p>
|
||||
<?php esc_html_e(
|
||||
'Your WordPress user\'s: first & last name, and email address',
|
||||
'duplicator'
|
||||
); ?>
|
||||
</p>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<i class="fas fa-globe"></i>
|
||||
<div>
|
||||
<b>
|
||||
<?php esc_html_e('View Basic Website Info', 'duplicator'); ?>
|
||||
<i
|
||||
class="fas fa-question-circle"
|
||||
data-tooltip-title="<?php esc_attr_e("Basic Website Info", 'duplicator'); ?>"
|
||||
data-tooltip="<?php
|
||||
esc_attr_e(
|
||||
'To provide additional functionality that\'s relevant to your website, avoid WordPress ' .
|
||||
'or PHP version incompatibilities that can break your website, and recognize which ' .
|
||||
'languages & regions the plugin should be translated and tailored to.',
|
||||
'duplicator'
|
||||
); ?>"
|
||||
aria-expanded="false"
|
||||
></i>
|
||||
</b>
|
||||
<p>
|
||||
<?php esc_html_e(
|
||||
'Homepage URL & title, WP & PHP versions, and site language',
|
||||
'duplicator'
|
||||
); ?>
|
||||
</p>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<i class="fas fa-plug"></i>
|
||||
<div>
|
||||
<b><?php esc_html_e('View Basic Plugin Info', 'duplicator'); ?></b>
|
||||
<p>
|
||||
<?php esc_html_e(
|
||||
'Current plugin & SDK versions, and if active or uninstalled',
|
||||
'duplicator'
|
||||
); ?>
|
||||
</p>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<i class="fas fa-palette"></i>
|
||||
<div>
|
||||
<b>
|
||||
<?php esc_html_e('View Plugins & Themes List', 'duplicator'); ?>
|
||||
<i
|
||||
class="fas fa-question-circle"
|
||||
data-tooltip-title="<?php esc_attr_e("Plugins & Themes List", 'duplicator'); ?>"
|
||||
data-tooltip="<?php
|
||||
esc_attr_e(
|
||||
'To ensure compatibility and avoid conflicts with your installed plugins and themes.',
|
||||
'duplicator'
|
||||
); ?>"
|
||||
aria-expanded="false"
|
||||
></i>
|
||||
</b>
|
||||
<p>
|
||||
<?php esc_html_e(
|
||||
'Names, slugs, versions, and if active or not',
|
||||
'duplicator'
|
||||
); ?>
|
||||
</p>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
*
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2023, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
<div class="testimonials upgrade">
|
||||
<div class="block">
|
||||
<h1><?php esc_html_e('Testimonials', 'duplicator'); ?></h1>
|
||||
|
||||
<div class="testimonial-block dup-clearfix">
|
||||
<img src="<?php echo DUPLICATOR_PLUGIN_URL; ?>assets/img/welcome/welcome-testimonial-Karina.png">
|
||||
<p>
|
||||
<?php
|
||||
echo wp_kses(
|
||||
__(
|
||||
'It walked me step-by-step through the process of migrating a WordPress website. If you want to save ' .
|
||||
'a ton of time with <b>WP migration</b>, I very much recommend this plugin!',
|
||||
'duplicator'
|
||||
),
|
||||
array('b' => array())
|
||||
);
|
||||
?>
|
||||
<p>
|
||||
<p><strong>Karina Caidez</strong>, Website Designer</p>
|
||||
</div>
|
||||
|
||||
<div class="testimonial-block dup-clearfix">
|
||||
<img src="<?php echo DUPLICATOR_PLUGIN_URL; ?>assets/img/welcome/welcome-testimonial-Blake.png">
|
||||
<p>
|
||||
<?php
|
||||
echo wp_kses(
|
||||
__(
|
||||
'Duplicator Pro is the best <b>WordPress migration & backup</b> plugin I have ever used. I will be ' .
|
||||
'recommending this plugin to everyone I can.',
|
||||
'duplicator'
|
||||
),
|
||||
array('b' => array())
|
||||
);
|
||||
?>
|
||||
<p>
|
||||
<p><strong>Blake Stiller</strong>, Website Development Instructor</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
*
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2023, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
<div class="upgrade-cta upgrade">
|
||||
<div class="block dup-clearfix">
|
||||
<div class="">
|
||||
<h2><?php esc_html_e('Upgrade to PRO', 'duplicator'); ?></h2>
|
||||
<ul>
|
||||
<?php foreach (\Duplicator\Utils\Upsell::getCalloutCTAFeatureList() as $feature) : ?>
|
||||
<li>
|
||||
<span class="dashicons dashicons-yes"></span> <?php echo esc_html($feature); ?>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="">
|
||||
<a href="<?php echo esc_url(\Duplicator\Utils\LinkManager::getCampaignUrl('welcome-page', 'Upgrade Now')); ?>"
|
||||
rel="noopener noreferrer"
|
||||
target="_blank"
|
||||
class="dup-btn dup-btn-block dup-btn-lg dup-btn-green">
|
||||
<?php esc_html_e('Upgrade Now', 'duplicator'); ?>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
*
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2023, Snap Creek LLC
|
||||
*/
|
||||
|
||||
use Duplicator\Core\Controllers\ControllersManager;
|
||||
use Duplicator\Core\Views\TplMng;
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
|
||||
<div id="duplicator-welcome">
|
||||
<div class="container">
|
||||
<?php
|
||||
$packageUrl = ControllersManager::getMenuLink(ControllersManager::PACKAGES_SUBMENU_SLUG, 'new1');
|
||||
$packageNonceUrl = wp_nonce_url($packageUrl, 'new1-package');
|
||||
TplMng::getInstance()->render(
|
||||
'admin_pages/welcome/intro',
|
||||
array(
|
||||
'packageNonceUrl' => $packageNonceUrl
|
||||
)
|
||||
);
|
||||
|
||||
TplMng::getInstance()->render('admin_pages/welcome/features');
|
||||
|
||||
TplMng::getInstance()->render('admin_pages/welcome/upgrade-cta');
|
||||
|
||||
TplMng::getInstance()->render('admin_pages/welcome/testimonials');
|
||||
|
||||
TplMng::getInstance()->render(
|
||||
'admin_pages/welcome/footer',
|
||||
array(
|
||||
'packageNonceUrl' => $packageNonceUrl
|
||||
)
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,195 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Duplicator schedule success mail
|
||||
*
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined("ABSPATH") or die("");
|
||||
|
||||
use Duplicator\Utils\LinkManager;
|
||||
use Duplicator\Utils\Email\EmailHelper;
|
||||
use Duplicator\Utils\Email\EmailSummary;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
|
||||
?>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<title><?php _e('Duplicator', 'duplicator'); ?></title>
|
||||
<style type="text/css">
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 599px) {
|
||||
table.body .main-tbl {
|
||||
width: 95% !important;
|
||||
}
|
||||
|
||||
.header {
|
||||
padding: 15px 15px 12px 15px !important;
|
||||
}
|
||||
|
||||
.header img {
|
||||
width: 200px !important;
|
||||
height: auto !important;
|
||||
}
|
||||
.content {
|
||||
padding: 30px 40px 20px 40px !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body <?php EmailHelper::printStyle('body'); ?>>
|
||||
<table <?php EmailHelper::printStyle('table body'); ?>>
|
||||
<tr <?php EmailHelper::printStyle('tr'); ?>>
|
||||
<td <?php EmailHelper::printStyle('td'); ?>>
|
||||
<table <?php EmailHelper::printStyle('table main-tbl'); ?>>
|
||||
<tr <?php EmailHelper::printStyle('tr'); ?>>
|
||||
<td <?php EmailHelper::printStyle('td logo txt-center'); ?>>
|
||||
<img
|
||||
src="<?php echo DUPLICATOR_PLUGIN_URL . 'assets/img/email-logo.png'; ?>"
|
||||
alt="logo"
|
||||
<?php EmailHelper::printStyle('img'); ?>
|
||||
>
|
||||
</td>
|
||||
</tr>
|
||||
<tr <?php EmailHelper::printStyle('tr'); ?>>
|
||||
<td <?php EmailHelper::printStyle('td content'); ?>>
|
||||
<table <?php EmailHelper::printStyle('table main-tbl-child'); ?>>
|
||||
<tr <?php EmailHelper::printStyle('tr'); ?>>
|
||||
<td <?php EmailHelper::printStyle('td'); ?>>
|
||||
<h6 <?php EmailHelper::printStyle('h6'); ?>><?php esc_html_e('Hi there!', 'duplicator') ?></h6>
|
||||
<p <?php EmailHelper::printStyle('p subtitle'); ?>>
|
||||
<?php
|
||||
printf(
|
||||
_x(
|
||||
'Here\'s a quick overview of your backups in the past %s.',
|
||||
'%s is the frequency of email summaries.',
|
||||
'duplicator'
|
||||
),
|
||||
EmailSummary::getFrequencyText()
|
||||
);
|
||||
?>
|
||||
</p>
|
||||
<p <?php EmailHelper::printStyle('p'); ?>>
|
||||
<strong style="<?php EmailHelper::printStyle('strong'); ?>">
|
||||
<?php _e('Did you know?', 'duplicator'); ?>
|
||||
</strong>
|
||||
</br>
|
||||
<?php
|
||||
if (rand(0, 100) % 2 === 0) {
|
||||
_e(
|
||||
'With Duplicator Pro you can create fully automatic backups! Schedule your preferred ' .
|
||||
'intervals for backups - daily, weekly, or monthly and never worry about data loss again!',
|
||||
'duplicator'
|
||||
);
|
||||
} else {
|
||||
_e(
|
||||
'With Duplicator Pro you can store backups in Google Drive, Amazon S3, OneDrive, Dropbox, ' .
|
||||
'or any SFTP/FTP server for added protection.',
|
||||
'duplicator'
|
||||
);
|
||||
}
|
||||
?>
|
||||
</p>
|
||||
<p <?php EmailHelper::printStyle('p'); ?>>
|
||||
<?php
|
||||
printf(
|
||||
esc_html_x(
|
||||
'To unlock scheduled backups, remote storages and many other features, %supgrade to PRO%s!',
|
||||
'%s and %s are opening and closing link tags to the pricing page.',
|
||||
'duplicator'
|
||||
),
|
||||
'<a href="' . LinkManager::getCampaignUrl('email-summary', 'Upgrade to PRO') . '" style="'
|
||||
. EmailHelper::getStyle('inline-link') . '">',
|
||||
'</a>'
|
||||
);
|
||||
?>
|
||||
</p>
|
||||
<?php if (count($tplData['packages']) > 0) : ?>
|
||||
<p <?php EmailHelper::printStyle('p'); ?>>
|
||||
<?php _e('Below are the total numbers of successful and failed backups.', 'duplicator'); ?>
|
||||
</p>
|
||||
<table <?php EmailHelper::printStyle('table stats-tbl'); ?>>
|
||||
<tr <?php EmailHelper::printStyle('tr'); ?>>
|
||||
<th <?php EmailHelper::printStyle('th'); ?>>
|
||||
<?php _e('State', 'duplicator'); ?>
|
||||
</th>
|
||||
<th <?php EmailHelper::printStyle('th stats-count-cell'); ?>>
|
||||
<?php _e('Backups', 'duplicator'); ?>
|
||||
</th>
|
||||
</tr>
|
||||
<?php foreach ($tplData['packages'] as $id => $packageInfo) : ?>
|
||||
<tr <?php EmailHelper::printStyle('tr'); ?>>
|
||||
<td <?php EmailHelper::printStyle('td stats-cell'); ?>>
|
||||
<?php echo $packageInfo['name']; ?>
|
||||
</td>
|
||||
<td <?php EmailHelper::printStyle('td stats-cell stats-count-cell'); ?>>
|
||||
<?php if ($id !== 'failed') : ?>
|
||||
<span <?php EmailHelper::printStyle('txt-orange'); ?>>
|
||||
<?php echo $packageInfo['count']; ?>
|
||||
</span>
|
||||
<?php else : ?>
|
||||
<?php echo $packageInfo['count']; ?>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</table>
|
||||
<?php else : ?>
|
||||
<p <?php EmailHelper::printStyle('p'); ?>>
|
||||
<?php echo __('No backups were created in the past week.', 'duplicator'); ?>
|
||||
</p>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td <?php EmailHelper::printStyle('td unsubscribe'); ?>>
|
||||
<?php
|
||||
printf(
|
||||
_x(
|
||||
'This email was auto-generated and sent from %s.',
|
||||
'%s is an <a> tag with a link to the current website.',
|
||||
'duplicator'
|
||||
),
|
||||
'<a href="' . get_site_url() . '" ' .
|
||||
'style="' . EmailHelper::getStyle('footer-link') . '">'
|
||||
. wp_specialchars_decode(get_bloginfo('name')) . '</a>'
|
||||
);
|
||||
?>
|
||||
|
||||
<?php
|
||||
$faqUrl = LinkManager::getDocUrl('how-to-disable-email-summaries', 'email_summary', 'how to disable');
|
||||
printf(
|
||||
esc_html_x(
|
||||
'Learn %1show to disable%2s.',
|
||||
'%1s and %2s are opening and closing link tags to the documentation.',
|
||||
'duplicator'
|
||||
),
|
||||
'<a href="' . $faqUrl . '" style="' . EmailHelper::getStyle('footer-link') . '">',
|
||||
'</a>'
|
||||
);
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
use Duplicator\Utils\ExtraPlugins\ExtraPluginsMng;
|
||||
use Duplicator\Utils\LinkManager;
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
<div id="db-reset-content-wrapper">
|
||||
<h1>
|
||||
<?php esc_html_e('Clean & Reset WordPress Database', 'duplicator'); ?>
|
||||
</h1>
|
||||
<div id="dup-admin-addons" class="full">
|
||||
<?php
|
||||
$extraPluginsMng = ExtraPluginsMng::getInstance();
|
||||
$plugin = $extraPluginsMng->getBySlug('db-reset-pro/db-reset-pro.php');
|
||||
|
||||
$tplMng->render(
|
||||
'admin_pages/about_us/about_us/extra_plugin_item',
|
||||
array('plugin' => $plugin->skipLite() ? $plugin->getPro() : $plugin)
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
<p>
|
||||
<b>The Simplest Database Reset Solution</b>
|
||||
</p>
|
||||
<div class="two-cols-valig" >
|
||||
<div>
|
||||
<img
|
||||
src="<?php echo DUPLICATOR_PLUGIN_URL ?>assets/img/db-reset-plugin.png"
|
||||
alt="Database Reset Pro Screenshot"
|
||||
></img>
|
||||
</div>
|
||||
<ul class="arrow-list">
|
||||
<li>One-Click Operation – No complex settings or configurations</li>
|
||||
<li>Clear Visual Interface – Know exactly what will happen before you click</li>
|
||||
<li>Instant Reset – Complete database reset in seconds, not minutes</li>
|
||||
<li>No Learning Curve – If you can click a button, you can use this plugin</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
use Duplicator\Utils\LinkManager;
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
<p>
|
||||
<?php
|
||||
printf(
|
||||
wp_kses(
|
||||
__(
|
||||
'In addition to the <a href="%s" target="_blank" rel="noopener noreferrer">classic installer method</a> ' .
|
||||
'on an empty site, Duplicator Pro now supports Drag and Drop migrations and site restores! Simply drag ' .
|
||||
'the bundled site Backup to the site you wish to overwrite.',
|
||||
'duplicator'
|
||||
),
|
||||
array(
|
||||
'a' => array(
|
||||
'href' => array(),
|
||||
'rel' => array(),
|
||||
'target' => array(),
|
||||
)
|
||||
)
|
||||
),
|
||||
LinkManager::getPostUrl('how-to-move-a-wordpress-website-to-a-new-host', 'import_popup', 'classic installer method')
|
||||
);
|
||||
?>
|
||||
</p>
|
||||
@@ -0,0 +1,217 @@
|
||||
<?php
|
||||
|
||||
use Duplicator\Core\Views\TplMng;
|
||||
use Duplicator\Utils\LinkManager;
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
<div class="wrap">
|
||||
<h1 class="margin-bottom-2">
|
||||
<?php esc_html_e('Import', 'duplicator') ?>
|
||||
</h1>
|
||||
<div class="dup-pro-tab-content-wrapper">
|
||||
<div id="dup-pro-import-phase-one">
|
||||
<div class="dup-pro-import-header">
|
||||
<h2 class="title">
|
||||
<i class="fas fa-arrow-alt-circle-down"></i>
|
||||
<?php
|
||||
printf(
|
||||
esc_html_x(
|
||||
'Step %1$s1%2$s of 2: Upload Backup',
|
||||
'%1$s and %2$s are opening and closing span tags',
|
||||
'duplicator'
|
||||
),
|
||||
'<span class="red">',
|
||||
'</span>'
|
||||
);
|
||||
?>
|
||||
</h2>
|
||||
<hr>
|
||||
</div>
|
||||
<!-- ==============================
|
||||
DRAG/DROP AREA -->
|
||||
<div id="dup-pro-import-upload-tabs-wrapper" class="dup-pro-tabs-wrapper margin-bottom-2 mock-blur" aria-hidden="true" style="position: relative;">
|
||||
<div id="dup-pro-import-mode-tab-header" class="clearfix margin-bottom-2">
|
||||
<div id="dup-pro-import-mode-upload-tab" class="active">
|
||||
<i class="far fa-file-archive"></i> Import File <sup> </sup>
|
||||
</div>
|
||||
<div id="dup-pro-import-mode-remote-tab">
|
||||
<i class="fas fa-link"></i> Import Link
|
||||
</div>
|
||||
</div>
|
||||
<div id="dup-pro-import-upload-file-tab" class="tab-content ">
|
||||
<div id="dup-pro-import-upload-file" class="dup-pro-import-upload-box fs-upload-element fs-upload fs-light">
|
||||
<div class="fs-upload-target">
|
||||
<div id="dup-pro-import-upload-file-content" class="center-xy">
|
||||
<i class="fa fa-download fa-2x">
|
||||
</i>
|
||||
<span class="dup-drag-drop-message">
|
||||
Drag & Drop Backup File Here
|
||||
</span>
|
||||
<input
|
||||
id="dup-import-dd-btn"
|
||||
type="button"
|
||||
class="button button-large button-default dup-import-button"
|
||||
name="dpro-files" value="Select File..."
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
<input class="fs-upload-input" type="file">
|
||||
</div>
|
||||
<div id="dup-pro-import-upload-file-footer">
|
||||
<i class="fas fa-question-circle fa-sm"></i>
|
||||
<b>Chunk Size:</b> 1 MB |
|
||||
<b>Max Size:
|
||||
</b> No Limit |
|
||||
<span class="pointer link-style">
|
||||
<i>Slow Upload</i>
|
||||
<i class="fas fa-question-circle fa-sm"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="dpro-pro-import-available-packages" class="view-list-item mock-blur" aria-hidden="true">
|
||||
<table class="dup-import-avail-packs packages-list">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="name">Backups</th>
|
||||
<th class="size">Size</th>
|
||||
<th class="created">Created</th>
|
||||
<th class="funcs">Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="dup-pro-import-package is-importable" data-path="">
|
||||
<td class="name">
|
||||
<span class="text">20230101_duplicator_package_49809197bde745059228_20221004184822_archive.daf</span>
|
||||
</td>
|
||||
<td class="size">62.67 MB</td>
|
||||
<td class="created">2022-10-04 00:00:00</td>
|
||||
<td class="funcs">
|
||||
<div class="actions">
|
||||
<button type="button" class="button dup-pro-import-action-package-detail-toggle">
|
||||
<i class="fa fa-caret-down"></i> Details
|
||||
</button>
|
||||
<span class="separator"></span>
|
||||
<button type="button" class="dup-pro-import-action-remove button button-secondary">
|
||||
<i class="fa fa-ban"></i> Remove
|
||||
</button>
|
||||
<span class="separator"></span>
|
||||
<button type="button" class="dup-pro-import-action-install button button-primary" data-install-url="">
|
||||
<i class="fa fa-bolt fa-sm"></i> Continue
|
||||
</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="dup-pro-import-package is-importable" data-path="">
|
||||
<td class="name">
|
||||
<span class="text">20230101_duplicator_package_49809197bde745059228_20221004184822_archive.daf</span>
|
||||
</td>
|
||||
<td class="size">62.67 MB</td>
|
||||
<td class="created">2022-10-04 00:00:00</td>
|
||||
<td class="funcs">
|
||||
<div class="actions">
|
||||
<button type="button" class="button dup-pro-import-action-package-detail-toggle">
|
||||
<i class="fa fa-caret-down"></i> Details
|
||||
</button>
|
||||
<span class="separator"></span>
|
||||
<button type="button" class="dup-pro-import-action-remove button button-secondary">
|
||||
<i class="fa fa-ban"></i> Remove
|
||||
</button>
|
||||
<span class="separator"></span>
|
||||
<button type="button" class="dup-pro-import-action-install button button-primary" data-install-url="">
|
||||
<i class="fa fa-bolt fa-sm"></i> Continue
|
||||
</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="dup-pro-import-package is-importable" data-path="">
|
||||
<td class="name">
|
||||
<span class="text">20230101_duplicator_package_49809197bde745059228_20221004184822_archive.daf</span>
|
||||
</td>
|
||||
<td class="size">62.67 MB</td>
|
||||
<td class="created">2022-10-04 00:00:00</td>
|
||||
<td class="funcs">
|
||||
<div class="actions">
|
||||
<button type="button" class="button dup-pro-import-action-package-detail-toggle">
|
||||
<i class="fa fa-caret-down"></i> Details
|
||||
</button>
|
||||
<span class="separator"></span>
|
||||
<button type="button" class="dup-pro-import-action-remove button button-secondary">
|
||||
<i class="fa fa-ban"></i> Remove
|
||||
</button>
|
||||
<span class="separator"></span>
|
||||
<button type="button" class="dup-pro-import-action-install button button-primary" data-install-url="">
|
||||
<i class="fa fa-bolt fa-sm"></i> Continue
|
||||
</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="dup-pro-import-package is-importable" data-path="">
|
||||
<td class="name">
|
||||
<span class="text">20230101_duplicator_package_49809197bde745059228_20221004184822_archive.daf</span>
|
||||
</td>
|
||||
<td class="size">62.67 MB</td>
|
||||
<td class="created">2022-10-04 00:00:00</td>
|
||||
<td class="funcs">
|
||||
<div class="actions">
|
||||
<button type="button" class="button dup-pro-import-action-package-detail-toggle">
|
||||
<i class="fa fa-caret-down"></i> Details
|
||||
</button>
|
||||
<span class="separator"></span>
|
||||
<button type="button" class="dup-pro-import-action-remove button button-secondary">
|
||||
<i class="fa fa-ban"></i> Remove
|
||||
</button>
|
||||
<span class="separator"></span>
|
||||
<button type="button" class="dup-pro-import-action-install button button-primary" data-install-url="">
|
||||
<i class="fa fa-bolt fa-sm"></i> Continue
|
||||
</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="dup-pro-import-package is-importable" data-path="">
|
||||
<td class="name">
|
||||
<span class="text">20230101_duplicator_package_49809197bde745059228_20221004184822_archive.daf</span>
|
||||
</td>
|
||||
<td class="size">62.67 MB</td>
|
||||
<td class="created">2022-10-04 00:00:00</td>
|
||||
<td class="funcs">
|
||||
<div class="actions">
|
||||
<button type="button" class="button dup-pro-import-action-package-detail-toggle">
|
||||
<i class="fa fa-caret-down"></i> Details
|
||||
</button>
|
||||
<span class="separator"></span>
|
||||
<button type="button" class="dup-pro-import-action-remove button button-secondary">
|
||||
<i class="fa fa-ban"></i> Remove
|
||||
</button>
|
||||
<span class="separator"></span>
|
||||
<button type="button" class="dup-pro-import-action-install button button-primary" data-install-url="">
|
||||
<i class="fa fa-bolt fa-sm"></i> Continue
|
||||
</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php TplMng::getInstance()->render(
|
||||
'parts/Education/static-popup',
|
||||
array(
|
||||
'title' => __('Overwrite a WordPress site with Drag and Drop Import!', 'duplicator'),
|
||||
'warning-text' => __('Drag and Drop Import is not available in Duplicator Lite!', 'duplicator'),
|
||||
'content-tpl' => 'mocks/import/content-popup',
|
||||
'upsell-url' => LinkManager::getCampaignUrl('blurred-mocks', 'Import')
|
||||
),
|
||||
true
|
||||
); ?>
|
||||
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
<p>
|
||||
<?php
|
||||
_e(
|
||||
'Recovery Points provides protection against mistakes and bad updates by letting you quickly rollback your system to a known, good state.',
|
||||
'duplicator'
|
||||
);
|
||||
?>
|
||||
</p>
|
||||
@@ -0,0 +1,123 @@
|
||||
<?php
|
||||
|
||||
use Duplicator\Core\Views\TplMng;
|
||||
use Duplicator\Utils\LinkManager;
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
<div class="mock-blur" aria-hidden="true">
|
||||
<h2 class="margin-bottom-0"><i class="fas fa-undo-alt"></i> <?php esc_html_e('Recovery Point', 'duplicator') ?></h2>
|
||||
<hr>
|
||||
|
||||
<p class="margin-bottom-1">
|
||||
<?php esc_html_e('Quickly restore this site to a specific point in time.', 'duplicator') ?>
|
||||
<span class="link-style dup-pro-open-help-link"><?php esc_html_e('Need more help?', 'duplicator') ?></span>
|
||||
</p>
|
||||
<div class="dup-pro-recovery-details-max-width-wrapper">
|
||||
<form id="dpro-recovery-form" method="post">
|
||||
<div class="dup-pro-recovery-widget-wrapper">
|
||||
<div class="dup-pro-recovery-point-details margin-bottom-1">
|
||||
<div class="dup-pro-recovery-active-link-wrapper">
|
||||
<div class="dup-pro-recovery-active-link-header">
|
||||
<i class="fas fa-undo-alt main-icon"></i>
|
||||
<div class="main-title">
|
||||
Recovery point is active <i class="fas fa-question-circle fa-sm"></i>
|
||||
</div>
|
||||
<div class="main-subtitle margin-bottom-1">
|
||||
<b>Status:</b>
|
||||
<span class="dup-pro-recovery-status green">ready</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dup-pro-recovery-package-info margin-bottom-1">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Name:</td>
|
||||
<td><b>20230101_duplicatorrecovery</b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Date:</td>
|
||||
<td><b>2023-01-01 00:00:00</b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Age:</td>
|
||||
<td>
|
||||
<b>Created 0 hours ago.</b>
|
||||
<i>All changes made after package creation will be lost.</i>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dup-pro-recovery-point-selector">
|
||||
<div class="dup-pro-recovery-point-selector-area-wrapper">
|
||||
<span class="dup-pro-opening-packages-windows">
|
||||
<a href="#">[Create New]</a>
|
||||
</span>
|
||||
<label>
|
||||
<i class="fas fa-question-circle fa-sm">
|
||||
</i>
|
||||
<b>Step 1 :</b> <i>Choose Recovery Point Backup</i>
|
||||
</label>
|
||||
<div class="dup-pro-recovery-point-selector-area">
|
||||
<select class="recovery-select" name="recovery_package">
|
||||
<option value=""> -- Not selected --</option>
|
||||
<optgroup label="2023/01/01">
|
||||
<option selected="selected">
|
||||
[2023-01-01 00:00:00] 20230101_duplicatorrecovery
|
||||
</option>
|
||||
</optgroup>
|
||||
</select>
|
||||
<button type="button" class="button recovery-reset">Reset</button>
|
||||
<button type="button" class="button button-primary recovery-set">Set</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dup-pro-recovery-point-actions">
|
||||
<label>
|
||||
<i class="fas fa-question-circle fa-sm">
|
||||
</i>
|
||||
<b>Step 2 :</b> <i>Copy Recovery URL & Store in Safe Place</i>
|
||||
</label>
|
||||
<div class="copy-link">
|
||||
<div class="content">
|
||||
http://duplicator.com//recover/20230101_duplicatorrecovery_1c38a5948c5a3d2b5881_20230205120338_installer-backup.php
|
||||
</div>
|
||||
<i class="far fa-copy copy-icon"></i>
|
||||
</div>
|
||||
<div class="dup-pro-recovery-buttons">
|
||||
<a href="#"
|
||||
class="button button-primary dup-pro-launch " target="_blank">
|
||||
<i class="fas fa-external-link-alt"></i> Launch Recovery </a>
|
||||
<button type="button" class="button button-primary dup-pro-recovery-download-launcher ">
|
||||
<i class="fa fa-rocket"></i> Download
|
||||
</button>
|
||||
<button type="button" class="button button-primary dup-pro-recovery-copy-url">
|
||||
<i class="far fa-copy copy-icon"></i> Copy URL
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php TplMng::getInstance()->render(
|
||||
'parts/Education/static-popup',
|
||||
array(
|
||||
'title' => __('Rollback your sites with Recovery Points!', 'duplicator'),
|
||||
'warning-text' => __('Recovery Points are not supported in Duplicator Lite!', 'duplicator'),
|
||||
'content-tpl' => 'mocks/recovery/content-popup',
|
||||
'upsell-url' => LinkManager::getCampaignUrl('blurred-mocks', 'Recovery')
|
||||
),
|
||||
true
|
||||
); ?>
|
||||
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
<p>
|
||||
<?php
|
||||
_e(
|
||||
'Scheduled Backups provide peace of mind and ensure that critical data can be ' .
|
||||
'quickly and easily restored in the event of a disaster or loss. Duplicator Pro supports Hourly, Daily, Weekly and Monthly scheduled backups.',
|
||||
'duplicator'
|
||||
);
|
||||
?>
|
||||
</p>
|
||||
<p>
|
||||
<?php
|
||||
_e(
|
||||
'Supported Cloud Storage: Google Drive, Dropbox, Microsoft One Drive, Amazon S3 (or any compatible S3 service), and FTP/SFTP Storage.',
|
||||
'duplicator'
|
||||
);
|
||||
?>
|
||||
</p>
|
||||
@@ -0,0 +1,285 @@
|
||||
<?php
|
||||
|
||||
use Duplicator\Core\Views\TplMng;
|
||||
use Duplicator\Utils\LinkManager;
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
<div class="wrap">
|
||||
<h1><?php esc_html_e('Schedules', 'duplicator') ?></h1>
|
||||
<div class="mock-blur">
|
||||
<!-- ====================
|
||||
TOOL-BAR -->
|
||||
<table class="dpro-edit-toolbar">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<select id="bulk_action">
|
||||
<option selected="selected">Bulk Actions</option>
|
||||
<option>Activate</option>
|
||||
<option>Deactivate</option>
|
||||
<option>Delete</option>
|
||||
</select>
|
||||
<input type="button" id="dup-schedule-bulk-apply" class="button action" value="Apply">
|
||||
<span class="btn-separator"></span>
|
||||
<a href="#" class="button grey-icon dup-schedule-settings"><i class="fas fa-sliders-h fa-fw"></i></a>
|
||||
<a href="#" id="btn-logs-dialog" class="button dup-schedule-templates"><i class="far fa-clone"></i></a>
|
||||
</td>
|
||||
<td>
|
||||
<div class="btnnav">
|
||||
<a href="#" class="button dup-schedule-add-new">Add New</a>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<form id="dup-schedule-form" action="#" method="post">
|
||||
<!-- ====================
|
||||
LIST ALL SCHEDULES -->
|
||||
<table class="widefat schedule-tbl">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:10px;"><input type="checkbox" id="dpro-chk-all"></th>
|
||||
<th style="width:255px;">Name</th>
|
||||
<th>Storage</th>
|
||||
<th>Runs Next</th>
|
||||
<th>Last Ran</th>
|
||||
<th>Active</th>
|
||||
<th class="dup-col-recovery">Recovery</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="schedule-row">
|
||||
<td>
|
||||
<input type="checkbox" class="item-chk">
|
||||
</td>
|
||||
<td>
|
||||
<a id="text-51" href="#" class="name">Daily Schedule - Default Local</a>
|
||||
</td>
|
||||
<td>Default</td>
|
||||
<td>January 1, 2023 0:00 - Daily</td>
|
||||
<td>
|
||||
December 31, 2022 0:00
|
||||
</td>
|
||||
<td><b><span class="green">Yes</span></b></td>
|
||||
<td class="dup-col-recovery">
|
||||
<span class="dup-template-recoveable-info-wrapper">Available<sup><i class="fas fa-undo-alt fa-fw fa-sm"></i></sup></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="schedule-row">
|
||||
<td>
|
||||
<input type="checkbox" class="item-chk">
|
||||
</td>
|
||||
<td>
|
||||
<a id="text-51" href="#" class="name">Weekly Schedule - DropBox</a>
|
||||
</td>
|
||||
<td>DropBox</td>
|
||||
<td>January 8, 2023 0:00 - Weekly</td>
|
||||
<td>
|
||||
January 1, 2023 0:00
|
||||
</td>
|
||||
<td><b><span class="green">Yes</span></b></td>
|
||||
<td class="dup-col-recovery">
|
||||
<span class="dup-template-recoveable-info-wrapper">Available<sup><i class="fas fa-undo-alt fa-fw fa-sm"></i></sup></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="schedule-row">
|
||||
<td>
|
||||
<input type="checkbox" class="item-chk">
|
||||
</td>
|
||||
<td>
|
||||
<a id="text-51" href="#" class="name">Monthly Schedule - GDrive</a>
|
||||
</td>
|
||||
<td>Google Drive</td>
|
||||
<td>February 1, 2023 0:00 - Weekly</td>
|
||||
<td>
|
||||
January 1, 2023 0:00
|
||||
</td>
|
||||
<td><b><span class="green">Yes</span></b></td>
|
||||
<td class="dup-col-recovery">
|
||||
<span class="dup-template-recoveable-info-wrapper">Available<sup><i class="fas fa-undo-alt fa-fw fa-sm"></i></sup></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="schedule-row">
|
||||
<td>
|
||||
<input type="checkbox" class="item-chk">
|
||||
</td>
|
||||
<td>
|
||||
<a id="text-51" href="#" class="name">Monthly Schedule - All Storages</a>
|
||||
</td>
|
||||
<td>Local, Google Drive, FTP, SFTP,</br>S3, OneDrive, DropBox</td>
|
||||
<td>February 1, 2023 0:00 - Weekly</td>
|
||||
<td>
|
||||
January 1, 2023 0:00
|
||||
</td>
|
||||
<td><b><span class="green">Yes</span></b></td>
|
||||
<td class="dup-col-recovery">
|
||||
<span class="dup-template-recoveable-info-wrapper">Available<sup><i class="fas fa-undo-alt fa-fw fa-sm"></i></sup></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="schedule-row">
|
||||
<td>
|
||||
<input type="checkbox" class="item-chk">
|
||||
</td>
|
||||
<td>
|
||||
<a id="text-51" href="#" class="name">Daily Schedule - Default Local</a>
|
||||
</td>
|
||||
<td>Default</td>
|
||||
<td>January 1, 2023 0:00 - Daily</td>
|
||||
<td>
|
||||
December 31, 2022 0:00
|
||||
</td>
|
||||
<td><b><span class="green">Yes</span></b></td>
|
||||
<td class="dup-col-recovery">
|
||||
<span class="dup-template-recoveable-info-wrapper">Available<sup><i class="fas fa-undo-alt fa-fw fa-sm"></i></sup></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="schedule-row">
|
||||
<td>
|
||||
<input type="checkbox" class="item-chk">
|
||||
</td>
|
||||
<td>
|
||||
<a id="text-51" href="#" class="name">Weekly Schedule - DropBox</a>
|
||||
</td>
|
||||
<td>DropBox</td>
|
||||
<td>January 8, 2023 0:00 - Weekly</td>
|
||||
<td>
|
||||
January 1, 2023 0:00
|
||||
</td>
|
||||
<td><b><span class="green">Yes</span></b></td>
|
||||
<td class="dup-col-recovery">
|
||||
<span class="dup-template-recoveable-info-wrapper">Available<sup><i class="fas fa-undo-alt fa-fw fa-sm"></i></sup></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="schedule-row">
|
||||
<td>
|
||||
<input type="checkbox" class="item-chk">
|
||||
</td>
|
||||
<td>
|
||||
<a id="text-51" href="#" class="name">Monthly Schedule - GDrive</a>
|
||||
</td>
|
||||
<td>Google Drive</td>
|
||||
<td>February 1, 2023 0:00 - Weekly</td>
|
||||
<td>
|
||||
January 1, 2023 0:00
|
||||
</td>
|
||||
<td><b><span class="green">Yes</span></b></td>
|
||||
<td class="dup-col-recovery">
|
||||
<span class="dup-template-recoveable-info-wrapper">Available<sup><i class="fas fa-undo-alt fa-fw fa-sm"></i></sup></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="schedule-row">
|
||||
<td>
|
||||
<input type="checkbox" class="item-chk">
|
||||
</td>
|
||||
<td>
|
||||
<a id="text-51" href="#" class="name">Monthly Schedule - All Storages</a>
|
||||
</td>
|
||||
<td>Local, Google Drive, FTP, SFTP,</br>S3, OneDrive, DropBox</td>
|
||||
<td>February 1, 2023 0:00 - Weekly</td>
|
||||
<td>
|
||||
January 1, 2023 0:00
|
||||
</td>
|
||||
<td><b><span class="green">Yes</span></b></td>
|
||||
<td class="dup-col-recovery">
|
||||
<span class="dup-template-recoveable-info-wrapper">Available<sup><i class="fas fa-undo-alt fa-fw fa-sm"></i></sup></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="schedule-row">
|
||||
<td>
|
||||
<input type="checkbox" class="item-chk">
|
||||
</td>
|
||||
<td>
|
||||
<a id="text-51" href="#" class="name">Daily Schedule - Default Local</a>
|
||||
</td>
|
||||
<td>Default</td>
|
||||
<td>January 1, 2023 0:00 - Daily</td>
|
||||
<td>
|
||||
December 31, 2022 0:00
|
||||
</td>
|
||||
<td><b><span class="green">Yes</span></b></td>
|
||||
<td class="dup-col-recovery">
|
||||
<span class="dup-template-recoveable-info-wrapper">Available<sup><i class="fas fa-undo-alt fa-fw fa-sm"></i></sup></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="schedule-row">
|
||||
<td>
|
||||
<input type="checkbox" class="item-chk">
|
||||
</td>
|
||||
<td>
|
||||
<a id="text-51" href="#" class="name">Weekly Schedule - DropBox</a>
|
||||
</td>
|
||||
<td>DropBox</td>
|
||||
<td>January 8, 2023 0:00 - Weekly</td>
|
||||
<td>
|
||||
January 1, 2023 0:00
|
||||
</td>
|
||||
<td><b><span class="green">Yes</span></b></td>
|
||||
<td class="dup-col-recovery">
|
||||
<span class="dup-template-recoveable-info-wrapper">Available<sup><i class="fas fa-undo-alt fa-fw fa-sm"></i></sup></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="schedule-row">
|
||||
<td>
|
||||
<input type="checkbox" class="item-chk">
|
||||
</td>
|
||||
<td>
|
||||
<a id="text-51" href="#" class="name">Monthly Schedule - GDrive</a>
|
||||
</td>
|
||||
<td>Google Drive</td>
|
||||
<td>February 1, 2023 0:00 - Weekly</td>
|
||||
<td>
|
||||
January 1, 2023 0:00
|
||||
</td>
|
||||
<td><b><span class="green">Yes</span></b></td>
|
||||
<td class="dup-col-recovery">
|
||||
<span class="dup-template-recoveable-info-wrapper">Available<sup><i class="fas fa-undo-alt fa-fw fa-sm"></i></sup></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="schedule-row">
|
||||
<td>
|
||||
<input type="checkbox" class="item-chk">
|
||||
</td>
|
||||
<td>
|
||||
<a id="text-51" href="#" class="name">Monthly Schedule - All Storages</a>
|
||||
</td>
|
||||
<td>Local, Google Drive, FTP, SFTP,</br>S3, OneDrive, DropBox</td>
|
||||
<td>February 1, 2023 0:00 - Weekly</td>
|
||||
<td>
|
||||
January 1, 2023 0:00
|
||||
</td>
|
||||
<td><b><span class="green">Yes</span></b></td>
|
||||
<td class="dup-col-recovery">
|
||||
<span class="dup-template-recoveable-info-wrapper">Available<sup><i class="fas fa-undo-alt fa-fw fa-sm"></i></sup></span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th colspan="7" style="text-align:right; white-space: nowrap; font-size:12px">
|
||||
Total: 12 | Active: 12 | Time: <span id="dpro-clock-container">00:00:01</span></th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
TplMng::getInstance()->render(
|
||||
'parts/Education/static-popup',
|
||||
array(
|
||||
'title' => __('Automate your workflow with scheduled backups!', 'duplicator'),
|
||||
'warning-text' => __('Duplicator Lite does not support scheduled backups!', 'duplicator'),
|
||||
'content-tpl' => 'mocks/schedule/content-popup',
|
||||
'upsell-url' => LinkManager::getCampaignUrl('blurred-mocks', 'Schedules')
|
||||
)
|
||||
);
|
||||
?>
|
||||
@@ -0,0 +1,129 @@
|
||||
<?php
|
||||
|
||||
use Duplicator\Core\Views\TplMng;
|
||||
use Duplicator\Utils\LinkManager;
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
<h3 class="title"><?php _e("Roles and Permissions", "duplicator"); ?></h3>
|
||||
<hr size="1">
|
||||
<div class="access-mock mock-blur">
|
||||
<p>
|
||||
<?php _e("Select the user roles and/or users that are allowed to manage different aspects of Duplicator.", "duplicator"); ?> <br>
|
||||
<?php _e("By default, all permissions are provided only to administrator users.", "duplicator") ?> <br>
|
||||
<?php _e("Some capabilities depend on others so If you select for example storage capability automatically the Backup " .
|
||||
"read and Backup edit capabilities are assigned", "duplicator") ?><br>
|
||||
<b><?php _e("It is not possible to self remove the manage settings capabilities.", "duplicator"); ?></b>
|
||||
</p>
|
||||
<table class="form-table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row"><?php _e("Backup Read ", "duplicator") ?><i class="fas fa-question-circle fa-sm"></i></th>
|
||||
<td>
|
||||
<div class="mock-select2">
|
||||
<div class="select2-option">
|
||||
<?php _e("Administrator", "duplicator") ?>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><?php _e(" - Backup Edit ", "duplicator") ?><i class="fas fa-question-circle fa-sm"></i></th>
|
||||
<td>
|
||||
<div class="mock-select2">
|
||||
<div class="select2-option">
|
||||
<?php _e("Administrator", "duplicator") ?>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><?php _e(" - - Manage Schedules ", "duplicator") ?><i class="fas fa-question-circle fa-sm"></i></th>
|
||||
<td>
|
||||
<div class="mock-select2">
|
||||
<div class="select2-option">
|
||||
<?php _e("Administrator", "duplicator") ?>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><?php _e(" - - Manage Storages ", "duplicator") ?><i class="fas fa-question-circle fa-sm"></i></th>
|
||||
<td>
|
||||
<div class="mock-select2">
|
||||
<div class="select2-option">
|
||||
<?php _e("Administrator", "duplicator") ?>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><?php _e(" - Restore Backup ", "duplicator") ?><i class="fas fa-question-circle fa-sm"></i></th>
|
||||
<td>
|
||||
<div class="mock-select2">
|
||||
<div class="select2-option">
|
||||
<?php _e("Administrator", "duplicator") ?>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><?php _e(" - - Backup Import ", "duplicator") ?><i class="fas fa-question-circle fa-sm"></i></th>
|
||||
<td>
|
||||
<div class="mock-select2">
|
||||
<div class="select2-option">
|
||||
<?php _e("Administrator", "duplicator") ?>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><?php _e(" - Backup Export ", "duplicator") ?><i class="fas fa-question-circle fa-sm"></i></th>
|
||||
<td>
|
||||
<div class="mock-select2">
|
||||
<div class="select2-option">
|
||||
<?php _e("Administrator", "duplicator") ?>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><?php _e(" - Manage Settings ", "duplicator") ?><i class="fas fa-question-circle fa-sm"></i></th>
|
||||
<td>
|
||||
<div class="mock-select2">
|
||||
<div class="select2-option">
|
||||
<?php _e("Administrator", "duplicator") ?>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><?php _e(" - - Manage License Settings ", "duplicator") ?><i class="fas fa-question-circle fa-sm"></i></th>
|
||||
<td>
|
||||
<div class="mock-select2">
|
||||
<div class="select2-option">
|
||||
<?php _e("Administrator", "duplicator") ?>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<?php TplMng::getInstance()->render(
|
||||
'parts/Education/static-popup',
|
||||
array(
|
||||
'title' => __('Advanced Backup Permissions', 'duplicator'),
|
||||
'warning-text' => __('Advanced Backup Permissions are not available in Duplicator Lite!', 'duplicator'),
|
||||
'content-tpl' => 'mocks/settings/access/content-popup',
|
||||
'upsell-url' => LinkManager::getCampaignUrl('blurred-mocks', 'Settings Access Tab')
|
||||
),
|
||||
true
|
||||
); ?>
|
||||
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
<p>
|
||||
<?php
|
||||
printf(
|
||||
__(
|
||||
'Elevate your backup capabilities with advanced permissions, allowing for precise control over the creation, ' .
|
||||
'exportation, restoration, and management of control settings. Enjoy granular access control to ensure only ' .
|
||||
'authorized users can perform these critical functions.',
|
||||
'duplicator'
|
||||
)
|
||||
);
|
||||
?>
|
||||
</p>
|
||||
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
use Duplicator\Utils\LinkManager;
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
|
||||
<div class="advanced-storages-popup-content">
|
||||
<img src="<?php echo esc_url(DUPLICATOR_PLUGIN_URL . "assets/img/duplicator-header-logo.svg"); ?>" />
|
||||
<?php esc_html_e('Store to Multiple Endpoints with Duplicator Pro', 'duplicator'); ?>
|
||||
<ul>
|
||||
<?php foreach ($tplData['storages'] as $storage) : ?>
|
||||
<li>
|
||||
<?php if (isset($storage['iconUrl'])) : ?>
|
||||
<img src="<?php echo esc_url($storage['iconUrl']); ?>" class="storage-icon"/>
|
||||
<?php elseif (isset($storage['fa-class'])) : ?>
|
||||
<i class="fab <?php echo esc_attr($storage['fa-class']); ?> fa-fw"></i>
|
||||
<?php endif; ?>
|
||||
<?php echo esc_html($storage['title']); ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<i>
|
||||
<?php esc_html_e('Set up one-time storage locations and automatically push the Backup to your destination.', 'duplicator'); ?><br>
|
||||
</i>
|
||||
<p>
|
||||
<a href="<?php echo esc_url(LinkManager::getCampaignUrl($tplData['utm_medium'], 'Popup Upgrade Now')); ?>"
|
||||
target="_blank"
|
||||
id="dup-storage-upgrade-btn"
|
||||
class="dup-btn dup-btn-green dup-btn-lg" style="padding: 12px 40px;">
|
||||
<?php esc_html_e('Upgrade Now', 'duplicator'); ?>
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,172 @@
|
||||
<?php
|
||||
|
||||
use Duplicator\Controllers\StorageController;
|
||||
use Duplicator\Utils\LinkManager;
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
<style>
|
||||
/*Detail Tables */
|
||||
table.storage-tbl td {
|
||||
height: 45px
|
||||
}
|
||||
|
||||
table.storage-tbl input[type='checkbox'] {
|
||||
margin-left: 5px
|
||||
}
|
||||
|
||||
table.storage-tbl img {
|
||||
vertical-align: middle;
|
||||
margin-right: 5px;
|
||||
width: 20px
|
||||
}
|
||||
|
||||
table tr.storage-detail td {
|
||||
padding: 3px 0 5px 20px
|
||||
}
|
||||
|
||||
table tr.storage-detail div {
|
||||
line-height: 20px;
|
||||
padding: 2px 2px 2px 15px
|
||||
}
|
||||
|
||||
table tr.storage-detail td button {
|
||||
margin: 5px 0 5px 0 !important;
|
||||
display: block
|
||||
}
|
||||
|
||||
tr.storage-detail label {
|
||||
min-width: 150px;
|
||||
display: inline-block;
|
||||
font-weight: bold
|
||||
}
|
||||
|
||||
table.storage-tbl input[type='checkbox'].item-chk {
|
||||
opacity: 0.7;
|
||||
background: rgba(255,255,255,.5);
|
||||
border-color: rgba(220,220,222,.75);
|
||||
box-shadow: inset 0 1px 2px rgb(0 0 0 / 4%);
|
||||
color: rgba(44,51,56,.5);
|
||||
}
|
||||
</style>
|
||||
<div class="wrap"><h1><?php _e('Storage', 'duplicator');?></h1>
|
||||
<div class="notice notice-error">
|
||||
<p><strong><?php echo __('Remote Cloud Backups is a PRO feature', 'duplicator'); ?></strong></p>
|
||||
<p><?php echo __('Back up to Dropbox, FTP, Google Drive, OneDrive, Amazon S3 or Amazon S3 compatible for safe off-site storage.', 'duplicator'); ?></p>
|
||||
<p>
|
||||
<a href="<?php echo esc_url(LinkManager::getCampaignUrl('storage-page', 'Notice Upgrade Now')); ?>"
|
||||
class="dup-btn-green dup-btn-md dup-btn"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer">
|
||||
<?php echo __('Upgrade Now', 'duplicator'); ?>
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
<!-- ====================
|
||||
TOOL-BAR -->
|
||||
<table class="dpro-edit-toolbar">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<select id="bulk_action">
|
||||
<option value="-1"><?php _e('Bulk Actions', 'duplicator');?></option>
|
||||
<option value="1" title="Delete selected storage endpoint(s)">
|
||||
<?php _e('Delete', 'duplicator');?>
|
||||
</option>
|
||||
</select>
|
||||
<input type="button" class="button action" value="<?php esc_html_e('Apply', 'duplicator') ?>">
|
||||
<span class="btn-separator"></span>
|
||||
<a href="#" class="button grey-icon"
|
||||
title="<?php esc_attr_e('Settings', 'duplicator') ?>">
|
||||
<i class="fas fa-sliders-h fa-fw"></i>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<div id="new_storage" class="btnnav">
|
||||
<a href="#" id="duplicator-pro-add-new-storage" class="button"><?php _e('Add New', 'duplicator'); ?></a>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<form id="dup-storage-form" action="#"
|
||||
method="post">
|
||||
<!-- ====================
|
||||
LIST ALL STORAGE -->
|
||||
<table class="widefat storage-tbl">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:10px;"><input type="checkbox" id="dpro-chk-all" title="Select all storage endpoints"></th>
|
||||
<th style="width:275px;"><?php _e('Name', 'duplicator'); ?></th>
|
||||
<th><?php _e('Type', 'duplicator'); ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr id="main-view--2" class="storage-row" data-id="-2" data-name="Default" data-typeid="0"
|
||||
data-typename="Local">
|
||||
<td>
|
||||
<input type="checkbox" onclick="return false" checked="checked">
|
||||
</td>
|
||||
<td>
|
||||
<a href="#"><b><?php esc_html_e('Default', 'duplicator') ?></b></a>
|
||||
</td>
|
||||
<td>
|
||||
<i class="far fa-hdd fa-fw"></i> <?php esc_html_e('Local', 'duplicator') ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php foreach ($tplData['storages'] as $storage) : ?>
|
||||
<tr class="storage-row" data-name="<?php echo esc_attr($storage['title']); ?>">
|
||||
<td>
|
||||
<input class="item-chk" type="checkbox">
|
||||
</td>
|
||||
<td>
|
||||
<a href="#"><b><?php echo $storage['title']; ?></b></a>
|
||||
</td>
|
||||
<td>
|
||||
<?php if (isset($storage['fa-class'])) : ?>
|
||||
<i class="<?php echo $storage['fa-class']; ?> fa-fw"></i>
|
||||
<?php elseif (isset($storage['iconUrl'])) : ?>
|
||||
<img src="<?php echo $storage['iconUrl']; ?>" alt="<?php echo $storage['label']; ?>" title="<?php echo $storage['label']; ?>">
|
||||
<?php endif; ?>
|
||||
<?php echo $storage['label']; ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th colspan="8" style="text-align:right; font-size:12px"><?php printf(__('Total: %s', 'duplicator'), count($tplData['storages'])); ?></th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
<?php
|
||||
$storageAlert = StorageController::getDialogBox('storage-page');
|
||||
?>
|
||||
<script>
|
||||
jQuery(document).ready(function ($) {
|
||||
$(".storage-tbl tr a, .item-chk, #new_storage").click(function (e) {
|
||||
e.preventDefault();
|
||||
let btn = $('#dup-storage-upgrade-btn');
|
||||
let baseUrl = "<?php echo LinkManager::getCampaignUrl('storage-page', 'Popup Upgrade Now'); ?>";
|
||||
let url = baseUrl + '&utm_term=New+Storage';
|
||||
|
||||
if ($(this).is("a") || $(this).hasClass("item-chk")) {
|
||||
url = baseUrl + '&utm_term=' + encodeURIComponent($(this).closest('tr').data('name'));
|
||||
}
|
||||
|
||||
btn.attr('href', url);
|
||||
|
||||
<?php $storageAlert->showAlert(); ?>
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
<p>
|
||||
<?php
|
||||
_e(
|
||||
'If you install the same theme, plugins or content on all your WordPress sites then Duplicator can save you a lot of time.',
|
||||
'duplicator'
|
||||
);
|
||||
?>
|
||||
</p>
|
||||
<p>
|
||||
<?php
|
||||
_e(
|
||||
'Instead of manually configuring the same themes and plugins over and over, just configure one site and bundle it into a Duplicator Backup. ' .
|
||||
'Install the Backup to create a pre-configured site on as many locations as you want!',
|
||||
'duplicator'
|
||||
);
|
||||
?>
|
||||
</p>
|
||||
@@ -0,0 +1,200 @@
|
||||
<?php
|
||||
|
||||
use Duplicator\Core\Views\TplMng;
|
||||
use Duplicator\Utils\LinkManager;
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
<form class="mock-blur" style="margin-top: 20px;" action="#" method="post">
|
||||
<!-- ====================
|
||||
TOOL-BAR -->
|
||||
<table style="margin-bottom: 10px; width: 100%;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<select id="bulk_action">
|
||||
<option value="-1" selected="selected">Bulk Actions</option>
|
||||
<option value="delete">Delete</option>
|
||||
</select>
|
||||
<input type="button" class="button action" value="Apply">
|
||||
</td>
|
||||
<td style="text-align: right;">
|
||||
<div class="btnnav">
|
||||
<a href="#" class="button dup-add-template-btn">Add New</a>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<!-- ====================
|
||||
LIST ALL SCHEDULES -->
|
||||
<table class="widefat dup-template-list-tbl striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="col-check"><input type="checkbox" title="Select all Backups"></th>
|
||||
<th class="col-name">Name</th>
|
||||
<th class="col-recover">Recovery</th>
|
||||
<th class="col-empty"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="col-check">
|
||||
<input type="checkbox" disabled="">
|
||||
</td>
|
||||
<td class="col-name">
|
||||
<a href="#" class="name">Default </a>
|
||||
</td>
|
||||
<td class="col-recover">
|
||||
<span class="dup-template-recoveable-info-wrapper">
|
||||
Available<sup><i class="fas fa-undo-alt fa-fw fa-sm"></i></sup>
|
||||
</span>
|
||||
</td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-check">
|
||||
<input name="selected_id[]" type="checkbox" value="16" class="item-chk">
|
||||
</td>
|
||||
<td class="col-name">
|
||||
<a href="#" class="name">Full site backup</a>
|
||||
</td>
|
||||
<td class="col-recover">
|
||||
<span class="dup-template-recoveable-info-wrapper">
|
||||
Available<sup><i class="fas fa-undo-alt fa-fw fa-sm"></i></sup>
|
||||
</span>
|
||||
</td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="col-check">
|
||||
<input name="selected_id[]" type="checkbox" value="16" class="item-chk">
|
||||
</td>
|
||||
<td class="col-name">
|
||||
<a href="#" class="name">Database only backup</a>
|
||||
</td>
|
||||
<td class="col-recover">
|
||||
<span class="dup-template-recoveable-info-wrapper">
|
||||
<a href="#" id="dup-template-recoveable-info-2" class="dup-template-recoveable-info"><u>Disabled</u></a>
|
||||
</span>
|
||||
</td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="col-check">
|
||||
<input name="selected_id[]" type="checkbox" value="16" class="item-chk">
|
||||
</td>
|
||||
<td class="col-name">
|
||||
<a href="#" class="name">Uploads folder filtered</a>
|
||||
</td>
|
||||
<td class="col-recover">
|
||||
<span class="dup-template-recoveable-info-wrapper">
|
||||
Available<sup><i class="fas fa-undo-alt fa-fw fa-sm"></i></sup>
|
||||
</span>
|
||||
</td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="col-check">
|
||||
<input name="selected_id[]" type="checkbox" value="16" class="item-chk">
|
||||
</td>
|
||||
<td class="col-name">
|
||||
<a href="#" class="name">Non-WP tables filtered</a>
|
||||
</td>
|
||||
<td class="col-recover">
|
||||
<span class="dup-template-recoveable-info-wrapper">
|
||||
<a href="#" id="dup-template-recoveable-info-2" class="dup-template-recoveable-info"><u>Disabled</u></a>
|
||||
</span>
|
||||
</td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-check">
|
||||
<input name="selected_id[]" type="checkbox" value="16" class="item-chk">
|
||||
</td>
|
||||
<td class="col-name">
|
||||
<a href="#" class="name">Full site backup</a>
|
||||
</td>
|
||||
<td class="col-recover">
|
||||
<span class="dup-template-recoveable-info-wrapper">
|
||||
Available<sup><i class="fas fa-undo-alt fa-fw fa-sm"></i></sup>
|
||||
</span>
|
||||
</td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="col-check">
|
||||
<input name="selected_id[]" type="checkbox" value="16" class="item-chk">
|
||||
</td>
|
||||
<td class="col-name">
|
||||
<a href="#" class="name">Database only backup</a>
|
||||
</td>
|
||||
<td class="col-recover">
|
||||
<span class="dup-template-recoveable-info-wrapper">
|
||||
<a href="#" id="dup-template-recoveable-info-2" class="dup-template-recoveable-info"><u>Disabled</u></a>
|
||||
</span>
|
||||
</td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="col-check">
|
||||
<input name="selected_id[]" type="checkbox" value="16" class="item-chk">
|
||||
</td>
|
||||
<td class="col-name">
|
||||
<a href="#" class="name">Uploads folder filtered</a>
|
||||
</td>
|
||||
<td class="col-recover">
|
||||
<span class="dup-template-recoveable-info-wrapper">
|
||||
Available<sup><i class="fas fa-undo-alt fa-fw fa-sm"></i></sup>
|
||||
</span>
|
||||
</td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="col-check">
|
||||
<input name="selected_id[]" type="checkbox" value="16" class="item-chk">
|
||||
</td>
|
||||
<td class="col-name">
|
||||
<a href="#" class="name">Non-WP tables filtered</a>
|
||||
</td>
|
||||
<td class="col-recover">
|
||||
<span class="dup-template-recoveable-info-wrapper">
|
||||
<a href="#" id="dup-template-recoveable-info-2" class="dup-template-recoveable-info"><u>Disabled</u></a>
|
||||
</span>
|
||||
</td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th colspan="8" style="text-align:right; font-size:12px">
|
||||
Total: 2
|
||||
</th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</form>
|
||||
<?php TplMng::getInstance()->render(
|
||||
'parts/Education/static-popup',
|
||||
array(
|
||||
'title' => __('Easily customize your backups with templates!', 'duplicator'),
|
||||
'warning-text' => __('Templates are not available in Duplicator Lite!', 'duplicator'),
|
||||
'content-tpl' => 'mocks/templates/content-popup',
|
||||
'upsell-url' => LinkManager::getCampaignUrl('blurred-mocks', 'Templates')
|
||||
),
|
||||
true
|
||||
); ?>
|
||||
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
<p>
|
||||
<?php
|
||||
_e(
|
||||
'With manual transfers you can upload your backup to remote storages even after you have created them.',
|
||||
'duplicator'
|
||||
);
|
||||
?>
|
||||
</p>
|
||||
@@ -0,0 +1,236 @@
|
||||
<?php
|
||||
|
||||
use Duplicator\Core\Views\TplMng;
|
||||
use Duplicator\Utils\LinkManager;
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
|
||||
<div class="transfer-panel mock-blur">
|
||||
|
||||
<div class="transfer-hdr">
|
||||
<h2 class="title">
|
||||
<i class="fas fa-exchange-alt"></i> Manual Transfer
|
||||
</h2>
|
||||
<hr>
|
||||
</div>
|
||||
<!-- ===================
|
||||
STEP 1 -->
|
||||
<div id="step2-section">
|
||||
<div style="margin:0px 0 0px 0">
|
||||
<h3>Step 1: Choose Location</h3>
|
||||
<input style="display:none" type="radio" name="location" id="location-storage" checked="checked" onclick="DupPro.Pack.Transfer.ToggleLocation()">
|
||||
<label style="display:none" for="location-storage">Storage</label>
|
||||
<input style="display:none" type="radio" name="location" id="location-quick" onclick="DupPro.Pack.Transfer.ToggleLocation()">
|
||||
<label style="display:none" for="location-quick">Quick FTP Connect</label>
|
||||
</div>
|
||||
|
||||
<!-- STEP 1: STORAGE -->
|
||||
<table id="location-storage-opts" class="widefat">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="white-space: nowrap; width:10px;"></th>
|
||||
<th style="width:125px">Type</th>
|
||||
<th style="width:275px">Name</th>
|
||||
<th style="white-space: nowrap">Location</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="package-row alternate">
|
||||
<td>
|
||||
<input name="edit_id" type="hidden" value="1">
|
||||
<input class="duppro-storage-input" id="dup-chkbox-50" name="_storage_ids[]"
|
||||
data-parsley-errors-container="#storage_error_container" data-parsley-mincheck="1"
|
||||
data-parsley-required="true" type="checkbox" value="50">
|
||||
</td>
|
||||
<td>
|
||||
<label for="dup-chkbox-50" class="dup-store-lbl">
|
||||
<i class="fab fa-dropbox fa-fw"></i> Dropbox </label>
|
||||
</td>
|
||||
<td>
|
||||
<a href="?page=duplicator-pro-storage&tab=storage&inner_page=edit&storage_id=50" target="_blank">
|
||||
DropBox </a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://dropbox.com/home" target="_blank">https://dropbox.com/home</a> </td>
|
||||
</tr>
|
||||
|
||||
<tr class="package-row ">
|
||||
<td>
|
||||
<input name="edit_id" type="hidden" value="2">
|
||||
<input class="duppro-storage-input" id="dup-chkbox-53"
|
||||
name="_storage_ids[]" data-parsley-errors-container="#storage_error_container" type="checkbox" value="53">
|
||||
</td>
|
||||
<td>
|
||||
<label for="dup-chkbox-53" class="dup-store-lbl">
|
||||
<i class="fab fa-google-drive fa-fw"></i> Google Drive </label>
|
||||
</td>
|
||||
<td>
|
||||
<a href="?page=duplicator-pro-storage&tab=storage&inner_page=edit&storage_id=53" target="_blank">
|
||||
Google Drive </a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://drive.google.com/drive/" target="_blank">google://Duplicator Backups/duplicator.com</a> </td>
|
||||
</tr>
|
||||
|
||||
<tr class="package-row alternate">
|
||||
<td>
|
||||
<input name="edit_id" type="hidden" value="3">
|
||||
<input class="duppro-storage-input" id="dup-chkbox-54"
|
||||
name="_storage_ids[]" data-parsley-errors-container="#storage_error_container" type="checkbox" value="54">
|
||||
</td>
|
||||
<td>
|
||||
<label for="dup-chkbox-54" class="dup-store-lbl">
|
||||
<i class="fas fa-cloud fa-fw"></i> OneDrive </label>
|
||||
</td>
|
||||
<td>
|
||||
<a href="?page=duplicator-pro-storage&tab=storage&inner_page=edit&storage_id=54" target="_blank">
|
||||
OneDrive </a>
|
||||
</td>
|
||||
<td>
|
||||
Not Authenticated </td>
|
||||
</tr>
|
||||
|
||||
<tr class="package-row ">
|
||||
<td>
|
||||
<input name="edit_id" type="hidden" value="4">
|
||||
<input class="duppro-storage-input" id="dup-chkbox-55"
|
||||
name="_storage_ids[]" data-parsley-errors-container="#storage_error_container" type="checkbox" value="55">
|
||||
</td>
|
||||
<td>
|
||||
<label for="dup-chkbox-55" class="dup-store-lbl">
|
||||
<i class="fas fa-network-wired fa-fw"></i> FTP </label>
|
||||
</td>
|
||||
<td>
|
||||
<a href="?page=duplicator-pro-storage&tab=storage&inner_page=edit&storage_id=55" target="_blank">
|
||||
FTP </a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="ftp://a:21//mduplicator.test" target="_blank">ftp://duplicator.com:21/duplicator.com</a> </td>
|
||||
</tr>
|
||||
|
||||
<tr class="package-row alternate">
|
||||
<td>
|
||||
<input name="edit_id" type="hidden" value="5">
|
||||
<input class="duppro-storage-input" id="dup-chkbox-56"
|
||||
name="_storage_ids[]" data-parsley-errors-container="#storage_error_container" type="checkbox" value="56">
|
||||
</td>
|
||||
<td>
|
||||
<label for="dup-chkbox-56" class="dup-store-lbl">
|
||||
<i class="fas fa-network-wired fa-fw"></i> SFTP </label>
|
||||
</td>
|
||||
<td>
|
||||
<a href="?page=duplicator-pro-storage&tab=storage&inner_page=edit&storage_id=56" target="_blank">
|
||||
SFTP </a>
|
||||
</td>
|
||||
<td>
|
||||
<a href=":22" target="_blank">duplicator.com:22</a> </td>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
<tbody><tr class="dup-choose-loc-new-pack">
|
||||
<td colspan="4">
|
||||
<a href="admin.php?page=duplicator-pro-storage&tab=storage&inner_page=edit" target="_blank">
|
||||
[Create New Storage]
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- ===================
|
||||
STEP 2 -->
|
||||
<div id="step3-section">
|
||||
<h3>
|
||||
Step 2: Transfer Files
|
||||
<button
|
||||
id="dup-pro-transfer-btn"
|
||||
type="button" class="button button-large button-primary"
|
||||
>
|
||||
Start Transfer <i class="fas fa-upload"></i>
|
||||
|
||||
</button>
|
||||
</h3>
|
||||
|
||||
<div style="width: 700px; text-align: center; margin-left: auto; margin-right: auto; display: none;" class="dpro-active-status-area">
|
||||
<div style="display:none; font-size:20px; font-weight:bold" id="dpro-progress-bar-percent"></div>
|
||||
<div style="font-size:14px" id="dpro-progress-bar-text">Processing</div>
|
||||
<div id="dpro-progress-bar-percent-help">
|
||||
<small>Full Backup percentage shown on Backups screen</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="dpro-progress-bar-container">
|
||||
<div id="dpro-progress-bar-area" class="dpro-active-status-area" style="display: none;">
|
||||
<div class="dup-pro-meter-wrapper">
|
||||
<div class="dup-pro-meter blue dup-pro-fullsize">
|
||||
<span></span>
|
||||
</div>
|
||||
<span class="text"></span>
|
||||
</div>
|
||||
<button
|
||||
disabled=""
|
||||
id="dup-pro-stop-transfer-btn"
|
||||
type="button"
|
||||
class="button button-large button-primarybutton dpro-btn-stop"
|
||||
value="" onclick="DupPro.Pack.Transfer.StopBuild();"
|
||||
>
|
||||
<i class="fa fa-times fa-sm"></i> Stop Transfer
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ===============================
|
||||
TRANSFER LOG -->
|
||||
<div class="dup-box">
|
||||
<div class="dup-box-title">
|
||||
<i class="fas fa-file-contract fa-fw fa-sm"></i>
|
||||
Transfer Log
|
||||
</div>
|
||||
<div class="dup-box-panel" id="dup-transfer-transfer-log" style="display:block">
|
||||
<table class="widefat package-tbl">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:150px">Started</th>
|
||||
<th style="width:150px">Stopped</th>
|
||||
<th style="white-space: nowrap">Status</th>
|
||||
<th style="white-space: nowrap">Type</th>
|
||||
<th style="width: 60%; white-space: nowrap">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody><tr class="package-row status-normal">
|
||||
<td>Sun, 01 Jan 00:00:00</td>
|
||||
<td>Sun, 01 Jan 00:01:00</td>
|
||||
<td>Succeeded</td>
|
||||
<td>Dropbox</td>
|
||||
<td>Transferred Backup to Dropbox folder duplicator.com</td>
|
||||
</tr></tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="5" id="dup-pack-details-trans-log-count">Log Items: 1</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php TplMng::getInstance()->render(
|
||||
'parts/Education/static-popup',
|
||||
array(
|
||||
'title' => __('Manually transfer backups to remote storages!', 'duplicator'),
|
||||
'warning-text' => __('Remote storages are not available in Duplicator Lite!', 'duplicator'),
|
||||
'content-tpl' => 'mocks/transfer/content-popup',
|
||||
'upsell-url' => LinkManager::getCampaignUrl('blurred-mocks', 'Details Transfer')
|
||||
),
|
||||
true
|
||||
); ?>
|
||||
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Duplicator package row in table packages list
|
||||
*
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
use Duplicator\Core\Controllers\ControllersManager;
|
||||
|
||||
defined("ABSPATH") or die("");
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Controllers\ControllersManager $ctrlMng
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
|
||||
$tooltipTitle = esc_attr__('Backup creation', 'duplicator');
|
||||
$tooltipContent = esc_attr__(
|
||||
'This will create a new Backup. If a Backup is currently running then this button will be disabled.',
|
||||
'duplicator'
|
||||
);
|
||||
|
||||
?>
|
||||
<div class="dup-section-package-create dup-flex-content">
|
||||
<span>
|
||||
<?php esc_html_e('Last backup:', 'duplicator'); ?>
|
||||
<span class="dup-last-backup-info">
|
||||
<?php echo $tplData['lastBackupString']; ?>
|
||||
</span>
|
||||
</span>
|
||||
<span
|
||||
class="dup-new-package-wrapper"
|
||||
data-tooltip-title="<?php echo $tooltipTitle; ?>"
|
||||
data-tooltip="<?php echo $tooltipContent; ?>"
|
||||
>
|
||||
<a
|
||||
id="dup-pro-create-new"
|
||||
class="button button-primary <?php echo DUP_Package::isPackageRunning() ? 'disabled' : ''; ?>"
|
||||
href="<?php echo esc_url(ControllersManager::getPackageBuildUrl()); ?>"
|
||||
>
|
||||
<?php esc_html_e('Create New', 'duplicator'); ?>
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Duplicator package row in table packages list
|
||||
*
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
use Duplicator\Controllers\PackagesPageController;
|
||||
use Duplicator\Core\Controllers\ControllersManager;
|
||||
|
||||
defined("ABSPATH") or die("");
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Controllers\ControllersManager $ctrlMng
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
* @var DUP_Package[] $packages
|
||||
*/
|
||||
$packages = $tplData['packages'];
|
||||
|
||||
?>
|
||||
<div class="dup-section-last-packages">
|
||||
<p>
|
||||
<b><?php esc_html_e('Recently Backups', 'duplicator'); ?></b>
|
||||
</p>
|
||||
<?php if (count($packages) > 0) { ?>
|
||||
<ul>
|
||||
<?php foreach ($packages as $package) {
|
||||
$createdTime = strtotime($package->Created);
|
||||
$createdDate = date_i18n(get_option('date_format'), $createdTime);
|
||||
$createdHours = date_i18n(get_option('time_format'), $createdTime);
|
||||
|
||||
?>
|
||||
<li>
|
||||
<a href="<?php echo esc_url(ControllersManager::getPackageDetailUrl($package->ID)); ?>">
|
||||
<?php echo esc_html($package->Name); ?>
|
||||
</a> - <i class="gary" ><?php echo esc_html($createdDate . ' ' . $createdHours); ?></i>
|
||||
</li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
<?php } ?>
|
||||
<p class="dup-packages-counts">
|
||||
<?php printf(esc_html__('Backups: %1$d, Failures: %2$d', 'duplicator'), $tplData['totalPackages'], $tplData['totalFailures']); ?>
|
||||
</p>
|
||||
</div>
|
||||
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Duplicator package row in table packages list
|
||||
*
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined("ABSPATH") or die("");
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Controllers\ControllersManager $ctrlMng
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
* @var array{name: string,slug: string,more: string,pro: array{file: string}} $plugin
|
||||
*/
|
||||
$plugin = $tplData['plugin'];
|
||||
|
||||
/** @var string */
|
||||
$installUrl = $tplData['installUrl'];
|
||||
$moreUrl = $plugin['more'] . '?' . http_build_query(array(
|
||||
'utm_medium' => 'link',
|
||||
'utm_source' => 'duplicatorplugin',
|
||||
'utm_campaign' => 'duplicatordashboardwidget'
|
||||
));
|
||||
|
||||
?>
|
||||
<div class="dup-section-recommended">
|
||||
<hr>
|
||||
<div class="dup-flex-content" >
|
||||
<div>
|
||||
<span class="dup-recommended-label">
|
||||
<?php esc_html_e('Recommended Plugin:', 'duplicator'); ?>
|
||||
</span>
|
||||
<b><?php echo esc_html($plugin['name']); ?></b>
|
||||
-
|
||||
<span class="action-links">
|
||||
<?php if (current_user_can('install_plugins') && current_user_can('activate_plugins')) { ?>
|
||||
<a href="<?php echo esc_url($installUrl); ?>"><?php esc_html_e('Install', 'duplicator'); ?></a>
|
||||
<?php } ?>
|
||||
<a href="<?php echo esc_url($moreUrl); ?>" target="_blank" ><?php
|
||||
esc_html_e('Learn More', 'duplicator');
|
||||
?></a>
|
||||
</span>
|
||||
</div>
|
||||
<div>
|
||||
<button type="button" id="dup-dash-widget-section-recommended" title="<?php esc_html_e('Dismiss recommended plugin', 'duplicator'); ?>">
|
||||
<span class="dashicons dashicons-no-alt"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,107 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Duplicator package row in table packages list
|
||||
*
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
use Duplicator\Controllers\ToolsPageController;
|
||||
use Duplicator\Core\Controllers\ControllersManager;
|
||||
|
||||
defined("ABSPATH") or die("");
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Controllers\ControllersManager $ctrlMng
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
|
||||
$templatesURL = ControllersManager::getMenuLink(
|
||||
ControllersManager::TOOLS_SUBMENU_SLUG,
|
||||
'templates'
|
||||
);
|
||||
$recoveryURl = ControllersManager::getMenuLink(
|
||||
ControllersManager::TOOLS_SUBMENU_SLUG,
|
||||
'recovery'
|
||||
);
|
||||
|
||||
?>
|
||||
<div class="dup-section-sections">
|
||||
<ul>
|
||||
<li class="dup-flex-content">
|
||||
<span class="dup-section-label-fixed-width" >
|
||||
<span class="dashicons dashicons-update gary"></span>
|
||||
<a href="<?php echo esc_url(ControllersManager::getMenuLink(ControllersManager::SCHEDULES_SUBMENU_SLUG)); ?>"><?php
|
||||
echo esc_html(sprintf(
|
||||
_n(
|
||||
'%s Schedule',
|
||||
'%s Schedules',
|
||||
$tplData['numSchedules'],
|
||||
'duplicator'
|
||||
),
|
||||
$tplData['numSchedules']
|
||||
));
|
||||
?></a>
|
||||
</span>
|
||||
<span>
|
||||
<?php _e('Enabled', 'duplicator'); ?>:
|
||||
<b class="<?php echo ($tplData['numSchedulesEnabled'] ? 'green' : 'maroon'); ?>">
|
||||
<?php echo $tplData['numSchedulesEnabled']; ?>
|
||||
</b>
|
||||
<?php if (strlen($tplData['nextScheduleString'])) { ?>
|
||||
- <?php _e('Next', 'duplicator'); ?>: <b><?php echo $tplData['nextScheduleString']; ?></b>
|
||||
<?php } ?>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="dup-section-label-fixed-width" >
|
||||
<span class="dashicons dashicons-database gary"></span>
|
||||
<a href="<?php echo esc_url(ControllersManager::getMenuLink(ControllersManager::STORAGE_SUBMENU_SLUG)); ?>"><?php
|
||||
echo esc_html(sprintf(
|
||||
_n(
|
||||
'%s Storage',
|
||||
'%s Storages',
|
||||
$tplData['numStorages'],
|
||||
'duplicator'
|
||||
),
|
||||
$tplData['numStorages']
|
||||
));
|
||||
?>
|
||||
</a>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="dup-section-label-fixed-width" >
|
||||
<span class="dashicons dashicons-admin-settings gary"></span>
|
||||
<a href="<?php echo esc_url($templatesURL); ?>"><?php
|
||||
echo esc_html(sprintf(
|
||||
_n(
|
||||
'%s Template',
|
||||
'%s Templates',
|
||||
$tplData['numTemplates'],
|
||||
'duplicator'
|
||||
),
|
||||
$tplData['numTemplates']
|
||||
));
|
||||
?>
|
||||
</a>
|
||||
</span>
|
||||
</li>
|
||||
<li class="dup-flex-content">
|
||||
<span class="dup-section-label-fixed-width" >
|
||||
<span class="dashicons dashicons-image-rotate gary"></span>
|
||||
<a href="<?php echo esc_url($recoveryURl); ?>" ><?php
|
||||
esc_html_e('Recovery Point', 'duplicator');
|
||||
?>
|
||||
</a>
|
||||
</span>
|
||||
<span>
|
||||
<span class="maroon"><b><?php esc_html_e('Not set', 'duplicator'); ?></b></span>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -0,0 +1,82 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
*
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2023, Snap Creek LLC
|
||||
*/
|
||||
|
||||
use Duplicator\Utils\LinkManager;
|
||||
use Duplicator\Utils\Upsell;
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
<div class="dup-settings-lite-cta">
|
||||
<a href="#" class="dismiss" title="<?php esc_attr_e('Dismiss this message', 'duplicator'); ?>"><i class="fa fa-times-circle" aria-hidden="true"></i></a>
|
||||
<h5><?php esc_html_e('Get Duplicator Pro and Unlock all the Powerful Features', 'duplicator'); ?></h5>
|
||||
<p>
|
||||
<?php esc_html_e(
|
||||
'Thanks for being a loyal Duplicator Lite user. Upgrade to Duplicator Pro to unlock all the ' .
|
||||
'awesome features and experience why Duplicator is consistently rated the best WordPress migration plugin.',
|
||||
'duplicator'
|
||||
); ?>
|
||||
</p>
|
||||
<p>
|
||||
<?php
|
||||
printf(
|
||||
wp_kses( /* translators: %s - star icons. */
|
||||
__(
|
||||
'We know that you will truly love Duplicator. It has over 4000+ five star ratings (%s) and is active on ' .
|
||||
'over 1 million websites.',
|
||||
'duplicator'
|
||||
),
|
||||
array(
|
||||
'i' => array(
|
||||
'class' => array(),
|
||||
'aria-hidden' => array(),
|
||||
),
|
||||
)
|
||||
),
|
||||
str_repeat('<i class="fa fa-star" aria-hidden="true"></i>', 5) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||
);
|
||||
?>
|
||||
</p>
|
||||
<h6><?php esc_html_e('Pro Features:', 'duplicator'); ?></h6>
|
||||
<ul class="list">
|
||||
<?php
|
||||
foreach (Upsell::getCalloutCTAFeatureList() as $feature) {
|
||||
?>
|
||||
<li class="item">
|
||||
<span>
|
||||
<?php echo esc_html($feature); ?>
|
||||
</span>
|
||||
</li>
|
||||
<?php
|
||||
};
|
||||
?>
|
||||
</ul>
|
||||
<p>
|
||||
<a href="<?php echo esc_url(LinkManager::getCampaignUrl('settings-upgrade')); ?>" target="_blank" rel="noopener noreferrer">
|
||||
<?php esc_html_e('Get Duplicator Pro Today and Unlock all the Powerful Features »', 'duplicator'); ?>
|
||||
</a>
|
||||
</p>
|
||||
<p>
|
||||
<?php
|
||||
printf(
|
||||
__(
|
||||
'<strong>Bonus:</strong> Duplicator Lite users get <span class="green">%1$d%% off regular price</span>,' .
|
||||
'automatically applied at checkout.',
|
||||
'duplicator'
|
||||
),
|
||||
DUP_Constants::UPSELL_DEFAULT_DISCOUNT
|
||||
);
|
||||
?>
|
||||
</p>
|
||||
</div>
|
||||
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
*
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2023, Snap Creek LLC
|
||||
*/
|
||||
|
||||
use Duplicator\Utils\LinkManager;
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
<div id="duplicator-did-you-know">
|
||||
<i class="fas fa-info-circle"></i>
|
||||
<?php printf(__('Did you know Duplicator Pro has: %s?', 'duplicator'), $tplData['feature']);?>
|
||||
<a href="<?php echo LinkManager::getCampaignUrl('scan_did-you-know', $tplData['feature']) ?>" target="_blank">
|
||||
<?php esc_html_e('Upgrade To Pro', 'duplicator'); ?>
|
||||
</a>
|
||||
</div>
|
||||
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
*
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2023, Snap Creek LLC
|
||||
*/
|
||||
|
||||
use Duplicator\Utils\LinkManager;
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
<tr>
|
||||
<th colspan="11">
|
||||
<div id="dup-packages-bottom-bar">
|
||||
<div class="icon">
|
||||
<i class="fas fa-info-circle"></i>
|
||||
</div>
|
||||
<div class="feature">
|
||||
<p><strong><?php _e('Upgrade to Pro to Unlock...', 'duplicator'); ?></strong></p>
|
||||
<p>
|
||||
<?php echo $tplData['feature'];?>
|
||||
</p>
|
||||
</div>
|
||||
<div class="upsell">
|
||||
<a href="<?php echo LinkManager::getCampaignUrl('packages_bottom-bar', $tplData['feature']) ?>"
|
||||
class="dup-btn dup-btn-md dup-btn-green"
|
||||
target="_blank">
|
||||
<?php esc_html_e('Upgrade Now & Save!', 'duplicator'); ?>
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<button type="button" id="dup-packages-bottom-bar-dismiss" title="Dismiss recommended plugin">
|
||||
<span class="dashicons dashicons-no-alt"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</th>
|
||||
</tr>
|
||||
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
*/
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
use Duplicator\Core\Views\TplMng;
|
||||
use Duplicator\Utils\LinkManager;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
<div class="static-popup">
|
||||
<div class="static-popup-content-top-notice">
|
||||
<i class="fas fa-exclamation-triangle"></i><?php echo $tplData['warning-text']; ?>
|
||||
</div>
|
||||
<div class="static-popup-content">
|
||||
<h2>
|
||||
<?php echo $tplData['title']; ?>
|
||||
</h2>
|
||||
<?php echo TplMng::getInstance()->render($tplData['content-tpl']); ?>
|
||||
</div>
|
||||
<div class="static-popup-button">
|
||||
<a href="<?php echo esc_url($tplData['upsell-url']); ?>" class="dup-btn-green dup-btn-lg dup-btn" target="_blank" rel="noopener noreferrer">
|
||||
<?php echo __('Upgrade to Duplicator Pro Now', 'duplicator'); ?>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
*
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2023, Snap Creek LLC
|
||||
*/
|
||||
|
||||
use Duplicator\Utils\LinkManager;
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
<div class="dup-subscribe-form">
|
||||
<div class="input-area">
|
||||
<input type="email"
|
||||
name="email"
|
||||
placeholder="<?php _e('Email Address', 'duplicator'); ?>"
|
||||
value="<?php echo wp_get_current_user()->user_email; ?>"><button
|
||||
type="button" class="dup-btn dup-btn-md dup-btn-green"><?php _e('Subscribe', 'duplicator'); ?></button>
|
||||
</div>
|
||||
<div class="desc">
|
||||
<small><?php _e('Get tips and product updates straight to your inbox.', 'duplicator'); ?></small>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
/**
|
||||
* Admin Notifications template.
|
||||
*
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || exit;
|
||||
|
||||
?>
|
||||
<div id="dup-notifications">
|
||||
<div class="dup-notifications-header">
|
||||
<div class="dup-notifications-bell">
|
||||
<img src="<?php echo DUPLICATOR_PLUGIN_URL; ?>assets/img/notification-bell.svg"/>
|
||||
<span class="wp-ui-notification dup-notifications-circle"></span>
|
||||
</div>
|
||||
<div class="dup-notifications-title"><?php esc_html_e('Notifications', 'duplicator'); ?></div>
|
||||
</div>
|
||||
|
||||
<div class="dup-notifications-body">
|
||||
<a class="dismiss" title="<?php esc_attr_e('Dismiss this message', 'duplicator'); ?>"><i class="fa fa-times-circle" aria-hidden="true"></i></a>
|
||||
|
||||
<?php if (count($tplData['notifications']) > 1) : ?>
|
||||
<div class="navigation">
|
||||
<a class="prev">
|
||||
<span class="screen-reader-text"><?php esc_attr_e('Previous message', 'duplicator'); ?></span>
|
||||
<span aria-hidden="true">‹</span>
|
||||
</a>
|
||||
<a class="next">
|
||||
<span class="screen-reader-text"><?php esc_attr_e('Next message', 'duplicator'); ?></span>
|
||||
<span aria-hidden="true">›</span>
|
||||
</a>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="dup-notifications-messages">
|
||||
<?php foreach ($tplData['notifications'] as $notification) {
|
||||
$tplMng->render('parts/Notifications/single-message', $notification);
|
||||
} ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
/**
|
||||
* Admin Notifications content.
|
||||
*
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || exit;
|
||||
?>
|
||||
<div class="dup-notifications-message" data-message-id="<?php echo esc_attr($tplData['id']); ?>;">
|
||||
<h3 class="dup-notifications-title">
|
||||
<?php echo esc_html($tplData['title']); ?>
|
||||
<?php if ($tplData['video_url'] !== false) : ?>
|
||||
<a
|
||||
class="dup-notifications-badge"
|
||||
href="<?php echo esc_attr($tplData['video_url']); ?>"
|
||||
<?php echo wp_is_mobile() ? '' : 'data-lity'?>>
|
||||
<i class="fa fa-play" aria-hidden="true"></i> <?php esc_html_e('Watch video', 'duplicator'); ?>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
</h3>
|
||||
<div class="dup-notifications-content">
|
||||
<?php echo $tplData['content']; ?>
|
||||
</div>
|
||||
<?php foreach ($tplData['btns'] as $btn) : ?>
|
||||
<a
|
||||
href="<?php echo esc_attr($btn['url']); ?>"
|
||||
class="button button-<?php echo esc_attr($btn['type']); ?>"
|
||||
<?php echo $btn['target'] === '_blank' ? 'target="_blank"' : ''; ?>>
|
||||
<?php echo esc_html($btn['text']); ?>
|
||||
</a>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
*/
|
||||
|
||||
use Duplicator\Utils\Help\Help;
|
||||
use Duplicator\Libs\Snap\SnapJson;
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
$helpPageUrl = SnapJson::jsonEncode(Help::getHelpPageUrl());
|
||||
require_once(DUPLICATOR_PLUGIN_PATH . '/assets/js/javascript.php');
|
||||
?>
|
||||
<script>
|
||||
jQuery(document).ready(function ($) {
|
||||
$('.duplicator-help-open').click(function () {
|
||||
if (Duplicator.Help.isDataLoaded()) {
|
||||
Duplicator.Help.Display();
|
||||
} else {
|
||||
Duplicator.Help.Load(<?php echo $helpPageUrl; ?>);
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<div id="dup-meta-screen"></div>
|
||||
<div class="dup-header">
|
||||
<img src="<?php echo DUPLICATOR_PLUGIN_URL . 'assets/img/duplicator-header-logo.svg'; ?>" alt="Duplicator Logo" >
|
||||
<button class="duplicator-help-open">
|
||||
<i class="fa-regular fa-question-circle"></i>
|
||||
</button>
|
||||
</div>
|
||||
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
use Duplicator\Utils\ExtraPlugins\ExtraItem;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
* @var ExtraItem $plugin
|
||||
*/
|
||||
|
||||
$plugin = $tplData['plugin'];
|
||||
?>
|
||||
<div class="plugin-item">
|
||||
<img src="<?php echo esc_url($plugin->icon); ?>" alt="<?php echo esc_attr($plugin->name); ?> logo"/>
|
||||
<div class="details">
|
||||
<h5 class="addon-name">
|
||||
<?php echo esc_html($plugin->name); ?>
|
||||
</h5>
|
||||
<p class="addon-desc"><?php echo esc_html($plugin->desc); ?></p>
|
||||
<button class="button button-primary dup-extra-plugin-item" data-plugin="<?php echo esc_attr($plugin->getSlug());?>">
|
||||
<?php echo esc_html_e('Install', 'duplicator'); ?>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
use Duplicator\Utils\ExtraPlugins\ExtraItem;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || die();
|
||||
|
||||
if (!current_user_can('install_plugins')) {
|
||||
return;
|
||||
}
|
||||
|
||||
/** @var ExtraItem[] $plugins */
|
||||
$plugins = $tplData['plugins'];
|
||||
/** @var int $limit */
|
||||
$limit = $tplData['limit'];
|
||||
?>
|
||||
<div id="dup-cross-promotion">
|
||||
<p>
|
||||
<em><?php echo __('Enjoying Duplicator? Check out a couple of our other free plugins...', 'duplicator'); ?></em>
|
||||
</p>
|
||||
<div class="list">
|
||||
<?php
|
||||
foreach ($plugins as $i => $plugin) {
|
||||
if ($i > $limit - 1) {
|
||||
break;
|
||||
}
|
||||
|
||||
$tplMng->render(
|
||||
'parts/cross_promotion/item',
|
||||
array('plugin' => $plugin)
|
||||
);
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,344 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Duplicator package row in table packages list
|
||||
*
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
use Duplicator\Utils\LinkManager;
|
||||
use Duplicator\Libs\Snap\SnapIO;
|
||||
|
||||
defined("ABSPATH") or die("");
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Controllers\ControllersManager $ctrlMng
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
|
||||
$archiveFilterPaths = trim($tplData['package']->Archive->FilterDirs . ";" . $tplData['package']->Archive->FilterFiles, ";");
|
||||
$archiveFilterPaths = str_replace(';', ";\n", $archiveFilterPaths);
|
||||
$archiveFilterExtensions = $tplData['package']->Archive->FilterExts;
|
||||
$packageComponentsTooltip = __(
|
||||
"Backup components allow you to include/exclude differents part of your WordPress installation in the Backup.</br></br>" .
|
||||
"<b>Database</b>: Include the database in the Backup.</br>" .
|
||||
"<b>Plugins</b>: Include the plugins in the Backup. With the 'active only' option enabled, only active plugins will be included in the Backup.</br>" .
|
||||
"<b>Themes</b>: Include the themes in the Backup. With the 'active only' option enabled, only active themes will be included in the Backup.</br>" .
|
||||
"<b>Media</b>: Include the 'uploads' folder.</br>" .
|
||||
"<b>Other</b>: Include non-WordPress files and folders in the root directory.</br>",
|
||||
'duplicator'
|
||||
);
|
||||
$pathFiltersTooltip = __("File filters allow you to exclude files and folders from the Backup. To enable path and extension filters check the " .
|
||||
"checkbox. Enter the full path of the files and folders you want to exclude from the Backup as a semicolon (;) seperated list.", "duplicator");
|
||||
$extensionFilterTooltip = __("File extension filters allow you to exclude files with certain file extensions from the Backup e.g. zip;rar;pdf etc. " .
|
||||
"Enter the file extensions you want to exclude from the Backup as a semicolon (;) seperated list.", "duplicator");
|
||||
?>
|
||||
|
||||
<div class="dup-package-components">
|
||||
<div class="component-section">
|
||||
<div class="section-title">
|
||||
<span id="component-section-title">
|
||||
<?php _e('Components', 'duplicator'); ?>
|
||||
<i class="fas fa-question-circle fa-sm"
|
||||
data-tooltip-title="<?php esc_attr_e('Backup Components (Pro feature)', 'duplicator'); ?>"
|
||||
data-tooltip="<?php echo esc_attr($packageComponentsTooltip);?>"
|
||||
aria-expanded="false"></i>
|
||||
</span>
|
||||
</div>
|
||||
<div class="components-shortcut-select">
|
||||
<div class="dup-radio-button-group-wrapper">
|
||||
<input
|
||||
type="radio"
|
||||
id="dup-component-shortcut-action-all"
|
||||
name="auto-select-components"
|
||||
class="dup-components-shortcut-radio"
|
||||
value="all"
|
||||
data-parsley-multiple="auto-select-components"
|
||||
<?php checked(!$tplData['package']->Archive->ExportOnlyDB); ?>
|
||||
>
|
||||
<label for="dup-component-shortcut-action-all">All</label>
|
||||
<input
|
||||
type="radio"
|
||||
id="dup-component-shortcut-action-database"
|
||||
name="auto-select-components"
|
||||
class="dup-components-shortcut-radio"
|
||||
value="database"
|
||||
<?php checked($tplData['package']->Archive->ExportOnlyDB); ?>
|
||||
data-parsley-multiple="auto-select-components"
|
||||
>
|
||||
<label for="dup-component-shortcut-action-database">Database Only</label>
|
||||
<label class="disabled" for="dup-component-shortcut-action-media">Media Only</label>
|
||||
<label class="disabled" for="dup-component-shortcut-action-custom">Custom</label>
|
||||
</div>
|
||||
</div>
|
||||
<ul class="custom-components-select">
|
||||
<li>
|
||||
<label class="disabled">
|
||||
<input type="checkbox" name="package_component_db" class="package_component_checkbox" disabled checked>
|
||||
<span><?php _e('Database', 'duplicator'); ?></span>
|
||||
</label>
|
||||
</li>
|
||||
<li>
|
||||
<label class="disabled">
|
||||
<input type="checkbox" name="package_component_plugins" class="package_component_checkbox" disabled
|
||||
<?php checked(!$tplData['package']->Archive->ExportOnlyDB); ?>>
|
||||
<span><?php _e('Plugins', 'duplicator'); ?></span>
|
||||
</label>
|
||||
</li>
|
||||
<li>
|
||||
<label class="secondary disabled">
|
||||
<input type="checkbox" name="package_component_plugins_active" class="package_component_checkbox" disabled>
|
||||
<span><?php _e('Only Active Plugins', 'duplicator'); ?></span>
|
||||
</label>
|
||||
</li>
|
||||
<li>
|
||||
<label class="disabled">
|
||||
<input type="checkbox" name="package_component_themes" class="package_component_checkbox" disabled
|
||||
<?php checked(!$tplData['package']->Archive->ExportOnlyDB); ?>>
|
||||
<span><?php _e('Themes', 'duplicator'); ?></span>
|
||||
</label>
|
||||
</li>
|
||||
<li>
|
||||
<label class="secondary disabled">
|
||||
<input type="checkbox" name="package_component_themes_active" class="package_component_checkbox" disabled>
|
||||
<span><?php _e('Only Active Themes', 'duplicator'); ?></span>
|
||||
</label>
|
||||
</li>
|
||||
<li>
|
||||
<label class="disabled">
|
||||
<input type="checkbox" name="package_component_media" class="package_component_checkbox" disabled
|
||||
<?php checked(!$tplData['package']->Archive->ExportOnlyDB); ?>>
|
||||
<span><?php _e('Media', 'duplicator'); ?></span>
|
||||
</label>
|
||||
</li>
|
||||
<li>
|
||||
<label class="disabled">
|
||||
<input type="checkbox" name="package_component_other" class="package_component_checkbox" disabled
|
||||
<?php checked(!$tplData['package']->Archive->ExportOnlyDB); ?>>
|
||||
<span><?php _e('Other', 'duplicator'); ?></span>
|
||||
</label>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="filter-section">
|
||||
<div class="filters">
|
||||
<div class="section-title">
|
||||
<span><?php _e('Filters', 'duplicator'); ?> (<label><input id="filter-on"
|
||||
name="filter-on"
|
||||
type="checkbox" <?php checked($tplData['package']->Archive->FilterOn); ?>> <?php esc_html_e('Enable', 'duplicator') ?></label>)
|
||||
<i class="fas fa-question-circle fa-sm"
|
||||
data-tooltip-title="<?php esc_attr_e('Path Filters', 'duplicator'); ?>"
|
||||
data-tooltip="<?php echo esc_attr($pathFiltersTooltip);?>"
|
||||
aria-expanded="false"></i>
|
||||
</span>
|
||||
<div class="filter-links">
|
||||
<a href="#" data-filter-path="<?php echo SnapIO::trailingslashit(DUP_Archive::getOriginalPaths('home')); ?>">
|
||||
[<?php esc_html_e('root path', 'duplicator') ?>]
|
||||
</a>
|
||||
<a href="#" data-filter-path="<?php echo SnapIO::trailingslashit(DUP_Archive::getOriginalPaths('wpcontent')); ?>">[wp-content]</a>
|
||||
<a href="#" data-filter-path="<?php echo SnapIO::trailingslashit(DUP_Archive::getOriginalPaths('uploads')); ?>">[wp-uploads]</a>
|
||||
<a href="#" data-filter-path="<?php echo SnapIO::trailingslashit(DUP_Archive::getOriginalPaths('wpcontent')) . 'cache/'; ?>">
|
||||
[<?php esc_html_e('cache', 'duplicator') ?>]
|
||||
</a>
|
||||
<a href="#" id="clear-path-filters">(<?php esc_html_e('clear', 'duplicator') ?>)</a>
|
||||
</div>
|
||||
</div>
|
||||
<textarea
|
||||
id="filter-paths"
|
||||
name="filter-paths"
|
||||
placeholder="/full_path/dir/; /full_path/file;"
|
||||
readonly><?php echo $archiveFilterPaths; ?></textarea>
|
||||
<div class="section-title">
|
||||
<span>
|
||||
<?php _e('File Extensions', 'duplicator'); ?>
|
||||
<i class="fas fa-question-circle fa-sm"
|
||||
data-tooltip-title="<?php esc_attr_e('File Extensions', 'duplicator'); ?>"
|
||||
data-tooltip="<?php echo esc_attr($extensionFilterTooltip);?>"
|
||||
aria-expanded="false"></i>
|
||||
</span>
|
||||
<div class="filter-links">
|
||||
<a href="#" data-filter-exts="avi;mov;mp4;mpeg;mpg;swf;wmv;aac;m3u;mp3;mpa;wav;wma">[<?php esc_html_e('media', 'duplicator') ?>]</a>
|
||||
<a href="#" data-filter-exts="zip;rar;tar;gz;bz2;7z">[<?php esc_html_e('Backup', 'duplicator') ?>]</a>
|
||||
<a href="#" id="clear-extension-filters">(<?php esc_html_e('clear', 'duplicator') ?>)</a>
|
||||
</div>
|
||||
</div>
|
||||
<textarea id="filter-exts" name="filter-exts" placeholder="ext1;ext2;ext3;" readonly><?php echo $archiveFilterExtensions; ?></textarea>
|
||||
</div>
|
||||
<div class="db-only-message">
|
||||
<?php
|
||||
echo wp_kses(
|
||||
__(
|
||||
"<b>Overview:</b><br> This advanced option excludes all files from the Backup. Only the database and a copy of the installer.php "
|
||||
. "will be included in the archive.zip file. The option can be used for backing up and moving only the database.",
|
||||
'duplicator'
|
||||
),
|
||||
array(
|
||||
'b' => array(),
|
||||
'br' => array(),
|
||||
)
|
||||
);
|
||||
echo '<br/><br/>';
|
||||
|
||||
echo wp_kses(
|
||||
__(
|
||||
"<b><i class='fa fa-exclamation-circle'></i> Notice:</b><br/> "
|
||||
. "Installing only the database over an existing site may have unintended consequences. "
|
||||
. "Be sure to know the state of your system before installing the database without the associated files. ",
|
||||
'duplicator'
|
||||
),
|
||||
array(
|
||||
'b' => array(),
|
||||
'i' => array('class'),
|
||||
'br' => array()
|
||||
)
|
||||
);
|
||||
|
||||
esc_html_e(
|
||||
"For example, if you have WordPress 5.6 on this site and you copy this site's database to a host that has WordPress 5.8 files "
|
||||
. "then the source code of the files will not be in sync with the database causing possible errors. "
|
||||
. "This can also be true of plugins and themes. "
|
||||
. "When moving only the database be sure to know the database will be compatible with "
|
||||
. "ALL source code files. Please use this advanced feature with caution!",
|
||||
'duplicator'
|
||||
);
|
||||
|
||||
echo '<br/><br/>';
|
||||
|
||||
echo wp_kses(
|
||||
__("<b>Install Time:</b><br> When installing a database only Backup please visit the ", 'duplicator'),
|
||||
array(
|
||||
'b' => array(),
|
||||
'br' => array(),
|
||||
)
|
||||
);
|
||||
?>
|
||||
<a
|
||||
href="<?php echo esc_url(LinkManager::getDocUrl('database-install', 'backup_step_1', 'db only quick start')); ?>"
|
||||
target="_blank"
|
||||
>
|
||||
<?php esc_html_e('database only quick start', 'duplicator'); ?>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="dup-upgrade-license-info">
|
||||
<span class="dup-pro-text">
|
||||
<?php
|
||||
printf(
|
||||
_x(
|
||||
'The <b>Media Only</b> and <b>Custom</b> options are not included in Duplicator Lite. ' .
|
||||
'To enable advanced options please %1$supgrade to Pro%2$s.',
|
||||
'%1$s and %2$s represents the opening and closing HTML tags for an anchor or link.',
|
||||
'duplicator'
|
||||
),
|
||||
'<a href="' . LinkManager::getCampaignUrl('package-components-lite', 'upgrade to Pro') . '" target="_blank">',
|
||||
'</a>'
|
||||
);
|
||||
?>
|
||||
</span>
|
||||
</div>
|
||||
<script>
|
||||
jQuery(document).ready(function($)
|
||||
{
|
||||
Duplicator.Pack.ToggleFileFilters = function ()
|
||||
{
|
||||
if ($("#filter-on").is(':checked') && !$('#dup-component-shortcut-action-database').is(':checked') ) {
|
||||
$('#dup-archive-filter-file').show();
|
||||
$('#filter-exts, #filter-paths').prop('readonly', false);
|
||||
} else {
|
||||
$('#dup-archive-filter-file').hide();
|
||||
$('#filter-exts, #filter-paths').prop('readonly', true);
|
||||
}
|
||||
};
|
||||
|
||||
Duplicator.Pack.InitDBOnly = function () {
|
||||
let checkedComponentCheckboxes = $('.package_component_checkbox:checked');
|
||||
if ($('#dup-component-shortcut-action-database').is(':checked')) {
|
||||
$("#dup-archive-db-only").show();
|
||||
$('.filters').hide()
|
||||
$('.db-only-message').show()
|
||||
} else {
|
||||
$("#dup-archive-db-only").hide();
|
||||
$('.filters').show()
|
||||
$('.db-only-message').hide()
|
||||
}
|
||||
}
|
||||
|
||||
Duplicator.Pack.ToggleDBOnly = function () {
|
||||
let allComponentCheckboxes = $('.dup-package-components label:not(.secondary) .package_component_checkbox');
|
||||
let dbOnlyCheckbox = $('#dup-component-shortcut-action-database');
|
||||
let dbCheckbox = $('[name=package_component_db]');
|
||||
|
||||
if (dbOnlyCheckbox.is(':checked')) {
|
||||
allComponentCheckboxes.prop('checked', false);
|
||||
dbCheckbox.prop('checked', true);
|
||||
$("#dup-archive-db-only").show();
|
||||
$('.filters').hide()
|
||||
$('.db-only-message').show()
|
||||
} else {
|
||||
allComponentCheckboxes.prop('checked', true);
|
||||
$("#dup-archive-db-only").hide();
|
||||
$('.filters').show()
|
||||
$('.db-only-message').hide()
|
||||
}
|
||||
Duplicator.Pack.ToggleFileFilters ();
|
||||
}
|
||||
|
||||
Duplicator.Pack.ToggleFileFilters();
|
||||
Duplicator.Pack.InitDBOnly();
|
||||
|
||||
$('.dup-components-shortcut-radio').change(Duplicator.Pack.ToggleDBOnly)
|
||||
|
||||
$('a[data-filter-path]').click(function (e) {
|
||||
e.preventDefault()
|
||||
|
||||
if ($('#filter-paths').is("[readonly]")) {
|
||||
return;
|
||||
}
|
||||
|
||||
let currentVal = $('#filter-paths').val()
|
||||
let newVal = currentVal.length > 0 ? currentVal + ";\n" + $(this).data('filter-path') : $(this).data('filter-path')
|
||||
|
||||
$('#filter-paths').val(newVal)
|
||||
})
|
||||
|
||||
$('#clear-path-filters').click(function (e) {
|
||||
e.preventDefault()
|
||||
|
||||
if ($('#filter-paths').is("[readonly]")) {
|
||||
return;
|
||||
}
|
||||
|
||||
$('#filter-paths').val('')
|
||||
})
|
||||
|
||||
$('a[data-filter-exts]').click(function (e) {
|
||||
e.preventDefault()
|
||||
|
||||
if ($('#filter-exts').is("[readonly]")) {
|
||||
return;
|
||||
}
|
||||
|
||||
let currentVal = $('#filter-exts').val()
|
||||
let newVal = currentVal.length > 0 ? currentVal + ";" + $(this).data('filter-exts') : $(this).data('filter-exts')
|
||||
|
||||
$('#filter-exts').val(newVal)
|
||||
})
|
||||
|
||||
$('#clear-extension-filters').click(function (e) {
|
||||
e.preventDefault()
|
||||
|
||||
if ($('#filter-exts').is("[readonly]")) {
|
||||
return;
|
||||
}
|
||||
|
||||
$('#filter-exts').val('')
|
||||
})
|
||||
|
||||
$('#filter-on').change(Duplicator.Pack.ToggleFileFilters)
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
use Duplicator\Utils\Help\Article;
|
||||
|
||||
defined("ABSPATH") or die("");
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Controllers\ControllersManager $ctrlMng
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
|
||||
/** @var Article[] $articles p*/
|
||||
$articles = $tplData['articles'];
|
||||
$listClass = isset($tplData['list_class']) ? 'class="' . $tplData['list_class'] . '"' : '';
|
||||
?>
|
||||
<?php if (count($articles) > 0) : ?>
|
||||
<ul <?php echo $listClass; ?>>
|
||||
<?php foreach ($articles as $article) : ?>
|
||||
<li class="duplicator-help-article" data-id="<?php echo (int) $article->getId(); ?>">
|
||||
<i aria-hidden="true" class="fa fa-file-alt"></i>
|
||||
<a href="<?php echo esc_url($article->getLink()); ?>" target="_blank"><?php echo esc_html($article->getTitle()); ?></a>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
use Duplicator\Utils\Help\Category;
|
||||
use Duplicator\Utils\Help\Help;
|
||||
|
||||
defined("ABSPATH") or die("");
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Controllers\ControllersManager $ctrlMng
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
|
||||
/** @var Category[] $categories */
|
||||
$categories = $tplData['categories'];
|
||||
if (empty($categories)) : ?>
|
||||
<p>
|
||||
<?php
|
||||
printf(
|
||||
esc_html_x(
|
||||
'Could not fetch help information. Please try again later or visit the %1$sonline docs%2$s.',
|
||||
'%1$s and %2$s are the opening and closing tags for the link to the online docs.',
|
||||
'duplicator-pro'
|
||||
),
|
||||
'<a href="' . esc_url(DUPLICATOR_BLOG_URL . 'knowledge-base') . '" target="_blank">',
|
||||
'</a>'
|
||||
);
|
||||
?>
|
||||
</p>
|
||||
<?php else : ?>
|
||||
<ul class="duplicator-help-category-list">
|
||||
<?php foreach ($categories as $category) : ?>
|
||||
<li class="duplicator-help-category">
|
||||
<header>
|
||||
<i class="fa fa-folder-open"></i>
|
||||
<span><?php echo esc_html($category->getName()); ?></span>
|
||||
<i class="fa fa-angle-right"></i>
|
||||
</header>
|
||||
<?php if (count($category->getChildren()) > 0) { ?>
|
||||
<?php $tplMng->render('parts/help/category-list', ['categories' => $category->getChildren()]);
|
||||
} ?>
|
||||
<?php if ($category->getArticleCount() > 0) : ?>
|
||||
<?php $tplMng->render(
|
||||
'parts/help/article-list',
|
||||
[
|
||||
'articles' => Help::getInstance()->getArticlesByCategory($category->getId()),
|
||||
'list_class' => 'duplicator-help-article-list',
|
||||
]
|
||||
); ?>
|
||||
<?php endif; ?>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
247
html/wp-content/plugins/duplicator/template/parts/help/main.php
Normal file
247
html/wp-content/plugins/duplicator/template/parts/help/main.php
Normal file
@@ -0,0 +1,247 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
use Duplicator\Utils\Help\Help;
|
||||
use Duplicator\Utils\LinkManager;
|
||||
|
||||
defined("ABSPATH") or die("");
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Controllers\ControllersManager $ctrlMng
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
<style>
|
||||
/* Dynamic Help Style */
|
||||
#duplicator-help-wrapper {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
background-color: #fff;
|
||||
overflow-y: auto;
|
||||
box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1);
|
||||
-webkit-font-smoothing: antialiased !important;
|
||||
-moz-osx-font-smoothing: grayscale !important;
|
||||
}
|
||||
|
||||
#duplicator-help-header {
|
||||
position: fixed;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
width: 90%;
|
||||
top: 30px;
|
||||
left: 5%;
|
||||
}
|
||||
|
||||
#duplicator-help-content {
|
||||
width: 700px;
|
||||
margin: 150px auto 50px;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 700px) {
|
||||
#duplicator-help-content {
|
||||
width: 90%;
|
||||
}
|
||||
}
|
||||
|
||||
#duplicator-help-search {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
#duplicator-help-search-results-empty {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#duplicator-help-search-results,
|
||||
#duplicator-help-search-results-empty {
|
||||
margin-top: 50px;
|
||||
}
|
||||
|
||||
#duplicator-help-search input {
|
||||
border: 1px solid #999999;
|
||||
border-radius: 25px;
|
||||
color: #444444;
|
||||
font-size: 20px;
|
||||
letter-spacing: 0;
|
||||
line-height: 20px;
|
||||
min-height: 48px;
|
||||
padding: 10px 10px 10px 25px;
|
||||
text-align: left;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.duplicator-help-category {
|
||||
border-top: 1px solid #dddddd;
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
#duplicator-help-categories > ul > li ul {
|
||||
display: none;
|
||||
margin-left: 30px;
|
||||
}
|
||||
|
||||
#duplicator-help-categories > ul > li .duplicator-help-category:last-of-type {
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
.duplicator-help-category:last-of-type {
|
||||
border-bottom: 1px solid #dddddd;
|
||||
}
|
||||
|
||||
.duplicator-help-category header {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
padding: 20px 0;
|
||||
}
|
||||
|
||||
.duplicator-help-category header span {
|
||||
color: #444444;
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.duplicator-help-category header .fa-folder-open {
|
||||
color: #999999;
|
||||
font-size: 21px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.duplicator-help-category header .fa-angle-right {
|
||||
color: #cccccc;
|
||||
font-size: 24px;
|
||||
margin-left: auto;
|
||||
transition-property: transform;
|
||||
transition-duration: 0.25s;
|
||||
transition-timing-function: ease-out;
|
||||
}
|
||||
|
||||
.duplicator-help-article-list {
|
||||
display: none;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.duplicator-help-article {
|
||||
margin: 0;
|
||||
padding: 0 0 14px 4px;
|
||||
}
|
||||
|
||||
.duplicator-help-article .fa-file-alt {
|
||||
color: #b6b6b6;
|
||||
font-size: 16px;
|
||||
margin: 0 14px 0 0;
|
||||
}
|
||||
|
||||
.duplicator-help-article a {
|
||||
border-bottom: 1px solid transparent;
|
||||
color: #666;
|
||||
font-size: 15px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#duplicator-help-footer {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
margin-top: 50px;
|
||||
}
|
||||
|
||||
.duplicator-help-footer-block {
|
||||
border: 1px solid #ddd;
|
||||
border-radius: 6px;
|
||||
box-sizing: border-box;
|
||||
max-width: 340px;
|
||||
padding: 25px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.duplicator-help-footer-block i {
|
||||
color: #999;
|
||||
font-size: 48px;
|
||||
margin: 0 0 20px 0;
|
||||
}
|
||||
|
||||
.duplicator-help-footer-block h3 {
|
||||
color: #444;
|
||||
font-size: 16px;
|
||||
margin: 0 0 10px 0;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.duplicator-help-footer-block p {
|
||||
color: #777777;
|
||||
font-size: 14px;
|
||||
margin: 0 0 20px 0;
|
||||
}
|
||||
|
||||
.duplicator-help-footer-block .button {
|
||||
border: 1px solid #af9ca6 !important;
|
||||
color: #4f394d !important;
|
||||
background: transparent !important;
|
||||
font-size: 15px !important;
|
||||
}
|
||||
</style>
|
||||
<div id="duplicator-help-wrapper">
|
||||
<div id="duplicator-help-header">
|
||||
<img src="<?php echo DUPLICATOR_PLUGIN_URL . 'assets/img/duplicator-header-logo.svg'; ?>" />
|
||||
</div>
|
||||
<div id="duplicator-help-content">
|
||||
<div id="duplicator-help-search">
|
||||
<input type="text" placeholder="<?php esc_attr_e("Search", "duplicator"); ?>" />
|
||||
<ul id="duplicator-help-search-results"></ul>
|
||||
<div id="duplicator-help-search-results-empty"><?php esc_html_e("No results found", "duplicator"); ?></div>
|
||||
</div>
|
||||
<div id="duplicator-context-articles">
|
||||
<?php if (count(Help::getInstance()->getArticlesByTag($tplData['tag'])) > 0) : ?>
|
||||
<h2><?php esc_html_e("Related Articles", "duplicator"); ?></h2>
|
||||
<?php $tplMng->render('parts/help/article-list', ['articles' => Help::getInstance()->getArticlesByTag($tplData['tag'])]); ?>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<div id="duplicator-help-categories">
|
||||
<?php $tplMng->render('parts/help/category-list', ['categories' => Help::getInstance()->getTopLevelCategories()]); ?>
|
||||
</div>
|
||||
<div id="duplicator-help-footer">
|
||||
<div class="duplicator-help-footer-block">
|
||||
<i aria-hidden="true" class="fa fa-file-alt"></i>
|
||||
<h3><?php esc_html_e("View Documentation", "duplicator"); ?></h3>
|
||||
<p>
|
||||
<?php esc_html_e("Browse documentation, reference material, and tutorials for Duplicator.", "duplicator"); ?>
|
||||
</p>
|
||||
<a
|
||||
href="<?php echo LinkManager::getDocUrl('', 'help-modal-footer', 'View All Docs'); ?>"
|
||||
rel="noopener noreferrer"
|
||||
target="_blank"
|
||||
class="button">
|
||||
<?php esc_html_e("View All Documentation", "duplicator"); ?>
|
||||
</a>
|
||||
</div>
|
||||
<div class="duplicator-help-footer-block">
|
||||
<i aria-hidden="true" class="fa fa-life-ring"></i>
|
||||
<h3><?php esc_html_e("Get Support", "duplicator"); ?></h3>
|
||||
<p><?php esc_html_e("Upgrade to Duplicator Pro to access our world class customer support.", "duplicator"); ?></p>
|
||||
<a
|
||||
href="<?php echo LinkManager::getCampaignUrl('help-modal-footer', 'Get Support'); ?>"
|
||||
rel="noopener noreferrer"
|
||||
target="_blank"
|
||||
class="button">
|
||||
<?php esc_html_e("Upgrade to Duplicator Pro", "duplicator"); ?>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* NoticeBar Education template for Lite.
|
||||
*
|
||||
* @package Duplicator
|
||||
*/
|
||||
|
||||
use Duplicator\Utils\LinkManager;
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
?>
|
||||
<script>
|
||||
jQuery(document).ready(function ($) {
|
||||
$(document).on(
|
||||
'click',
|
||||
'#dup-notice-bar .dup-dismiss-button',
|
||||
function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
$.post(ajaxurl, {
|
||||
action: 'duplicator_notice_bar_dismiss',
|
||||
nonce: '<?php echo wp_create_nonce('duplicator-notice-bar-dismiss'); ?>'
|
||||
});
|
||||
|
||||
$('#dup-notice-bar').hide().remove();
|
||||
}
|
||||
);
|
||||
});
|
||||
</script>
|
||||
<div id="dup-notice-bar">
|
||||
<span class="dup-notice-bar-message">
|
||||
<?php
|
||||
printf(
|
||||
wp_kses(
|
||||
/* translators: %s - duplicator.com Upgrade page URL. */
|
||||
__(
|
||||
'<strong>You\'re using Duplicator Lite.</strong> To unlock more features consider ' .
|
||||
'<a href="%s" target="_blank" rel="noopener noreferrer">upgrading to Pro</a>',
|
||||
'duplicator'
|
||||
),
|
||||
array(
|
||||
'a' => array(
|
||||
'href' => array(),
|
||||
'rel' => array(),
|
||||
'target' => array(),
|
||||
),
|
||||
'strong' => array(),
|
||||
)
|
||||
),
|
||||
esc_url(LinkManager::getCampaignUrl('lite-upgrade-bar', $tplData['utm_content']))
|
||||
);
|
||||
?>
|
||||
<a href="<?php echo esc_url(LinkManager::getCampaignUrl('lite-upgrade-bar', $tplData['utm_content'])); ?>"
|
||||
class="dup-upgrade-arrow" target="_blank" rel="noopener noreferrer">→</a>
|
||||
</span>
|
||||
<button type="button" class="dup-dismiss-button"
|
||||
title="<?php esc_attr_e('Dismiss this message.', 'duplicator'); ?>">
|
||||
</button>
|
||||
</div>
|
||||
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
*/
|
||||
|
||||
use Duplicator\Utils\LinkManager;
|
||||
|
||||
defined("ABSPATH") or die("");
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var Duplicator\Core\Controllers\ControllersManager $ctrlMng
|
||||
* @var Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
|
||||
|
||||
$upgradeUrl = LinkManager::getCampaignUrl('lite-multisite-notice', 'Upgrade now!')
|
||||
?>
|
||||
<span class='dashicons dashicons-warning'></span>
|
||||
<div class="dup-sub-content">
|
||||
<h3 class="margin-bottom-0 margin-top-0">
|
||||
<?php esc_html_e('Duplicator Lite does not officially support WordPress multisite functionality', 'duplicator-pro');?>
|
||||
</h3>
|
||||
<p>
|
||||
<?php
|
||||
echo esc_html_x(
|
||||
'By upgrading to the Elite or Pro plans you will unlock the ability to create backups and do advanced migrations on multi-site installations!',
|
||||
'1: name of pro plan, 2: name of elite plan',
|
||||
'duplicator-pro'
|
||||
);
|
||||
?>
|
||||
</p>
|
||||
<a class="button primary small target="_blank" href="<?php echo esc_url($upgradeUrl); ?>"><?php esc_html_e('Upgrade Now!', 'duplicator-pro'); ?></a>
|
||||
</div>
|
||||
@@ -0,0 +1,82 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* NoticeBar Education template for Lite.
|
||||
*
|
||||
* @package Duplicator
|
||||
*/
|
||||
|
||||
use Duplicator\Controllers\AboutUsController;
|
||||
use Duplicator\Core\Controllers\ControllersManager;
|
||||
use Duplicator\Utils\LinkManager;
|
||||
|
||||
defined("ABSPATH") || exit;
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
|
||||
$facebookIcon = '<svg width="16" height="16" aria-hidden="true"><path fill="#A7AAAD" d="M16 8.05A8.02 8.02 0 0 0 8 0C3.58 0 0 3.6 0 8.05A8 8 0 0 0 6.74 16v-5.61H4.71V8.05h2.03V6.3c0-2.02 1.2-3.15 3-3.15.9 0 1.8.16 1.8.16v1.98h-1c-1 0-1.31.62-1.31 1.27v1.49h2.22l-.35 2.34H9.23V16A8.02 8.02 0 0 0 16 8.05Z"/></svg>'; // phpcs:disable Generic.Files.LineLength.TooLong
|
||||
$xIcon = '<svg width="16" height="16" aria-hidden="true" viewBox="0 0 512 512"><path fill="#A7AAAD" d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"/></svg>'; // phpcs:disable Generic.Files.LineLength.TooLong
|
||||
$youtubeIcon = '<svg width="17" height="16" aria-hidden="true"><path fill="#A7AAAD" d="M16.63 3.9a2.12 2.12 0 0 0-1.5-1.52C13.8 2 8.53 2 8.53 2s-5.32 0-6.66.38c-.71.18-1.3.78-1.49 1.53C0 5.2 0 8.03 0 8.03s0 2.78.37 4.13c.19.75.78 1.3 1.5 1.5C3.2 14 8.51 14 8.51 14s5.28 0 6.62-.34c.71-.2 1.3-.75 1.49-1.5.37-1.35.37-4.13.37-4.13s0-2.81-.37-4.12Zm-9.85 6.66V5.5l4.4 2.53-4.4 2.53Z"/></svg>'; // phpcs:disable Generic.Files.LineLength.TooLong
|
||||
$links = [
|
||||
[
|
||||
'url' => 'https://wordpress.org/support/plugin/duplicator/',
|
||||
'text' => __('Support', 'duplicator'),
|
||||
],
|
||||
[
|
||||
'url' => LinkManager::getDocUrl('', 'plugin-lite-footer'),
|
||||
'text' => __('Docs', 'duplicator')
|
||||
],
|
||||
[
|
||||
'url' => 'https://duplicator.com/migration-services/',
|
||||
'text' => __('Migration Services', 'duplicator')
|
||||
],
|
||||
[
|
||||
'url' => ControllersManager::getMenuLink(ControllersManager::ABOUT_US_SUBMENU_SLUG, AboutUsController::ABOUT_US_TAB),
|
||||
'text' => __('Free Plugins', 'duplicator'),
|
||||
],
|
||||
];
|
||||
$count = count($links);
|
||||
|
||||
?>
|
||||
<div class="duplicator-footer-promotion">
|
||||
<p>
|
||||
<?php esc_html_e('Made with ♥ by the Duplicator Team', 'duplicator'); ?>
|
||||
</p>
|
||||
<ul class="duplicator-footer-promotion-links">
|
||||
<?php foreach ($links as $i => $item) : ?>
|
||||
<li>
|
||||
<a href="<?php echo esc_url($item['url']); ?>" target="_blank" rel="noopener noreferrer">
|
||||
<?php echo esc_html($item['text']); ?>
|
||||
</a>
|
||||
<?php if ($i < $count - 1) : ?>
|
||||
<span>/</span>
|
||||
<?php endif; ?>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<ul class="duplicator-footer-promotion-social">
|
||||
<li>
|
||||
<a href="https://www.facebook.com/snapcreek/" target="_blank" rel="noopener noreferrer">
|
||||
<?php echo $facebookIcon; ?>
|
||||
<span class="screen-reader-text"><?php echo esc_html('Facebook'); ?></span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://x.com/duplicatorwp" target="_blank" rel="noopener noreferrer">
|
||||
<?php echo $xIcon; ?>
|
||||
<span class="screen-reader-text"><?php echo esc_html('X'); ?></span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://www.youtube.com/c/Snapcreek" target="_blank" rel="noopener noreferrer">
|
||||
<?php echo $youtubeIcon; ?>
|
||||
<span class="screen-reader-text"><?php echo esc_html('YouTube'); ?></span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -0,0 +1,82 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Duplicator messages sections
|
||||
*
|
||||
* @package Duplicator
|
||||
* @copyright (c) 2022, Snap Creek LLC
|
||||
*/
|
||||
|
||||
defined("ABSPATH") or die("");
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var \Duplicator\Core\Controllers\ControllersManager $ctrlMng
|
||||
* @var \Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
$serverSettings = $tplData['serverSettings'];
|
||||
?>
|
||||
<table class="widefat" cellspacing="0">
|
||||
<?php foreach ($serverSettings as $section) : ?>
|
||||
<tr>
|
||||
<td class="dup-settings-diag-header" colspan="2"><?php echo esc_html($section['title']); ?></td>
|
||||
</tr>
|
||||
<?php foreach ($section['settings'] as $setting) : ?>
|
||||
<tr>
|
||||
<td>
|
||||
<?php if (!empty($setting['labelLink'])) : ?>
|
||||
<a href="<?php echo esc_url($setting['labelLink']); ?>" target="_blank">
|
||||
<?php echo esc_html($setting['label']); ?>
|
||||
</a>
|
||||
<?php else : ?>
|
||||
<?php echo esc_html($setting['label']); ?>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
<td>
|
||||
<?php echo esc_html($setting['value']); ?>
|
||||
<?php if (!empty($setting['valueNote'])) : ?>
|
||||
<small>
|
||||
<i>
|
||||
<?php echo wp_kses(
|
||||
$setting['valueNote'],
|
||||
[
|
||||
'a' => [
|
||||
'href' => [],
|
||||
'target' => [],
|
||||
],
|
||||
]
|
||||
); ?>
|
||||
</i>
|
||||
</small>
|
||||
<?php endif; ?>
|
||||
<?php if (!empty($setting['valueNoteBottom'])) : ?>
|
||||
<p>
|
||||
<small>
|
||||
<i>
|
||||
<?php echo wp_kses(
|
||||
$setting['valueNoteBottom'],
|
||||
[
|
||||
'a' => [
|
||||
'href' => [],
|
||||
'target' => [],
|
||||
],
|
||||
]
|
||||
); ?>
|
||||
</i>
|
||||
</small>
|
||||
</p>
|
||||
<?php endif; ?>
|
||||
<?php if (!empty($setting['valueTooltip'])) : ?>
|
||||
<i
|
||||
class="fa fa-question-circle data-size-help"
|
||||
data-tooltip-title="<?php echo __('Info', 'duplicator'); ?>"
|
||||
data-tooltip="<?php echo esc_attr($setting['valueTooltip']); ?>">
|
||||
</i>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
<?php endforeach; ?>
|
||||
</table>
|
||||
Reference in New Issue
Block a user