Duplicator – WordPress Migration Plugin - Version 1.2.14

Version Description

Download this release

Release Info

Developer cory@lamle.org
Plugin Icon 128x128 Duplicator – WordPress Migration Plugin
Version 1.2.14
Comparing to
See all releases

Code changes from version 1.2.12 to 1.2.14

classes/package/class.pack.installer.php CHANGED
@@ -163,7 +163,6 @@ class DUP_Installer
163
  "fwrite_dbuser" => $this->Package->Installer->OptsDBUser,
164
  "fwrite_dbpass" => '',
165
  "fwrite_ssl_admin" => $this->Package->Installer->OptsSSLAdmin,
166
- "fwrite_ssl_login" => $this->Package->Installer->OptsSSLLogin,
167
  "fwrite_cache_wp" => $this->Package->Installer->OptsCacheWP,
168
  "fwrite_cache_path" => $this->Package->Installer->OptsCachePath,
169
  "fwrite_wp_tableprefix" => $wpdb->prefix,
163
  "fwrite_dbuser" => $this->Package->Installer->OptsDBUser,
164
  "fwrite_dbpass" => '',
165
  "fwrite_ssl_admin" => $this->Package->Installer->OptsSSLAdmin,
 
166
  "fwrite_cache_wp" => $this->Package->Installer->OptsCacheWP,
167
  "fwrite_cache_path" => $this->Package->Installer->OptsCachePath,
168
  "fwrite_wp_tableprefix" => $wpdb->prefix,
define.php CHANGED
@@ -2,7 +2,7 @@
2
  //Prevent directly browsing to the file
3
  if (function_exists('plugin_dir_url'))
