Version Description
- New: Tested up to WP 4.6
- New: Create a poll and ask what feature is most required
Download this release
Release Info
Developer | ReneHermi |
Plugin | WP Staging – DB & File Duplicator & Migration |
Version | 1.1.0 |
Comparing to | |
See all releases |
Code changes from version 1.0.9 to 1.1.0
- includes/admin/admin-notices.php +74 -5
- includes/install.php +29 -30
- readme.txt +11 -5
- uninstall.php +1 -0
- wp-staging.php +14 -14
includes/admin/admin-notices.php
CHANGED
@@ -21,9 +21,15 @@ if ( ! defined( 'ABSPATH' ) ) exit;
|
|
21 |
*/
|
22 |
function wpstg_admin_messages() {
|
23 |
global $wpstg_options;
|
24 |
-
|
25 |
-
|
26 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
echo '<div class="error">';
|
28 |
echo '<p><strong>WP Staging Folder Permission error: </strong>' . wpstg_get_upload_dir() . ' is not write and/or readable. <br> Check if the folder <strong>'.wpstg_get_upload_dir().'</strong> exists! File permissions should be chmod 755 or 777.</p>';
|
29 |
echo '</div>';
|
@@ -89,7 +95,7 @@ function wpstg_admin_messages() {
|
|
89 |
async: !0,
|
90 |
success: function(e) {
|
91 |
if (e=="success") {
|
92 |
-
jQuery(\'.wpstg_fivestar\').slideUp(\'
|
93 |
}
|
94 |
}
|
95 |
});
|
@@ -104,7 +110,7 @@ function wpstg_admin_messages() {
|
|
104 |
async: !0,
|
105 |
success: function(e) {
|
106 |
if (e=="success") {
|
107 |
-
jQuery(\'.wpstg_beta_notice\').slideUp(\'
|
108 |
}
|
109 |
}
|
110 |
});
|
@@ -116,6 +122,69 @@ function wpstg_admin_messages() {
|
|
116 |
}
|
117 |
add_action( 'admin_notices', 'wpstg_admin_messages' );
|
118 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
|
120 |
/**
|
121 |
* Show a message when pro or free plugin become disabled
|
21 |
*/
|
22 |
function wpstg_admin_messages() {
|
23 |
global $wpstg_options;
|
24 |
+
|
25 |
+
// show admin notices only to admins
|
26 |
+
if( !current_user_can( 'update_plugins' ) ) {
|
27 |
+
return;
|
28 |
+
}
|
29 |
+
|
30 |
+
wpstg_start_poll();
|
31 |
+
|
32 |
+
if ( wpstg_is_admin_page() && !wp_is_writable( wpstg_get_upload_dir() ) ){
|
33 |
echo '<div class="error">';
|
34 |
echo '<p><strong>WP Staging Folder Permission error: </strong>' . wpstg_get_upload_dir() . ' is not write and/or readable. <br> Check if the folder <strong>'.wpstg_get_upload_dir().'</strong> exists! File permissions should be chmod 755 or 777.</p>';
|
35 |
echo '</div>';
|
95 |
async: !0,
|
96 |
success: function(e) {
|
97 |
if (e=="success") {
|
98 |
+
jQuery(\'.wpstg_fivestar\').slideUp(\'fast\');
|
99 |
}
|
100 |
}
|
101 |
});
|
110 |
async: !0,
|
111 |
success: function(e) {
|
112 |
if (e=="success") {
|
113 |
+
jQuery(\'.wpstg_beta_notice\').slideUp(\'fast\');
|
114 |
}
|
115 |
}
|
116 |
});
|
122 |
}
|
123 |
add_action( 'admin_notices', 'wpstg_admin_messages' );
|
124 |
|
125 |
+
/**
|
126 |
+
* Ask for a doing a poll
|
127 |
+
*/
|
128 |
+
function wpstg_start_poll(){
|
129 |
+
|
130 |
+
$install_date = get_option('wpstg_installDate');
|
131 |
+
$display_date = date('Y-m-d h:i:s');
|
132 |
+
$datetime1 = new DateTime($install_date);
|
133 |
+
$datetime2 = new DateTime($display_date);
|
134 |
+
$diff_intrval = round(($datetime2->format('U') - $datetime1->format('U')) / (60*60*24));
|
135 |
+
|
136 |
+
if($diff_intrval >= 10 && get_option('wpstg_start_poll') !== 'no')
|
137 |
+
{
|
138 |
+
echo '<div class="wpstg_poll update-nag" style="box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);">
|
139 |
+
<p>Great, You are using <strong>WP Staging</strong> for a while. Hope you are happy with it.<br><br>Are you interested in copying changes from WPStaging staging site back to your live site?
|
140 |
+
<br><br>Click on the <a href="" target="_blank"><i>Yes, i am interested</i></a> Button and fill out the poll!<br>It only takes one (1) minute of your time - I promise!
|
141 |
+
<br><br>Cheers,<br>René
|
142 |
+
<ul>
|
143 |
+
<li class="float:left"><a href="https://docs.google.com/forms/d/e/1FAIpQLScZ-dO5WffV3xObn16LwG05tr1HrADD_8L4wbTxPHqoPssVcg/viewform?c=0&w=1&usp=mail_form_link" class="thankyou button button-primary" target="_new" title=Yes, i am interested" style="color: #ffffff;font-weight: normal;margin-right:10px;float:left;">Yes, i am interested</a></li>
|
144 |
+
<li><a href="javascript:void(0);" class="wpstg_hide_poll" title="Close It" style="vertical-align:middle;">Do Not Ask Again</a></li>
|
145 |
+
</ul>
|
146 |
+
</div>
|
147 |
+
<script>
|
148 |
+
jQuery( document ).ready(function( $ ) {
|
149 |
+
jQuery(\'.wpstg_hide_poll\').click(function(){
|
150 |
+
var data={\'action\':\'wpstg_hide_poll\'}
|
151 |
+
jQuery.ajax({
|
152 |
+
url: "'.admin_url( 'admin-ajax.php' ).'",
|
153 |
+
type: "post",
|
154 |
+
data: data,
|
155 |
+
dataType: "json",
|
156 |
+
async: !0,
|
157 |
+
success: function(e) {
|
158 |
+
if (e=="success") {
|
159 |
+
jQuery(\'.wpstg_poll\').slideUp(\'fast\');
|
160 |
+
}
|
161 |
+
}
|
162 |
+
});
|
163 |
+
})
|
164 |
+
});
|
165 |
+
</script>
|
166 |
+
';
|
167 |
+
}
|
168 |
+
}
|
169 |
+
|
170 |
+
|
171 |
+
/* Hide the poll notice
|
172 |
+
*
|
173 |
+
* @subpackage Admin/Notices
|
174 |
+
* @copyright Copyright (c) 2016, René Hermenau
|
175 |
+
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
|
176 |
+
* @since 1.1.0
|
177 |
+
*
|
178 |
+
* @return json string
|
179 |
+
*
|
180 |
+
*/
|
181 |
+
|
182 |
+
function wpstg_hide_poll(){
|
183 |
+
update_option('wpstg_start_poll','no');
|
184 |
+
echo json_encode(array("success")); exit;
|
185 |
+
}
|
186 |
+
add_action('wp_ajax_wpstg_hide_poll','wpstg_hide_poll');
|
187 |
+
|
188 |
|
189 |
/**
|
190 |
* Show a message when pro or free plugin become disabled
|
includes/install.php
CHANGED
@@ -57,44 +57,43 @@ if ( ! defined( 'ABSPATH' ) ) exit;
|
|
57 |
|
58 |
|
59 |
function wpstg_install() {
|
60 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
|
62 |
-
// Add Upgraded from Option
|
63 |
-
$current_version = get_option( 'wpstg_version' );
|
64 |
-
if ( $current_version ) {
|
65 |
-
update_option( 'wpstg_version_upgraded_from', $current_version );
|
66 |
-
}
|
67 |
|
68 |
-
// Update the current version
|
69 |
-
update_option( 'wpstg_version', WPSTG_VERSION );
|
70 |
-
// Add plugin installation date and variable for rating div
|
71 |
-
add_option('wpstg_installDate',date('Y-m-d h:i:s'));
|
72 |
-
add_option('wpstg_RatingDiv','no');
|
73 |
-
// Add First-time variables
|
74 |
-
add_option('wpstg_firsttime','true');
|
75 |
-
add_option('wpstg_is_staging_site','false');
|
76 |
-
// Show beta notice
|
77 |
-
add_option('wpstg_hide_beta','no');
|
78 |
-
|
79 |
-
// Create empty config files in /wp-content/uploads/wp-staging
|
80 |
-
wpstg_create_remaining_files();
|
81 |
-
wpstg_create_clonedetails_files();
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
/* Setup some default options
|
86 |
* Store our initial social networks in separate option row.
|
87 |
* For easier modification and to prevent some trouble
|
88 |
*/
|
89 |
-
|
90 |
// Bail if activating from network, or bulk
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
// Add the transient to redirect / not for multisites
|
96 |
-
set_transient( '_wpstg_activation_redirect', true, 30 );
|
97 |
|
|
|
|
|
98 |
}
|
99 |
|
100 |
/**
|
57 |
|
58 |
|
59 |
function wpstg_install() {
|
60 |
+
global $wpdb, $wpstg_options;
|
61 |
+
|
62 |
+
// Add Upgraded from Option
|
63 |
+
$current_version = get_option( 'wpstg_version' );
|
64 |
+
if( $current_version ) {
|
65 |
+
update_option( 'wpstg_version_upgraded_from', $current_version );
|
66 |
+
}
|
67 |
+
|
68 |
+
// Update the current version
|
69 |
+
update_option( 'wpstg_version', WPSTG_VERSION );
|
70 |
+
// Add plugin installation date and variable for rating div
|
71 |
+
add_option( 'wpstg_installDate', date( 'Y-m-d h:i:s' ) );
|
72 |
+
add_option( 'wpstg_RatingDiv', 'no' );
|
73 |
+
// Add First-time variables
|
74 |
+
add_option( 'wpstg_firsttime', 'true' );
|
75 |
+
add_option( 'wpstg_is_staging_site', 'false' );
|
76 |
+
// Show beta notice
|
77 |
+
add_option( 'wpstg_hide_beta', 'no' );
|
78 |
+
|
79 |
+
// Create empty config files in /wp-content/uploads/wp-staging
|
80 |
+
wpstg_create_remaining_files();
|
81 |
+
wpstg_create_clonedetails_files();
|
82 |
+
|
83 |
|
|
|
|
|
|
|
|
|
|
|
84 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
85 |
/* Setup some default options
|
86 |
* Store our initial social networks in separate option row.
|
87 |
* For easier modification and to prevent some trouble
|
88 |
*/
|
89 |
+
|
90 |
// Bail if activating from network, or bulk
|
91 |
+
if( is_network_admin() || isset( $_GET['activate-multi'] ) ) {
|
92 |
+
return;
|
93 |
+
}
|
|
|
|
|
|
|
94 |
|
95 |
+
// Add the transient to redirect / not for multisites
|
96 |
+
set_transient( '_wpstg_activation_redirect', true, 30 );
|
97 |
}
|
98 |
|
99 |
/**
|
readme.txt
CHANGED
@@ -8,8 +8,8 @@ License: GPLv2 or later
|
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
Tags: staging, duplication, cloning, clone, migration, sandbox, test site, testing, backup, post, admin, administration, duplicate posts
|
10 |
Requires at least: 3.6+
|
11 |
-
Tested up to: 4.
|
12 |
-
Stable tag: 1.0
|
13 |
|
14 |
A duplicator plugin! Clone, duplicate and migrate live sites to independent staging and development sites that are available only to administrators.
|
15 |
|
@@ -19,7 +19,9 @@ A duplicator plugin! Clone, duplicate and migrate live sites to independent stag
|
|
19 |
If you find a bug please open a ticket in the [support request](https://wordpress.org/support/plugin/wp-staging/ "support forum"). Every issue will be fixed asap!
|
20 |
</strong>
|
21 |
<br /><br />
|
22 |
-
<strong>Note: </strong> This plugin is not able to push back your changes to the live site at the moment!
|
|
|
|
|
23 |
<br /> <br />
|
24 |
|
25 |
|
@@ -141,6 +143,10 @@ After installation goto the settings page 'Staging' and do your adjustments ther
|
|
141 |
|
142 |
== Changelog ==
|
143 |
|
|
|
|
|
|
|
|
|
144 |
= 1.0.9 =
|
145 |
* Fix: Undefined WPSTG() warning
|
146 |
* Fix: Change compatibility version to wp 4.5.3
|
@@ -238,5 +244,5 @@ After installation goto the settings page 'Staging' and do your adjustments ther
|
|
238 |
|
239 |
== Upgrade Notice ==
|
240 |
|
241 |
-
= 1.0
|
242 |
-
1.0
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
Tags: staging, duplication, cloning, clone, migration, sandbox, test site, testing, backup, post, admin, administration, duplicate posts
|
10 |
Requires at least: 3.6+
|
11 |
+
Tested up to: 4.6
|
12 |
+
Stable tag: 1.1.0
|
13 |
|
14 |
A duplicator plugin! Clone, duplicate and migrate live sites to independent staging and development sites that are available only to administrators.
|
15 |
|
19 |
If you find a bug please open a ticket in the [support request](https://wordpress.org/support/plugin/wp-staging/ "support forum"). Every issue will be fixed asap!
|
20 |
</strong>
|
21 |
<br /><br />
|
22 |
+
<strong>Note: </strong> This plugin is not able to push back your changes to the live site at the moment!
|
23 |
+
Please let us know your most requested feature and use our quick poll. It only takes one minute of your time:
|
24 |
+
[Start the Poll](https://docs.google.com/forms/d/e/1FAIpQLScZ-dO5WffV3xObn16LwG05tr1HrADD_8L4wbTxPHqoPssVcg/viewform?c=0&w=1&usp=mail_form_link "wp staging poll")
|
25 |
<br /> <br />
|
26 |
|
27 |
|
143 |
|
144 |
== Changelog ==
|
145 |
|
146 |
+
= 1.1.0 =
|
147 |
+
* New: Tested up to WP 4.6
|
148 |
+
* New: Create a poll and ask what feature is most required
|
149 |
+
|
150 |
= 1.0.9 =
|
151 |
* Fix: Undefined WPSTG() warning
|
152 |
* Fix: Change compatibility version to wp 4.5.3
|
244 |
|
245 |
== Upgrade Notice ==
|
246 |
|
247 |
+
= 1.1.0 =
|
248 |
+
1.1.0 <strong>Compatible up to WP 4.6</strong>
|
uninstall.php
CHANGED
@@ -32,5 +32,6 @@ if( isset( $wpstg_options['uninstall_on_delete'] ) ) {
|
|
32 |
delete_option( 'wpstg_hide_beta' );
|
33 |
delete_option( 'wpstg_settings' );
|
34 |
delete_option( 'wpstg_existing_clones' );
|
|
|
35 |
}
|
36 |
|
32 |
delete_option( 'wpstg_hide_beta' );
|
33 |
delete_option( 'wpstg_settings' );
|
34 |
delete_option( 'wpstg_existing_clones' );
|
35 |
+
delete_option( 'wpstg_start_poll' );
|
36 |
}
|
37 |
|
wp-staging.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
* Description: Create a staging clone site for testing & developing
|
7 |
* Author: WP-Staging, René Hermenau
|
8 |
* Author URI: https://wordpress.org/plugins/wp-staging
|
9 |
-
* Version: 1.0
|
10 |
* Text Domain: wpstg
|
11 |
* Domain Path: languages
|
12 |
|
@@ -34,11 +34,11 @@ if( !defined( 'ABSPATH' ) )
|
|
34 |
|
35 |
// Plugin version
|
36 |
if( !defined( 'WPSTG_VERSION' ) ) {
|
37 |
-
define( 'WPSTG_VERSION', '1.0
|
38 |
}
|
39 |
// Is compatible up to WordPress version
|
40 |
if( !defined( 'WPSTG_WP_COMPATIBLE' ) ) {
|
41 |
-
define( 'WPSTG_WP_COMPATIBLE', '4.
|
42 |
}
|
43 |
|
44 |
// Plugin Folder Path
|
@@ -58,25 +58,25 @@ if( !class_exists( 'WPSTG_Utils' ) ) {
|
|
58 |
|
59 |
// Installation & activation
|
60 |
register_activation_hook( __FILE__, 'wpstg_activation' );
|
61 |
-
function wpstg_activation($networkwide){
|
62 |
-
|
63 |
|
64 |
-
|
65 |
// check if it is a network activation - if so, run the activation function for each blog id
|
66 |
-
if
|
67 |
$old_blog = $wpdb->blogid;
|
68 |
// Get all blog ids
|
69 |
-
$blogids = $wpdb->get_col("SELECT blog_id FROM $wpdb->blogs");
|
70 |
-
foreach ($blogids as $blog_id) {
|
71 |
-
switch_to_blog($blog_id);
|
72 |
wpstg_install();
|
73 |
}
|
74 |
-
switch_to_blog($old_blog);
|
75 |
return;
|
76 |
-
}
|
77 |
-
}
|
78 |
|
79 |
-
wpstg_install();
|
80 |
}
|
81 |
|
82 |
/*
|
6 |
* Description: Create a staging clone site for testing & developing
|
7 |
* Author: WP-Staging, René Hermenau
|
8 |
* Author URI: https://wordpress.org/plugins/wp-staging
|
9 |
+
* Version: 1.1.0
|
10 |
* Text Domain: wpstg
|
11 |
* Domain Path: languages
|
12 |
|
34 |
|
35 |
// Plugin version
|
36 |
if( !defined( 'WPSTG_VERSION' ) ) {
|
37 |
+
define( 'WPSTG_VERSION', '1.1.0' );
|
38 |
}
|
39 |
// Is compatible up to WordPress version
|
40 |
if( !defined( 'WPSTG_WP_COMPATIBLE' ) ) {
|
41 |
+
define( 'WPSTG_WP_COMPATIBLE', '4.6' );
|
42 |
}
|
43 |
|
44 |
// Plugin Folder Path
|
58 |
|
59 |
// Installation & activation
|
60 |
register_activation_hook( __FILE__, 'wpstg_activation' );
|
61 |
+
function wpstg_activation( $networkwide ) {
|
62 |
+
require_once WPSTG_PLUGIN_DIR . '/includes/install.php';
|
63 |
|
64 |
+
if( function_exists( 'is_multisite' ) && is_multisite() ) {
|
65 |
// check if it is a network activation - if so, run the activation function for each blog id
|
66 |
+
if( $networkwide ) {
|
67 |
$old_blog = $wpdb->blogid;
|
68 |
// Get all blog ids
|
69 |
+
$blogids = $wpdb->get_col( "SELECT blog_id FROM $wpdb->blogs" );
|
70 |
+
foreach ( $blogids as $blog_id ) {
|
71 |
+
switch_to_blog( $blog_id );
|
72 |
wpstg_install();
|
73 |
}
|
74 |
+
switch_to_blog( $old_blog );
|
75 |
return;
|
76 |
+
}
|
77 |
+
}
|
78 |
|
79 |
+
wpstg_install();
|
80 |
}
|
81 |
|
82 |
/*
|