Version Description
Download this release
Release Info
Developer | vanvox |
Plugin | BackWPup – WordPress Backup Plugin |
Version | 3.4.4 |
Comparing to | |
See all releases |
Code changes from version 3.4.3 to 3.4.4
- backwpup.php +7 -20
- inc/class-admin-notice.php +15 -11
- inc/class-cron.php +38 -0
- inc/class-encryption.php +1 -1
- inc/class-install.php +6 -0
- inc/class-job.php +2 -2
- readme.txt +6 -4
- uninstall.php +14 -0
backwpup.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* Description: WordPress Backup Plugin
|
6 |
* Author: Inpsyde GmbH
|
7 |
* Author URI: http://inpsyde.com
|
8 |
-
* Version: 3.4.
|
9 |
* Text Domain: backwpup
|
10 |
* Domain Path: /languages/
|
11 |
* Network: true
|
@@ -71,7 +71,9 @@ if ( ! class_exists( 'BackWPup' ) ) {
|
|
71 |
spl_autoload_register( array( $this, 'autoloader' ) );
|
72 |
|
73 |
//start upgrade if needed
|
74 |
-
if ( get_site_option( 'backwpup_version' ) !== self::get_plugin_data( 'Version' )
|
|
|
|
|
75 |
BackWPup_Install::activate();
|
76 |
}
|
77 |
//load pro features
|
@@ -89,6 +91,7 @@ if ( ! class_exists( 'BackWPup' ) ) {
|
|
89 |
//add cron actions
|
90 |
add_action( 'backwpup_cron', array( 'BackWPup_Cron', 'run' ) );
|
91 |
add_action( 'backwpup_check_cleanup', array( 'BackWPup_Cron', 'check_cleanup' ) );
|
|
|
92 |
}
|
93 |
//if in cron the rest is not needed
|
94 |
return;
|
@@ -111,24 +114,8 @@ if ( ! class_exists( 'BackWPup' ) ) {
|
|
111 |
// Notices and messages in admin
|
112 |
if ( is_admin() && current_user_can( 'backwpup' ) ) {
|
113 |
|
114 |
-
|
115 |
-
|
116 |
-
$inpsyder_widget = new BackWPup_Become_Inpsyder_Widget();
|
117 |
-
add_action( 'wp_dashboard_setup', array( $inpsyder_widget, 'setup_widget' ) );
|
118 |
-
add_action( 'backwpup_admin_messages', array( $inpsyder_widget, 'print_plugin_widget_markup' ), 0 );
|
119 |
-
BackWPup_Dismissible_Notice_Option::setup_actions(
|
120 |
-
false,
|
121 |
-
BackWPup_Become_Inpsyder_Widget::NOTICE_ID,
|
122 |
-
'backwpup'
|
123 |
-
);
|
124 |
-
*/
|
125 |
-
|
126 |
-
$rate_us = new BackWPup_Admin_Notice(
|
127 |
-
'rate_us',
|
128 |
-
esc_html__( 'Make Us Happy and Give Your Rating', 'backwpup' ),
|
129 |
-
esc_html__( 'https://wordpress.org/support/plugin/backwpup/reviews/', 'backwpup' )
|
130 |
-
);
|
131 |
-
$rate_us->initiate();
|
132 |
|
133 |
}
|
134 |
|
5 |
* Description: WordPress Backup Plugin
|
6 |
* Author: Inpsyde GmbH
|
7 |
* Author URI: http://inpsyde.com
|
8 |
+
* Version: 3.4.4
|
9 |
* Text Domain: backwpup
|
10 |
* Domain Path: /languages/
|
11 |
* Network: true
|
71 |
spl_autoload_register( array( $this, 'autoloader' ) );
|
72 |
|
73 |
//start upgrade if needed
|
74 |
+
if ( get_site_option( 'backwpup_version' ) !== self::get_plugin_data( 'Version' )
|
75 |
+
|| ! wp_next_scheduled( 'backwpup_check_cleanup' )
|
76 |
+
|| ! wp_next_scheduled( 'backwpup_update_message' ) ) {
|
77 |
BackWPup_Install::activate();
|
78 |
}
|
79 |
//load pro features
|
91 |
//add cron actions
|
92 |
add_action( 'backwpup_cron', array( 'BackWPup_Cron', 'run' ) );
|
93 |
add_action( 'backwpup_check_cleanup', array( 'BackWPup_Cron', 'check_cleanup' ) );
|
94 |
+
add_action( 'backwpup_update_message', array( 'BackWPup_Cron', 'update_message' ) );
|
95 |
}
|
96 |
//if in cron the rest is not needed
|
97 |
return;
|
114 |
// Notices and messages in admin
|
115 |
if ( is_admin() && current_user_can( 'backwpup' ) ) {
|
116 |
|
117 |
+
$admin_notice = new BackWPup_Admin_Notice();
|
118 |
+
$admin_notice->initiate();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
|
120 |
}
|
121 |
|
inc/class-admin-notice.php
CHANGED
@@ -23,18 +23,25 @@ class BackWPup_Admin_Notice {
|
|
23 |
|
24 |
private $id;
|
25 |
|
|
|
|
|
26 |
private $button_text;
|
27 |
|
28 |
private $button_url;
|
29 |
|
30 |
-
|
31 |
-
|
32 |
-
public function __construct( $id, $button_text, $button_url, $priority = 20 ) {
|
33 |
$this->has_displayed = false;
|
34 |
-
$
|
35 |
-
|
36 |
-
|
37 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
}
|
39 |
|
40 |
public function initiate() {
|
@@ -97,10 +104,7 @@ class BackWPup_Admin_Notice {
|
|
97 |
);
|
98 |
|
99 |
ob_start();
|
100 |
-
?><div><?php
|
101 |
-
require dirname( dirname( __FILE__ ) ) . '/assets/templates/admin-notices/' .
|
102 |
-
sanitize_file_name( str_replace( '_', '-', $this->id ) . '.php' );
|
103 |
-
?>
|
104 |
<p>
|
105 |
<a
|
106 |
style="background: #9FC65D; border-color: #7ba617 #719c0d #719c0d; -webkit-box-shadow: 0 1px 0 #719c0d; box-shadow: 0 1px 0 #719c0d; text-shadow: 0 -1px 1px #719c0d, 1px 0 1px #719c0d, 0 1px 1px #719c0d, -1px 0 1px #719c0d;"
|
23 |
|
24 |
private $id;
|
25 |
|
26 |
+
private $content;
|
27 |
+
|
28 |
private $button_text;
|
29 |
|
30 |
private $button_url;
|
31 |
|
32 |
+
public function __construct() {
|
|
|
|
|
33 |
$this->has_displayed = false;
|
34 |
+
$language = substr( get_locale(), 0, 2 );
|
35 |
+
|
36 |
+
// Check if message exists in given language
|
37 |
+
if ( ! get_site_option( "backwpup_message_id_$language" ) ) {
|
38 |
+
// Default to English
|
39 |
+
$language = 'en';
|
40 |
+
}
|
41 |
+
$this->id = get_site_option( "backwpup_message_id_$language" );
|
42 |
+
$this->content = get_site_option( "backwpup_message_content_$language" );
|
43 |
+
$this->button_text = get_site_option( "backwpup_message_button_text_$language" );
|
44 |
+
$this->button_url = get_site_option( "backwpup_message_url_$language" );
|
45 |
}
|
46 |
|
47 |
public function initiate() {
|
104 |
);
|
105 |
|
106 |
ob_start();
|
107 |
+
?><div><p><?php echo esc_html( $this->content ) ?></p>
|
|
|
|
|
|
|
108 |
<p>
|
109 |
<a
|
110 |
style="background: #9FC65D; border-color: #7ba617 #719c0d #719c0d; -webkit-box-shadow: 0 1px 0 #719c0d; box-shadow: 0 1px 0 #719c0d; text-shadow: 0 -1px 1px #719c0d, 1px 0 1px #719c0d, 0 1px 1px #719c0d, -1px 0 1px #719c0d;"
|
inc/class-cron.php
CHANGED
@@ -1,4 +1,7 @@
|
|
1 |
<?php
|
|
|
|
|
|
|
2 |
/**
|
3 |
* Class for BackWPup cron methods
|
4 |
*/
|
@@ -122,6 +125,41 @@ class BackWPup_Cron {
|
|
122 |
}
|
123 |
|
124 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
125 |
|
126 |
|
127 |
/**
|
1 |
<?php
|
2 |
+
|
3 |
+
use Base32\Base32;
|
4 |
+
|
5 |
/**
|
6 |
* Class for BackWPup cron methods
|
7 |
*/
|
125 |
}
|
126 |
|
127 |
}
|
128 |
+
|
129 |
+
/**
|
130 |
+
* Update the backend message.
|
131 |
+
*/
|
132 |
+
public static function update_message() {
|
133 |
+
// Fetch message from API
|
134 |
+
$api_request = esc_url( 'http://backwpup.com/wp-json/inpsyde-messages/v1/message/' );
|
135 |
+
$api_response = wp_remote_get( $api_request );
|
136 |
+
$api_data = json_decode( wp_remote_retrieve_body( $api_response ), true );
|
137 |
+
|
138 |
+
// Add messages to options
|
139 |
+
foreach ( $api_data as $lang => $value ) {
|
140 |
+
$content = $value['content'];
|
141 |
+
$button = $value['button-text'];
|
142 |
+
$url = $value['url'];
|
143 |
+
|
144 |
+
// Calculate ID based on button text and URL
|
145 |
+
$id = "$button|$url";
|
146 |
+
// Padd to nearest 5 bytes for base32
|
147 |
+
$pad = strlen($id);
|
148 |
+
if ( $pad % 5 > 0 ) {
|
149 |
+
$pad += 5 - ($pad % 5);
|
150 |
+
$id = str_pad( $id, $pad, '|' );
|
151 |
+
}
|
152 |
+
|
153 |
+
// Encode $id so it will be unique
|
154 |
+
$id = Base32::encode( $id );
|
155 |
+
|
156 |
+
// Save in site options
|
157 |
+
update_site_option( "backwpup_message_id_$lang", $id );
|
158 |
+
update_site_option( "backwpup_message_content_$lang", $content );
|
159 |
+
update_site_option( "backwpup_message_button_text_$lang", $button );
|
160 |
+
update_site_option( "backwpup_message_url_$lang", $url );
|
161 |
+
}
|
162 |
+
}
|
163 |
|
164 |
|
165 |
/**
|
inc/class-encryption.php
CHANGED
@@ -126,7 +126,7 @@ class BackWPup_Encryption {
|
|
126 |
/** @var BackWPup_Encryption_OpenSSL|BackWPup_Encryption_Mcrypt|BackWPup_Encryption_Fallback $cypher */
|
127 |
$cypher = new $cypher_class( $key, $key_type );
|
128 |
|
129 |
-
return trim( $cypher->decrypt( $string ), "\0" );
|
130 |
}
|
131 |
|
132 |
/**
|
126 |
/** @var BackWPup_Encryption_OpenSSL|BackWPup_Encryption_Mcrypt|BackWPup_Encryption_Fallback $cypher */
|
127 |
$cypher = new $cypher_class( $key, $key_type );
|
128 |
|
129 |
+
return trim( stripslashes( $cypher->decrypt( $string ) ), "\0" );
|
130 |
}
|
131 |
|
132 |
/**
|
inc/class-install.php
CHANGED
@@ -64,6 +64,11 @@ class BackWPup_Install {
|
|
64 |
if ( ! wp_next_scheduled( 'backwpup_check_cleanup' ) ) {
|
65 |
wp_schedule_event( time(), 'twicedaily', 'backwpup_check_cleanup' );
|
66 |
}
|
|
|
|
|
|
|
|
|
|
|
67 |
|
68 |
//add capabilities to administrator role
|
69 |
$role = get_role( 'administrator' );
|
@@ -317,6 +322,7 @@ class BackWPup_Install {
|
|
317 |
}
|
318 |
}
|
319 |
wp_clear_scheduled_hook( 'backwpup_check_cleanup' );
|
|
|
320 |
|
321 |
$activejobs = BackWPup_Option::get_job_ids( 'activetype', 'easycron' );
|
322 |
if ( ! empty( $activejobs ) ) {
|
64 |
if ( ! wp_next_scheduled( 'backwpup_check_cleanup' ) ) {
|
65 |
wp_schedule_event( time(), 'twicedaily', 'backwpup_check_cleanup' );
|
66 |
}
|
67 |
+
|
68 |
+
// Add schedule to update backend message
|
69 |
+
if ( ! wp_next_scheduled( 'backwpup_update_message' ) ) {
|
70 |
+
wp_schedule_event( time(), 'twicedaily', 'backwpup_update_message' );
|
71 |
+
}
|
72 |
|
73 |
//add capabilities to administrator role
|
74 |
$role = get_role( 'administrator' );
|
322 |
}
|
323 |
}
|
324 |
wp_clear_scheduled_hook( 'backwpup_check_cleanup' );
|
325 |
+
wp_clear_scheduled_hook( 'backwpup_update_message' );
|
326 |
|
327 |
$activejobs = BackWPup_Option::get_job_ids( 'activetype', 'easycron' );
|
328 |
if ( ! empty( $activejobs ) ) {
|
inc/class-job.php
CHANGED
@@ -1312,12 +1312,12 @@ final class BackWPup_Job {
|
|
1312 |
$wp_admin_user = get_users( array( 'role' => 'backwpup_admin', 'number' => 1 ) );
|
1313 |
}
|
1314 |
if ( ! empty( $wp_admin_user[0]->ID ) ) {
|
1315 |
-
$expiration = time() + (
|
1316 |
$manager = WP_Session_Tokens::get_instance( $wp_admin_user[0]->ID );
|
1317 |
$token = $manager->create( $expiration );
|
1318 |
$cookies[ LOGGED_IN_COOKIE ] = wp_generate_auth_cookie( $wp_admin_user[0]->ID, $expiration, 'logged_in', $token );
|
1319 |
}
|
1320 |
-
set_site_transient( 'backwpup_cookies', $cookies,
|
1321 |
}
|
1322 |
} else {
|
1323 |
$cookies = '';
|
1312 |
$wp_admin_user = get_users( array( 'role' => 'backwpup_admin', 'number' => 1 ) );
|
1313 |
}
|
1314 |
if ( ! empty( $wp_admin_user[0]->ID ) ) {
|
1315 |
+
$expiration = time() + ( 2 * DAY_IN_SECONDS );
|
1316 |
$manager = WP_Session_Tokens::get_instance( $wp_admin_user[0]->ID );
|
1317 |
$token = $manager->create( $expiration );
|
1318 |
$cookies[ LOGGED_IN_COOKIE ] = wp_generate_auth_cookie( $wp_admin_user[0]->ID, $expiration, 'logged_in', $token );
|
1319 |
}
|
1320 |
+
set_site_transient( 'backwpup_cookies', $cookies, 2 * DAY_IN_SECONDS );
|
1321 |
}
|
1322 |
} else {
|
1323 |
$cookies = '';
|
readme.txt
CHANGED
@@ -2,9 +2,9 @@
|
|
2 |
Contributors: inpsyde, cocreation, danielhuesken, Bueltge, nullbyte
|
3 |
Tags: Amazon, Amazon S3, back up, backup, chinese, cloud, cloud files, database, db backup, dropbox, dump, file, french, ftp, ftps, german, migrate, multisite, russian, schedule, sftp, storage, S3, time, upload, xml
|
4 |
Requires at least: 3.9
|
5 |
-
Tested up to: 4.
|
6 |
Requires PHP: 5.3
|
7 |
-
Stable tag: 3.4.
|
8 |
License: GPLv3
|
9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
@@ -14,8 +14,6 @@ Schedule complete automatic backups of your WordPress installation. Decide which
|
|
14 |
|
15 |
The **backup plugin** **[BackWPup](https://backwpup.com/)** can be used to save your complete installation including /wp-content/ and push them to an external Backup Service, like **Dropbox**, **S3**, **FTP** and many more, see list below. With a single backup .zip file you are able to easily restore an installation. Please understand: this free version will not be supported as good as the [BackWPup Pro version](https://backwpup.com). With our premium version you get first class support and more features.
|
16 |
|
17 |
-
Already seen? **You downloaded BackWPup more than 5 million times!** We want to celebrate that! With a **50% discount** on all our BackWPup PRO licences! Until October 31st, you get all BackWPup PRO licences with further functionalities at half price. [More information](https://backwpup.com/?utm_source=wordpress.org&utm_campaign=5MillDownloads&utm_medium=Link#buy).
|
18 |
-
|
19 |
* Database Backup *(needs mysqli)*
|
20 |
* WordPress XML Export
|
21 |
* Generate a file with installed plugins
|
@@ -159,6 +157,10 @@ Yes. You need to have writing access to the wp-config.php file (usually residing
|
|
159 |
[You can find a detailed tutorial in the BackWPup documentation.](http://docs.backwpup.com/article/118-install-backwpup)
|
160 |
|
161 |
== Changelog ==
|
|
|
|
|
|
|
|
|
162 |
= Version 3.4.3 =
|
163 |
* Fixed: No longer show hashes on job edit page.
|
164 |
* Fixed: Compatibility with Sunrise.
|
2 |
Contributors: inpsyde, cocreation, danielhuesken, Bueltge, nullbyte
|
3 |
Tags: Amazon, Amazon S3, back up, backup, chinese, cloud, cloud files, database, db backup, dropbox, dump, file, french, ftp, ftps, german, migrate, multisite, russian, schedule, sftp, storage, S3, time, upload, xml
|
4 |
Requires at least: 3.9
|
5 |
+
Tested up to: 4.9.1
|
6 |
Requires PHP: 5.3
|
7 |
+
Stable tag: 3.4.4
|
8 |
License: GPLv3
|
9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
14 |
|
15 |
The **backup plugin** **[BackWPup](https://backwpup.com/)** can be used to save your complete installation including /wp-content/ and push them to an external Backup Service, like **Dropbox**, **S3**, **FTP** and many more, see list below. With a single backup .zip file you are able to easily restore an installation. Please understand: this free version will not be supported as good as the [BackWPup Pro version](https://backwpup.com). With our premium version you get first class support and more features.
|
16 |
|
|
|
|
|
17 |
* Database Backup *(needs mysqli)*
|
18 |
* WordPress XML Export
|
19 |
* Generate a file with installed plugins
|
157 |
[You can find a detailed tutorial in the BackWPup documentation.](http://docs.backwpup.com/article/118-install-backwpup)
|
158 |
|
159 |
== Changelog ==
|
160 |
+
= Version 3.4.4 =
|
161 |
+
* Fixed: Security issue that created too many sessions.
|
162 |
+
* Fixed: Correct decryption of passwords when escaped.
|
163 |
+
|
164 |
= Version 3.4.3 =
|
165 |
* Fixed: No longer show hashes on job edit page.
|
166 |
* Fixed: Compatibility with Sunrise.
|
uninstall.php
CHANGED
@@ -15,4 +15,18 @@ if ( ! class_exists( 'BackWPup' ) ) {
|
|
15 |
$wpdb->query( "DELETE FROM " . $wpdb->sitemeta . " WHERE meta_key LIKE '%backwpup_%' " );
|
16 |
else
|
17 |
$wpdb->query( "DELETE FROM " . $wpdb->options . " WHERE option_name LIKE '%backwpup_%' " );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
}
|
15 |
$wpdb->query( "DELETE FROM " . $wpdb->sitemeta . " WHERE meta_key LIKE '%backwpup_%' " );
|
16 |
else
|
17 |
$wpdb->query( "DELETE FROM " . $wpdb->options . " WHERE option_name LIKE '%backwpup_%' " );
|
18 |
+
|
19 |
+
//delete Backwpup user roles
|
20 |
+
$backWPUpRoles = array(
|
21 |
+
"backwpup_admin",
|
22 |
+
"backwpup_check",
|
23 |
+
"backwpup_helper"
|
24 |
+
);
|
25 |
+
|
26 |
+
foreach ( $backWPUpRoles as $backWPUpRole ) {
|
27 |
+
if ( get_role( $backWPUpRole ) ) {
|
28 |
+
remove_role( $backWPUpRole );
|
29 |
+
}
|
30 |
+
}
|
31 |
+
|
32 |
}
|