PluginProbe
WP Database Backup – Unlimited Database & Files Backup by Backup for WP / 7.0.1
WP Database Backup – Unlimited Database & Files Backup by Backup for WP v7.0.1
7.13 7.12 trunk 1.1 2.1.1 5.9 6.0 6.1 6.10 6.11 6.12 6.12.1 6.2 6.3 6.4 6.5 6.5.1 6.6 6.7 6.8 6.9 7.0 7.0.1 7.1 7.10 All 34 releases
wp-database-backup / wp-database-backup.php

wp-database-backup.php in WP Database Backup – Unlimited Database & Files Backup by Backup for WP 7.0.1, at wp-database-backup.php

197 lines 6.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Plugin Name: Backup For WP
4 * Plugin URI:https://wordpress.org/plugins/wp-database-backup
5 * Description: This plugin helps you to create/restore Unlimited WordPress Database & Files backup.
6 * Version: 7.0.1
7 * Author: Backup for WP
8 * Author URI: https://backupforwp.com/
9 * Text Domain: wpdbbkp
10 * Domain Path: /lang
11 *
12 * This plugin helps you to create Database Backup easily.
13 *
14 * License: GPL v2
15 *
16 * This program is free software: you can redistribute it and/or modify
17 * it under the terms of the GNU General Public License as published by
18 * the Free Software Foundation, either version 3 of the License, or
19 * (at your option) any later version.
20 *
21 * This program is distributed in the hope that it will be useful,
22 * but WITHOUT ANY WARRANTY; without even the implied warranty of
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 * GNU General Public License for more details.
25 *
26 * You should have received a copy of the GNU General Public License
27 * along with this program. If not, see <http://www.gnu.org/licenses/>.
28 */
29
30 if ( ! defined( 'ABSPATH' ) ) {
31 exit; // Exit if accessed directly.
32 }
33
34 if ( ! class_exists( 'WPDatabaseBackup' ) ) :
35
36 /**
37 * Main WPDatabaseBackup Class.
38 *
39 * @class WPDatabaseBackup
40 *
41 * @version 1.1
42 */
43 final class WPDatabaseBackup {
44
45 /**
46 * Plugin version
47 *
48 * @var string
49 */
50 public $version = '7.0.1';
51
52 /**
53 * Plugin instance
54 *
55 * @var object
56 */
57 protected static $instance = null;
58
59 /**
60 * Create Instance.
61 */
62 public static function instance() {
63 if ( is_null( self::$instance ) ) {
64 self::$instance = new self();
65 }
66
67 return self::$instance;
68 }
69
70 /**
71 * Clone.
72 */
73 public function __clone() {
74 _doing_it_wrong( __FUNCTION__, 'Cheatin&#8217; huh?', '1.0' );
75 }
76
77 /**
78 * Construct.
79 */
80 public function __construct() {
81 // Define constants.
82 $this->define_constants();
83 register_activation_hook( __FILE__, array( $this, 'installation' ) );
84 $this->installation(2);
85 // Include required files.
86 $this->includes();
87 }
88
89 /**
90 * Define Constants.
91 */
92 private function define_constants() {
93 if ( ! defined( 'WPDB_PLUGIN_URL' ) ) {
94 define( 'WPDB_PLUGIN_URL', WP_CONTENT_URL . '/plugins/wp-database-backup' );
95 }
96 define( 'WPDB_PLUGIN_FILE', __FILE__ );
97 define('WP_BACKUP_PLUGIN_FILE',__FILE__ );
98 define( 'WPDB_PATH', plugin_dir_path( __FILE__ ) );
99 define( 'WPDB_ROOTPATH', str_replace( '\\', '/', ABSPATH ) );
100 define( 'WPDB_VERSION', $this->version );
101 define( 'WPDBPLUGIN_VERSION', WPDB_VERSION );
102 $wp_all_backup_backups_dir=get_option('wp_db_backup_backups_dir');
103 if(!empty($wp_all_backup_backups_dir)){
104 define( 'WPDB_BACKUPS_DIR',$wp_all_backup_backups_dir);
105 }else{
106 define( 'WPDB_BACKUPS_DIR','db-backup');
107 }
108 }
109
110 /**
111 * Include Requred files and lib.
112 */
113 private function includes()
114 {
115 include_once 'includes/admin/mb-helper-functions.php';
116 include_once 'includes/admin/class-wpdb-admin.php';
117 include_once 'includes/admin/Destination/wp-backup-destination-upload-action.php';
118 include_once 'includes/class-wpdbbackuplog.php';
119 include_once 'includes/admin/filter.php';
120 include_once 'includes/admin/class-wpdbbkp-newsletter.php';
121 include_once 'includes/features.php';
122 $wp_db_incremental_backup = get_option('wp_db_incremental_backup');
123 $wpdb_clouddrive_cd = get_option('wpdb_clouddrive_token', false);
124 if ($wp_db_incremental_backup == 1 || ($wpdb_clouddrive_cd && !empty($wpdb_clouddrive_cd))) {
125 include_once 'includes/admin/cron-create-full-backup-incremental.php';
126 } else {
127 include_once 'includes/admin/cron-create-full-backup.php';
128 }
129 include_once 'includes/class-wpdbfullbackuplog.php';
130
131 }
132 /**
133 * Installation setting at time of activation.
134 */
135 public function installation($flag=1) {
136 add_option( 'wp_db_backup_destination_SFTP', 0 , '' , false );
137 add_option( 'wp_db_backup_destination_FTP', 0 , '' , false );
138 add_option( 'wp_db_backup_destination_Email',0 , '' , false );
139 add_option( 'wp_db_backup_destination_s3', 0 , '' , false );
140 add_option( 'wp_db_remove_local_backup', 0 , '' , false );
141 add_option( 'wp_db_remove_on_uninstall', 0 , '' , false );
142 add_option('wp_db_backup_backup_type','complete', '' , false );
143 add_option('wp_db_backup_exclude_dir',"wp-content/backupwordpress-728d36f682-backups|.git|db-backup", '' , false );
144 add_option('wp_db_backup_backups_dir','db-backup', '' , false );
145 add_option('bb_last_backup_timestamp',0, '' , false );
146 add_option('wp_db_backup_sftp_details',null, '' , false );
147
148 if($flag!=2){
149 add_option( 'wpdbbkp_activation_redirect', true, '' , false );
150 }
151
152 $this->create_processed_files_table();
153 }
154
155 /**
156 * Logger.
157 */
158 public function logger() {
159 _deprecated_function( 'Wpekaplugin->logger', '1.0', 'new WPDB_Logger()' );
160 return new WPDB_Logger();
161 }
162
163 public function create_processed_files_table() {
164 global $wpdb;
165 $table_name = $wpdb->prefix . 'wpdbbkp_processed_files';
166 $charset_collate = $wpdb->get_charset_collate();
167
168 // Check if the table already exists
169 //phpcs:ignore -- Reason: Direct SQL execution is required here.
170 if ($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) {
171 //phpcs:ignore WordPress.DB.DirectDatabaseQuery.SchemaChange
172 $sql = "CREATE TABLE $table_name (
173 id mediumint(9) NOT NULL AUTO_INCREMENT,
174 file_path text NOT NULL,
175 processed_at TIMESTAMP on update CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
176 status ENUM('added', 'updated', 'deleted') DEFAULT 'added' NOT NULL,
177 PRIMARY KEY (id),
178 UNIQUE (file_path(250))
179 ) $charset_collate;";
180
181 require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
182 dbDelta($sql);
183 }
184 }
185 }
186
187 endif;
188
189 /**
190 * Returns the main instance of WP to prevent the need to use globals.
191 */
192 function wpdb() {
193 return WPDatabaseBackup::instance();
194 }
195
196 // Global for backwards compatibility.
197 $GLOBALS['wpdbplugin'] = wpdb();