4
  {
5
- define('DUPLICATOR_VERSION', '1.2.12');
6
  define('DUPLICATOR_HOMEPAGE', 'http://lifeinthegrid.com/labs/duplicator');
7
  define('DUPLICATOR_PLUGIN_URL', plugin_dir_url(__FILE__));
8
  define('DUPLICATOR_SITE_URL', get_site_url());
@@ -44,7 +44,7 @@ if (function_exists('plugin_dir_url'))
44
  define('DUPLICATOR_SCAN_DB_TBL_ROWS', 100000); //100K rows per table
45
  define('DUPLICATOR_SCAN_DB_TBL_SIZE', 10485760); //10MB Table
46
  define('DUPLICATOR_SCAN_TIMEOUT', 150); //Seconds
47
- define('DUPLICATOR_SCAN_MIN_WP', '3.9.0');
48
 
49
  $GLOBALS['DUPLICATOR_SERVER_LIST'] = array('Apache','LiteSpeed', 'Nginx', 'Lighttpd', 'IIS', 'WebServerX', 'uWSGI');
50
  $GLOBALS['DUPLICATOR_OPTS_DELETE'] = array('duplicator_ui_view_state', 'duplicator_package_active', 'duplicator_settings');
2
  //Prevent directly browsing to the file
3
  if (function_exists('plugin_dir_url'))
4
  {
5
+ define('DUPLICATOR_VERSION', '1.2.14');
6
  define('DUPLICATOR_HOMEPAGE', 'http://lifeinthegrid.com/labs/duplicator');
7
  define('DUPLICATOR_PLUGIN_URL', plugin_dir_url(__FILE__));
8
  define('DUPLICATOR_SITE_URL', get_site_url());
44
  define('DUPLICATOR_SCAN_DB_TBL_ROWS', 100000); //100K rows per table
45
  define('DUPLICATOR_SCAN_DB_TBL_SIZE', 10485760); //10MB Table
46
  define('DUPLICATOR_SCAN_TIMEOUT', 150); //Seconds
47
+ define('DUPLICATOR_SCAN_MIN_WP', '4.0.0');
48
 
49
  $GLOBALS['DUPLICATOR_SERVER_LIST'] = array('Apache','LiteSpeed', 'Nginx', 'Lighttpd', 'IIS', 'WebServerX', 'uWSGI');
50
  $GLOBALS['DUPLICATOR_OPTS_DELETE'] = array('duplicator_ui_view_state', 'duplicator_package_active', 'duplicator_settings');
duplicator.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Duplicator
4
  Plugin URI: http://www.lifeinthegrid.com/duplicator/
5
  Description: Migrate and backup a copy of your WordPress files and database. Duplicate and move a site from one location to another quickly.
6
- Version: 1.2.12
7
  Author: Snap Creek
8
  Author URI: http://www.snapcreek.com/duplicator/
9
  Text Domain: duplicator
3
  Plugin Name: Duplicator
4
  Plugin URI: http://www.lifeinthegrid.com/duplicator/
5
  Description: Migrate and backup a copy of your WordPress files and database. Duplicate and move a site from one location to another quickly.
6
+ Version: 1.2.14
7
  Author: Snap Creek
8
  Author URI: http://www.snapcreek.com/duplicator/
9
  Text Domain: duplicator
installer/build/assets/inc.css.php CHANGED
@@ -129,6 +129,8 @@
129
  div.s2-gopro {color: black; margin-top:10px; padding:0 20px 10px 20px; border: 1px solid silver; background-color:#F6F6F6; border-radius: 4px}
130
  div.s2-gopro h2 {text-align: center; margin:10px}
131
  div.s2-gopro small {font-style: italic}
 
 
132
 
133
  /*Advanced Options & Warning Area*/
134
  div#s2-area-adv-opts label {cursor: pointer}
129
  div.s2-gopro {color: black; margin-top:10px; padding:0 20px 10px 20px; border: 1px solid silver; background-color:#F6F6F6; border-radius: 4px}
130
  div.s2-gopro h2 {text-align: center; margin:10px}
131
  div.s2-gopro small {font-style: italic}
132
+ div.s2-cpanel-login {padding:15px; color:#fff; text-align:center; margin:15px 5px 15px 5px; border:1px solid silver; border-radius:5px; background-color:#13659C; font-size:14px; line-height:22px}
133
+ div.s2-cpanel-off {padding:15px; color:#fff; text-align:center; margin:15px 5px 15px 5px; border:1px solid silver; border-radius:5px; background-color:#b54949; font-size:14px; line-height:22px}
134
 
135
  /*Advanced Options & Warning Area*/
136
  div#s2-area-adv-opts label {cursor: pointer}
installer/build/classes/config/class.conf.wp.php CHANGED
@@ -48,15 +48,6 @@ class DUPX_WPConfig
48
  array_push($replace, "'FORCE_SSL_ADMIN', false");
49
  }
50
 
51
- if ($_POST['ssl_login']) {
52
- if (!strstr($wpconfig, 'FORCE_SSL_LOGIN')) {
53
- $wpconfig = $wpconfig.PHP_EOL."define('FORCE_SSL_LOGIN', true);";
54
- }
55
- } else {
56
- array_push($patterns, "/'FORCE_SSL_LOGIN',\s*true/");
57
- array_push($replace, "'FORCE_SSL_LOGIN', false");
58
- }
59
-
60
  //CACHE CHECKS
61
  if ($_POST['cache_wp']) {
62
  if (!strstr($wpconfig, 'WP_CACHE')) {
48
  array_push($replace, "'FORCE_SSL_ADMIN', false");
49
  }
50
 
 
 
 
 
 
 
 
 
 
51
  //CACHE CHECKS
52
  if ($_POST['cache_wp']) {
53
  if (!strstr($wpconfig, 'WP_CACHE')) {
installer/build/classes/utilities/class.u.php CHANGED
@@ -16,7 +16,7 @@ class DUPX_U
16
  *
17
  * @param string $path A path
18
  *
19
- * @return string The orginal $path with a with '/' added to the end.
20
  */
21
  public static function addSlash($path)
22
  {
@@ -64,7 +64,7 @@ class DUPX_U
64
  * Returns 256 spaces
65
  *
66
  * PHP_SAPI for fcgi requires a data flush of at least 256
67
- * bytes every 40 seconds or else it forces a script hault
68
  *
69
  * @return string A series of 256 spaces ' '
70
  */
@@ -107,7 +107,7 @@ class DUPX_U
107
  }
108
 
109
  /**
110
- * Check to see if the internet is accessable
111
  *
112
  * Note: fsocketopen on windows doesn't seem to honor $timeout setting.
113
  *
@@ -146,11 +146,11 @@ class DUPX_U
146
 
147
 
148
  /**
149
- * Is the string json
150
  *
151
  * @param string $string Any string blob
152
  *
153
- * @return bool Returns true if the string is json encoded
154
  */
155
  public static function isJSON($string)
156
  {
@@ -192,7 +192,7 @@ class DUPX_U
192
  *
193
  * @param $val Memory size shorthand notation string such as 10M, 1G
194
  *
195
- * @returns int The byte representation of the shortand $val
196
  */
197
  public static function getBytes($val)
198
  {
@@ -217,12 +217,12 @@ class DUPX_U
217
  * Makes path safe for any OS for PHP
218
  *
219
  * Paths should ALWAYS READ be "/"
220
- * uni: /home/path/file.xt
221
  * win: D:/home/path/file.txt
222
  *
223
  * @param string $path The path to make safe
224
  *
225
- * @return string The orginal $path with a with all slashes facing '/'.
226
  */
227
  public static function setSafePath($path)
228
  {
@@ -235,7 +235,7 @@ class DUPX_U
235
  * @param array $list An array of strings to search for
236
  * @param string $haystack The string blob to search through
237
  *
238
- * @return array An array of strings from the $list array fround in the $haystack
239
  */
240
  public static function getListValues($list, $haystack)
241
  {
@@ -249,12 +249,12 @@ class DUPX_U
249
  }
250
 
251
  /**
252
- * Makes path unsafe for any OS for PHP used primarly to show default
253
- * Winodws OS path standard
254
  *
255
  * @param string $path The path to make unsafe
256
  *
257
- * @return string The orginal $path with a with all slashes facing '\'.
258
  */
259
  public static function unsetSafePath($path)
260
  {
16
  *
17
  * @param string $path A path
18
  *
19
+ * @return string The original $path with a with '/' added to the end.
20
  */
21
  public static function addSlash($path)
22
  {
64
  * Returns 256 spaces
65
  *
66
  * PHP_SAPI for fcgi requires a data flush of at least 256
67
+ * bytes every 40 seconds or else it forces a script halt
68
  *
69
  * @return string A series of 256 spaces ' '
70
  */
107
  }
108
 
109
  /**
110
+ * Check to see if the internet is accessible
111
  *
112
  * Note: fsocketopen on windows doesn't seem to honor $timeout setting.
113
  *
146
 
147
 
148
  /**
149
+ * Is the string JSON
150
  *
151
  * @param string $string Any string blob
152
  *
153
+ * @return bool Returns true if the string is JSON encoded
154
  */
155
  public static function isJSON($string)
156
  {
192
  *
193
  * @param $val Memory size shorthand notation string such as 10M, 1G
194
  *
195
+ * @returns int The byte representation of the shorthand $val
196
  */
197
  public static function getBytes($val)
198
  {
217
  * Makes path safe for any OS for PHP
218
  *
219
  * Paths should ALWAYS READ be "/"
220
+ * uni: /home/path/file.txt
221
  * win: D:/home/path/file.txt
222
  *
223
  * @param string $path The path to make safe
224
  *
225
+ * @return string The original $path with a with all slashes facing '/'.
226
  */
227
  public static function setSafePath($path)
228
  {
235
  * @param array $list An array of strings to search for
236
  * @param string $haystack The string blob to search through
237
  *
238
+ * @return array An array of strings from the $list array found in the $haystack
239
  */
240
  public static function getListValues($list, $haystack)
241
  {
249
  }
250
 
251
  /**
252
+ * Makes path unsafe for any OS for PHP used primarily to show default
253
+ * Windows OS path standard
254
  *
255
  * @param string $path The path to make unsafe
256
  *
257
+ * @return string The original $path with a with all slashes facing '\'.
258
  */
259
  public static function unsetSafePath($path)
260
  {
installer/build/ctrls/ctrl.step2.php CHANGED
@@ -3,7 +3,6 @@
3
  $_POST['dbaction'] = isset($_POST['dbaction']) ? $_POST['dbaction'] : 'create';
4
  $_POST['dbnbsp'] = (isset($_POST['dbnbsp']) && $_POST['dbnbsp'] == '1') ? true : false;
5
  $_POST['ssl_admin'] = (isset($_POST['ssl_admin'])) ? true : false;
6
- $_POST['ssl_login'] = (isset($_POST['ssl_login'])) ? true : false;
7
  $_POST['cache_wp'] = (isset($_POST['cache_wp'])) ? true : false;
8
  $_POST['cache_path'] = (isset($_POST['cache_path'])) ? true : false;
9
  $_POST['archive_name'] = isset($_POST['archive_name']) ? $_POST['archive_name'] : null;
3
  $_POST['dbaction'] = isset($_POST['dbaction']) ? $_POST['dbaction'] : 'create';
4
  $_POST['dbnbsp'] = (isset($_POST['dbnbsp']) && $_POST['dbnbsp'] == '1') ? true : false;
5
  $_POST['ssl_admin'] = (isset($_POST['ssl_admin'])) ? true : false;
 
6
  $_POST['cache_wp'] = (isset($_POST['cache_wp'])) ? true : false;
7
  $_POST['cache_path'] = (isset($_POST['cache_path'])) ? true : false;
8
  $_POST['archive_name'] = isset($_POST['archive_name']) ? $_POST['archive_name'] : null;
installer/build/ctrls/ctrl.step3.php CHANGED
@@ -293,7 +293,7 @@ DUPX_Log::info("- Created file ". DUPLICATOR_SSDIR_NAME . '/index.php');
293
  DUPX_Log::info("\n====================================");
294
  DUPX_Log::info("NOTICES");
295
  DUPX_Log::info("====================================\n");
296
- $config_vars = array('WP_CONTENT_DIR', 'WP_CONTENT_URL', 'WPCACHEHOME', 'COOKIE_DOMAIN', 'WP_SITEURL', 'WP_HOME', 'WP_TEMP_DIR');
297
  $config_found = DUPX_U::getListValues($config_vars, $config_file);
298
 
299
  //Config File:
293
  DUPX_Log::info("\n====================================");
294
  DUPX_Log::info("NOTICES");
295
  DUPX_Log::info("====================================\n");
296
+ $config_vars = array('WPCACHEHOME', 'COOKIE_DOMAIN', 'WP_SITEURL', 'WP_HOME', 'WP_TEMP_DIR');
297
  $config_found = DUPX_U::getListValues($config_vars, $config_file);
298
 
299
  //Config File:
installer/build/main.installer.php CHANGED
@@ -95,7 +95,6 @@ $GLOBALS['FW_DBNAME'] = '%fwrite_dbname%';
95
  $GLOBALS['FW_DBUSER'] = '%fwrite_dbuser%';
96
  $GLOBALS['FW_DBPASS'] = '%fwrite_dbpass%';
97
  $GLOBALS['FW_SSL_ADMIN'] = '%fwrite_ssl_admin%';
98
- $GLOBALS['FW_SSL_LOGIN'] = '%fwrite_ssl_login%';
99
  $GLOBALS['FW_CACHE_WP'] = '%fwrite_cache_wp%';
100
  $GLOBALS['FW_CACHE_PATH'] = '%fwrite_cache_path%';
101
  $GLOBALS['FW_BLOGNAME'] = '%fwrite_blogname%';
95
  $GLOBALS['FW_DBUSER'] = '%fwrite_dbuser%';
96
  $GLOBALS['FW_DBPASS'] = '%fwrite_dbpass%';
97
  $GLOBALS['FW_SSL_ADMIN'] = '%fwrite_ssl_admin%';
 
98
  $GLOBALS['FW_CACHE_WP'] = '%fwrite_cache_wp%';
99
  $GLOBALS['FW_CACHE_PATH'] = '%fwrite_cache_path%';
100
  $GLOBALS['FW_BLOGNAME'] = '%fwrite_blogname%';
installer/build/view.help.php CHANGED
@@ -395,7 +395,7 @@ STEP 3
395
  <tr>
396
  <td>Config SSL</td>
397
  <td>Turn off SSL support for WordPress. This sets FORCE_SSL_ADMIN in your wp-config file to false if true, otherwise it will create the setting if not set. The "Enforce on Login"
398
- will turn off SSL support for WordPress Logins. This sets FORCE_SSL_LOGIN in your wp-config file to false if true, otherwise it will create the setting if not set.</td>
399
  </tr>
400
  <tr>
401
  <td>Config Cache</td>
395
  <tr>
396
  <td>Config SSL</td>
397
  <td>Turn off SSL support for WordPress. This sets FORCE_SSL_ADMIN in your wp-config file to false if true, otherwise it will create the setting if not set. The "Enforce on Login"
398
+ will turn off SSL support for WordPress Logins. </td>
399
  </tr>
400
  <tr>
401
  <td>Config Cache</td>
installer/build/view.step2.php CHANGED
@@ -80,23 +80,35 @@ VIEW: STEP 2- INPUT -->
80
  <div id="s2-cpnl-pane">
81
  <div class="s2-gopro">
82
  <h2>cPanel Connectivity</h2>
83
- <div style="text-align: center">
84
- <a target="_blank" href="https://snapcreek.com/duplicator/?utm_source=duplicator_free&utm_medium=wordpress_plugin&utm_content=free_install_step2&utm_campaign=duplicator_pro">Duplicator Pro</a>
85
- takes advantage of your hosts <br/>
86
- cPanel interface directly <b>from this installer!</b>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
87
  </div>
88
- <b>Features Include:</b>
89
  <ul>
90
- <li>Fast cPanel Login</li>
91
- <li>Create New Databases</li>
92
- <li>Create New Database Users</li>
93
- <li>Preview and Select Existing Databases and Users</li>
94
  </ul>
95
  <small>
96
- Note: Most hosting providers do not allow applications to create new databases or database users directly from PHP. However with the cPanel API these restrictions
97
- are removed opening up a robust interface for direct access to existing database resources. You can take advantage of these great features and improve your work-flow with
98
- <a target="_blank" href="https://snapcreek.com/duplicator/?utm_source=duplicator_free&utm_medium=wordpress_plugin&utm_content=free_install_step2&utm_campaign=duplicator_pro">Duplicator Pro!</a>
99
- </small>
100
  </div>
101
  </div>
102
 
80
  <div id="s2-cpnl-pane">
81
  <div class="s2-gopro">
82
  <h2>cPanel Connectivity</h2>
83
+
84
+ <?php if( DUPX_U::isURLActive($_SERVER['SERVER_NAME'], 2083) ): ?>
85
+ <div class='s2-cpanel-login'>
86
+ <b>Login to this server's cPanel</b><br/>
87
+ <a href="https://<?php echo $_SERVER['SERVER_NAME'] ?>:2083" target="cpanel" style="color:#fff">[<?php echo $_SERVER['SERVER_NAME'] ?>:2083]</a>
88
+ </div>
89
+ <?php else : ?>
90
+ <div class='s2-cpanel-off'>
91
+ <b>This server does not appear to support cPanel!</b><br/>
92
+ Consider <a href="https://snapcreek.com/wordpress-hosting/?utm_source=duplicator_free&utm_medium=wordpress_plugin&utm_content=free_install_no_cpanel&utm_campaign=duplicator_pro" target="cpanel" style="color:#fff;font-weight:bold">upgrading</a> to a host that does.<br/>
93
+ </div>
94
+ <?php endif; ?>
95
+
96
+
97
+ <div style="text-align: center; font-size: 14px">
98
+ Want <span style="font-style: italic;">even easier</span> installs?
99
+ <a target="_blank" href="https://snapcreek.com/duplicator/?utm_source=duplicator_free&amp;utm_medium=wordpress_plugin&amp;utm_content=free_install_step2&amp;utm_campaign=duplicator_pro"><b>Duplicator Pro</b></a>
100
+ allows the following <b>right from the installer:</b>
101
  </div>
 
102
  <ul>
103
+ <li>Directly login to cPanel</li>
104
+ <li>Instantly create new databases &amp; users</li>
105
+ <li>Preview and select existing databases &amp; users</li>
 
106
  </ul>
107
  <small>
108
+ Note: Hosts that support cPanel provide remote access to server resources, allowing operations such as direct database and user creation.
109
+ Since the <a target="_blank" href="https://snapcreek.com/duplicator/?utm_source=duplicator_free&utm_medium=wordpress_plugin&utm_content=free_install_cpanel_note&utm_campaign=duplicator_pro">Duplicator Pro</a>
110
+ installer can directly access cPanel, it dramatically speeds up your workflow.
111
+ </small>
112
  </div>
113
  </div>
114
 
installer/build/view.step3.php CHANGED
@@ -147,9 +147,9 @@ VIEW: STEP 3- INPUT -->
147
  </table>
148
  <br/>
149
 
150
- <input type="checkbox" name="urlextended" id="urlextended" value="1" /> <label for="urlextended">Enable Extended URL Replace <small>(Searches multiple protocols: '//', 'http', 'https')</small></label><br/>
 
151
  <input type="checkbox" name="postguid" id="postguid" value="1" /> <label for="postguid">Keep Post GUID unchanged</label><br/>
152
- <input type="checkbox" name="fullsearch" id="fullsearch" value="1" /> <label for="fullsearch">Enable Full Search <small>(slower to process)</small> </label><br/>
153
  <br/><br/>
154
 
155
  <!-- WP-CONFIG -->
@@ -163,7 +163,7 @@ VIEW: STEP 3- INPUT -->
163
  <tr>
164
  <td>SSL:</td>
165
  <td><input type="checkbox" name="ssl_admin" id="ssl_admin" <?php echo ($GLOBALS['FW_SSL_ADMIN']) ? "checked='checked'" : ""; ?> /> <label for="ssl_admin">Enforce on Admin</label></td>
166
- <td><input type="checkbox" name="ssl_login" id="ssl_login" <?php echo ($GLOBALS['FW_SSL_LOGIN']) ? "checked='checked'" : ""; ?> /> <label for="ssl_login">Enforce on Login</label></td>
167
  </tr>
168
  </table>
169
  <br/><br/><br/>
147
  </table>
148
  <br/>
149
 
150
+ <input type="checkbox" name="urlextended" id="urlextended" value="1" checked="true" /> <label for="urlextended">Enable Extended URL Replace</label><br/>
151
+ <input type="checkbox" name="fullsearch" id="fullsearch" value="1" /> <label for="fullsearch">Enable Full Search </label><br/>
152
  <input type="checkbox" name="postguid" id="postguid" value="1" /> <label for="postguid">Keep Post GUID unchanged</label><br/>
 
153
  <br/><br/>
154
 
155
  <!-- WP-CONFIG -->
163
  <tr>
164
  <td>SSL:</td>
165
  <td><input type="checkbox" name="ssl_admin" id="ssl_admin" <?php echo ($GLOBALS['FW_SSL_ADMIN']) ? "checked='checked'" : ""; ?> /> <label for="ssl_admin">Enforce on Admin</label></td>
166
+ <td></td>
167
  </tr>
168
  </table>
169
  <br/><br/><br/>
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: www.lifeinthegrid.com/partner
4
  Tags: migration, backup, restore, move, migrate, duplicate, transfer, clone, automate, copy site
5
  Requires at least: 4.0
6
  Tested up to: 4.8
7
- Stable tag: 1.2.12
8
  License: GPLv2
9
 
10
  WordPress migration and backups are much easier with Duplicator! Clone, backup, move and transfer an entire site from one location to another.
4
  Tags: migration, backup, restore, move, migrate, duplicate, transfer, clone, automate, copy site
5
  Requires at least: 4.0
6
  Tested up to: 4.8
7
+ Stable tag: 1.2.14
8
  License: GPLv2
9
 
10
  WordPress migration and backups are much easier with Duplicator! Clone, backup, move and transfer an entire site from one location to another.
views/packages/main/packages.php CHANGED
@@ -9,7 +9,7 @@
9
  ?>
10
 
11
  <style>
12
- div#dup-list-alert-nodata {padding:50px 20px;text-align:center; font-size:20px; line-height:26px}
13
  div.dup-notice-msg {border:1px solid silver; padding: 10px; border-radius: 5px; width: 550px;
14
  margin:40px auto 0px auto; font-size:12px; text-align: left; word-break:normal;
15
  background: #fefcea;
@@ -19,6 +19,7 @@
19
  }
20
  input#dup-bulk-action-all {margin:0px;padding:0px 0px 0px 5px;}
21
  button.dup-button-selected {border:1px solid #000 !important; background-color:#dfdfdf !important;}
 
22
 
23
  /* Table package details */
24
  table.dup-pack-table {word-break:break-all;}
@@ -79,7 +80,12 @@ TOOL-BAR -->
79
  <div id='dup-list-alert-nodata'>
80
  <i class="fa fa-archive"></i>
81
  <?php _e("No Packages Found.", 'duplicator'); ?><br/>
82
- <?php _e("Click the 'Create New' button to build a package.", 'duplicator'); ?>
 
 
 
 
 
83
  <div style="height:75px">&nbsp;</div>
84
  </div>
85
  </td>
9
  ?>
10
 
11
  <style>
12
+ div#dup-list-alert-nodata {padding:70px 20px;text-align:center; font-size:20px; line-height:26px}
13
  div.dup-notice-msg {border:1px solid silver; padding: 10px; border-radius: 5px; width: 550px;
14
  margin:40px auto 0px auto; font-size:12px; text-align: left; word-break:normal;
15
  background: #fefcea;
19
  }
20
  input#dup-bulk-action-all {margin:0px;padding:0px 0px 0px 5px;}
21
  button.dup-button-selected {border:1px solid #000 !important; background-color:#dfdfdf !important;}
22
+ div.dup-quick-start {font-style:italic; font-size: 13px; line-height: 18px; margin-top: 15px}
23
 
24
  /* Table package details */
25
  table.dup-pack-table {word-break:break-all;}
80
  <div id='dup-list-alert-nodata'>
81
  <i class="fa fa-archive"></i>
82
  <?php _e("No Packages Found.", 'duplicator'); ?><br/>
83
+ <?php _e("Click the 'Create New' button to build a package.", 'duplicator'); ?><br/>
84
+ <div class="dup-quick-start">
85
+ <?php _e("New to Duplicator?", 'duplicator'); ?><br/>
86
+ <a href="https://snapcreek.com/duplicator/docs/quick-start/" target="_blank"><?php _e("Check out the 'Quick Start' guide!", 'duplicator'); ?></a>
87
+ </div>
88
+
89
  <div style="height:75px">&nbsp;</div>
90
  </div>
91
  </td>
views/packages/main/s3.build.php CHANGED
@@ -2,16 +2,18 @@
2
  $Package = DUP_Package::getActive();
3
  $ajax_nonce = wp_create_nonce('dup_package_build');
4
 
5
- // Allows for auto cycling of message in the future - just add dp_texts[n] and dp_contents[n]
6
- $dp_texts = array();
7
- $dp_texts[0] = __('Get even more power & features with', 'duplicator');
8
- $dp_contents[] = array();
9
- $dp_contents[0] = 'package_build_more_power';
10
- $dp_index = rand(0, count($dp_contents) - 1);
11
- $dp_text = $dp_texts[$dp_index];
12
- $dp_content = $dp_contents[$dp_index];
13
- $dp_url = "https://snapcreek.com/duplicator/?utm_source=duplicator_free&utm_medium=wordpress_plugin&utm_content={$dp_content}&utm_campaign=duplicator_pro";
14
 
 
 
 
 
 
 
 
 
15
  ?>
16
 
17
  <style>
@@ -33,7 +35,7 @@
33
  div.dup-button-footer {text-align:right; margin:20px 10px 0px 0px}
34
  button.button {font-size:16px !important; height:30px !important; font-weight:bold; padding:0px 10px 5px 10px !important; min-width: 150px }
35
  span.dup-btn-size {font-size:11px;font-weight: normal}
36
- p.get-pro {font-size:12px; color:#777; border-top:1px solid #eeeeee; padding:5px 0 0 0; margin:0; font-style:italic}
37
  </style>
38
 
39
  <!-- =========================================
@@ -96,7 +98,7 @@ TOOL BAR: STEPS -->
96
  <i class="fa fa-file-archive-o"></i> <?php _e("Archive", 'duplicator') ?>
97
  <span id="dup-btn-archive-size" class="dup-btn-size"></span>
98
  </button>
99
- <div style='margin: 7px 0 20px 0; color:#999'>
100
  <small><i><?php _e("click buttons to download", 'duplicator') ?></i></small>
101
  </div>
102
  <div class="dup-msg-success-links">
@@ -105,7 +107,7 @@ TOOL BAR: STEPS -->
105
  </div>
106
  <br/>
107
  <p class="get-pro">
108
- <?php echo $dp_text ?>&nbsp;<a target="_blank" href="<?php echo $dp_url;?>"><?php _e('Professional', 'duplicator'); ?></a>!
109
  </p>
110
  </div>
111
 
2
  $Package = DUP_Package::getActive();
3
  $ajax_nonce = wp_create_nonce('dup_package_build');
4
 
5
+ //Help support Duplicator
6
+ $atext0 = __('Help', 'duplicator') . "&nbsp;<a target='_blank' href='https://wordpress.org/support/plugin/duplicator/reviews/?filter=5'>";
7
+ $atext0 .= __('review the plugin', 'duplicator') . '</a>&nbsp;' . __('on WordPress.org!', 'duplicator');
 
 
 
 
 
 
8
 
9
+ //Get even more power & features with Professional
10
+ $atext1 = __('Get even more power & features with', 'duplicator');
11
+ $atext1 .= "&nbsp;<a target='_blank' href='https://snapcreek.com/duplicator/?utm_source=duplicator_free&utm_medium=wordpress_plugin&utm_content=package_build_more_power&utm_campaign=duplicator_pro'>";
12
+ $atext1 .= __('Professional', 'duplicator') . '</a>!';
13
+
14
+ $rand_txt = array();
15
+ $rand_txt[0] = $atext0;
16
+ $rand_txt[1] = $atext1;
17
  ?>
18
 
19
  <style>
35
  div.dup-button-footer {text-align:right; margin:20px 10px 0px 0px}
36
  button.button {font-size:16px !important; height:30px !important; font-weight:bold; padding:0px 10px 5px 10px !important; min-width: 150px }
37
  span.dup-btn-size {font-size:11px;font-weight: normal}
38
+ p.get-pro {font-size:12px; color:#999; border-top:1px solid #eeeeee; padding:5px 0 0 0; margin:0; font-style:italic}
39
  </style>
40
 
41
  <!-- =========================================
98
  <i class="fa fa-file-archive-o"></i> <?php _e("Archive", 'duplicator') ?>
99
  <span id="dup-btn-archive-size" class="dup-btn-size"></span>
100
  </button>
101
+ <div style='margin: 7px 0 40px 0; color:#999'>
102
  <small><i><?php _e("click buttons to download", 'duplicator') ?></i></small>
103
  </div>
104
  <div class="dup-msg-success-links">
107
  </div>
108
  <br/>
109
  <p class="get-pro">
110
+ <?php echo $rand_txt[array_rand($rand_txt, 1)]; ?>
111
  </p>
112
  </div>
113
 
views/settings/schedule.php CHANGED
@@ -16,7 +16,7 @@
16
  ?>
17
  </div>
18
  <p style="text-align:center">
19
- <a href="https://snapcreek.com/duplicator/?utm_source=duplicator_free&utm_medium=wordpress_plugin&utm_content=free_manual_transfer&utm_campaign=duplicator_pro" target="_blank" class="button button-primary button-large dup-check-it-btn" >
20
  <?php _e('Learn More', 'duplicator') ?>
21
  </a>
22
  </p>
16
  ?>
17
  </div>
18
  <p style="text-align:center">
19
+ <a href="https://snapcreek.com/duplicator/?utm_source=duplicator_free&utm_medium=wordpress_plugin&utm_content=free_settings_schedule&utm_campaign=duplicator_pro" target="_blank" class="button button-primary button-large dup-check-it-btn" >
20
  <?php _e('Learn More', 'duplicator') ?>
21
  </a>
22
  </p>