PluginProbe ʕ •ᴥ•ʔ
UpdraftPlus: WP Backup & Migration Plugin / 1.11.25
UpdraftPlus: WP Backup & Migration Plugin v1.11.25
1.26.4 1.26.3 1.9.19 1.9.25 1.9.26 1.9.30 1.9.31 1.9.32 1.9.4 1.9.40 1.9.41 1.9.42 1.9.43 1.9.44 1.9.45 1.9.46 1.9.5 1.9.50 1.9.51 1.9.60 1.9.62 1.9.63 1.9.64 1.11.12 1.4.8 1.11.15 1.4.9 1.11.17 1.5.16 1.11.18 1.5.20 1.11.2 1.5.21 1.11.20 1.5.22 1.11.23 1.5.5 1.11.24 1.5.6 1.11.25 1.5.7 1.11.26 1.5.8 1.11.27 1.5.9 1.11.28 1.6.1 1.11.3 1.6.17 1.11.4 1.6.2 1.11.5 1.6.46 1.11.8 1.7.0 1.11.9 1.7.1 1.12.0 1.7.18 1.12.1 1.7.20 1.12.12 1.7.3 1.12.13 1.7.34 1.12.15 1.7.35 1.12.17 1.7.39 1.12.2 1.7.40 1.12.20 1.7.41 1.12.23 1.8.1 1.12.24 1.8.11 1.12.25 1.8.12 1.12.28 1.8.13 1.12.29 1.8.2 1.12.30 1.8.5 1.12.32 1.8.8 1.12.34 1.9.0 1.12.35 1.9.13 1.12.37 1.9.15 1.12.39 1.9.17 1.12.4 1.12.40 1.12.6 1.13.1 1.13.11 1.13.12 1.13.15 1.13.16 1.13.2 1.13.3 1.13.4 1.13.5 1.13.6 1.13.7 1.13.8 1.13.9 1.14.10 1.14.11 1.14.12 1.14.13 1.14.2 1.14.3 1.14.4 1.14.5 1.14.7 1.14.9 1.15.0 1.15.2 1.15.3 1.15.5 1.15.6 1.15.7 1.16.0 1.16.10 1.16.11 1.16.12 1.16.13 1.16.14 1.16.15 1.16.16 1.16.17 1.16.20 1.16.21 1.16.22 1.16.23 1.16.24 1.16.25 1.16.26 1.16.28 1.16.29 1.16.32 1.16.34 1.16.35 1.16.36 1.16.37 1.16.4 1.16.40 1.16.41 1.16.42 1.16.43 1.16.44 1.16.45 1.16.46 1.16.47 1.16.48 1.16.49 1.16.5 1.16.50 1.16.51 1.16.53 1.16.55 1.16.56 1.16.59 1.16.6 1.16.60 1.16.61 1.16.62 1.16.63 1.16.64 1.16.65 1.16.66 1.16.67 1.16.68 1.16.69 1.16.7 1.16.8 1.16.9 1.2.0 1.2.1 1.2.10 1.2.11 1.2.12 1.2.14 1.2.15 1.2.16 1.2.17 1.2.19 1.2.2 1.2.20 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.33 1.2.35 1.2.36 1.2.38 1.2.39 1.2.4 1.2.40 1.2.41 1.2.42 1.2.43 1.2.44 1.2.45 1.2.46 1.2.5 1.2.7 1.2.8 1.2.9 1.22.1 1.22.10 1.22.11 1.22.12 1.22.14 1.22.15 1.22.16 1.22.17 1.22.18 1.22.19 1.22.20 1.22.21 1.22.22 1.22.23 1.22.24 1.22.3 1.22.4 1.22.5 1.22.6 1.22.7 1.22.8 1.22.9 1.23.1 1.23.10 1.23.11 1.23.12 1.23.13 1.23.15 1.23.16 1.23.2 1.23.3 1.23.4 1.23.5 1.23.6 1.23.7 1.23.8 1.23.9 1.24.1 1.24.10 1.24.11 1.24.12 1.24.2 trunk 1.24.3 0.7.4 1.24.4 0.7.7 1.24.5 0.8.28 1.24.6 0.8.29 1.24.7 0.8.30 1.24.8 0.8.31 1.24.9 0.8.32 1.25.1 0.8.33 1.25.2 0.8.36 1.25.3 0.8.37 1.25.5 0.8.50 1.25.6 0.8.51 1.25.7 0.9.1 1.25.8 0.9.10 1.25.9 0.9.11 1.26.1 0.9.12 1.26.2 0.9.2 1.3.10 0.9.20 1.3.12 0.9.21 1.3.14 0.9.22 1.3.15 1.0.10 1.3.17 1.0.11 1.3.18 1.0.12 1.3.19 1.0.15 1.3.2 1.0.16 1.3.20 1.0.18 1.3.22 1.0.20 1.3.23 1.0.3 1.3.24 1.0.4 1.3.25 1.0.5 1.3.3 1.0.6 1.3.4 1.0.7 1.3.6 1.0.8 1.3.7 1.0.9 1.3.8 1.1.0 1.3.9 1.1.10 1.4.0 1.1.11 1.4.10 1.1.12 1.4.11 1.1.13 1.4.12 1.1.14 1.4.13 1.1.15 1.4.14 1.1.16 1.4.15 1.1.17 1.4.2 1.1.2 1.4.27 1.1.3 1.4.28 1.1.5 1.4.29 1.1.6 1.4.30 1.1.8 1.4.4 1.1.9 1.4.48 1.10.1 1.4.5 1.10.3 1.4.6 1.11.1 1.4.7
updraftplus / options.php
updraftplus Last commit date
addons 13 years ago css 10 years ago images 10 years ago includes 10 years ago languages 10 years ago methods 10 years ago vendor 10 years ago admin.php 10 years ago backup.php 10 years ago class-updraftplus.php 10 years ago class-zip.php 10 years ago clean-composer.sh 10 years ago composer.json 10 years ago composer.lock 10 years ago example-decrypt.php 10 years ago index.html 10 years ago options.php 10 years ago readme.txt 10 years ago restorer.php 10 years ago updraftplus.php 10 years ago
options.php
184 lines
1 <?php
2
3 // Options handling
4 if (!defined('ABSPATH')) die ('No direct access allowed');
5
6 class UpdraftPlus_Options {
7
8 public static function user_can_manage() {
9 $user_can_manage = current_user_can(apply_filters('option_page_capability_updraft-options-group', 'manage_options'));
10 // false: allows the filter to know that the request is not coming from the multisite add-on
11 return apply_filters('updraft_user_can_manage', $user_can_manage, false);
12 }
13
14 public static function options_table() {
15 return 'options';
16 }
17
18 public static function admin_page_url() {
19 return admin_url('options-general.php');
20 }
21
22 public static function admin_page() {
23 return 'options-general.php';
24 }
25
26 public static function get_updraft_option($option, $default = null) {
27 return get_option($option, $default);
28 }
29
30 // The apparently unused parameter is used in the alternative class in the Multisite add-on
31 public static function update_updraft_option($option, $value, $use_cache = true) {
32 return update_option($option, $value);
33 }
34
35 public static function delete_updraft_option($option) {
36 delete_option($option);
37 }
38
39 public static function add_admin_pages() {
40 global $updraftplus_admin;
41 add_submenu_page('options-general.php', 'UpdraftPlus', __('UpdraftPlus Backups','updraftplus'), apply_filters('option_page_capability_updraft-options-group', 'manage_options'), "updraftplus", array($updraftplus_admin, "settings_output"));
42 }
43
44 public static function options_form_begin($settings_fields = 'updraft-options-group', $allow_autocomplete = true, $get_params = array()) {
45 global $pagenow;
46 echo '<form method="post"';
47
48 $page = '';
49 if ('options-general.php' == $pagenow) $page="options.php";
50
51 if (!empty($get_params)) {
52 $page .= '?';
53 $first_one = true;
54 foreach ($get_params as $k => $v) {
55 if ($first_one) {
56 $first_one = false;
57 } else {
58 $page .= '&';
59 }
60 $page .= urlencode($k).'='.urlencode($v);
61 }
62 }
63
64 if ($page) echo ' action="'.$page.'"';
65
66 if (!$allow_autocomplete) echo ' autocomplete="off"';
67 echo '>';
68 if ($settings_fields) {
69 // This is settings_fields('updraft-options-group'), but with the referer pruned
70 echo "<input type='hidden' name='option_page' value='" . esc_attr('updraft-options-group') . "' />";
71 echo '<input type="hidden" name="action" value="update" />';
72 // $action = -1, $name = "_wpnonce", $referer = true , $echo = true
73 wp_nonce_field("updraft-options-group-options", '_wpnonce', false);
74
75 $remove_query_args = array('state', 'action', 'updraftcopycomparms', 'oauth_verifier');
76
77 // wp_unslash() does not exist until after WP 3.5
78 if (function_exists('wp_unslash')) {
79 $referer = wp_unslash( remove_query_arg( $remove_query_args, $_SERVER['REQUEST_URI']) );
80 } else {
81 $referer = stripslashes_deep( remove_query_arg( $remove_query_args, $_SERVER['REQUEST_URI']) );
82 }
83
84 // Add back the page parameter if it looks like we were on the settings page via an OAuth callback that has now had all parameters removed. This is likely unnecessarily conservative, but there's nothing requiring more than this at the current time.
85 if (substr($referer, -19, 19) == 'options-general.php' && false !== strpos($_SERVER['REQUEST_URI'], '?')) $referer .= '?page=updraftplus';
86
87 $referer_field = '<input type="hidden" name="_wp_http_referer" value="'. esc_attr($referer) . '" />';
88 echo $referer_field;
89 }
90 }
91
92 public static function admin_init() {
93
94 global $updraftplus, $updraftplus_admin;
95 register_setting('updraft-options-group', 'updraft_interval', array($updraftplus, 'schedule_backup') );
96 register_setting('updraft-options-group', 'updraft_interval_database', array($updraftplus, 'schedule_backup_database') );
97 register_setting('updraft-options-group', 'updraft_interval_increments');
98 register_setting('updraft-options-group', 'updraft_retain', array($updraftplus, 'retain_range') );
99 register_setting('updraft-options-group', 'updraft_retain_db', array($updraftplus, 'retain_range') );
100 register_setting('updraft-options-group', 'updraft_retain_extrarules' );
101
102 register_setting('updraft-options-group', 'updraft_encryptionphrase');
103 register_setting('updraft-options-group', 'updraft_service', array($updraftplus, 'just_one'));
104
105 register_setting('updraft-options-group', 'updraft_s3', array($updraftplus, 's3_sanitise'));
106 register_setting('updraft-options-group', 'updraft_ftp', array($updraftplus, 'ftp_sanitise'));
107 register_setting('updraft-options-group', 'updraft_dreamobjects');
108 register_setting('updraft-options-group', 'updraft_s3generic');
109 register_setting('updraft-options-group', 'updraft_cloudfiles');
110 register_setting('updraft-options-group', 'updraft_bitcasa', array($updraftplus, 'bitcasa_checkchange'));
111 register_setting('updraft-options-group', 'updraft_copycom', array($updraftplus, 'copycom_checkchange'));
112 register_setting('updraft-options-group', 'updraft_openstack');
113 register_setting('updraft-options-group', 'updraft_dropbox', array($updraftplus, 'dropbox_checkchange'));
114 register_setting('updraft-options-group', 'updraft_googledrive', array($updraftplus, 'googledrive_checkchange'));
115 register_setting('updraft-options-group', 'updraft_onedrive', array($updraftplus, 'onedrive_checkchange'));
116 register_setting('updraft-options-group', 'updraft_azure', array($updraftplus, 'azure_checkchange'));
117 register_setting('updraft-options-group', 'updraft_googlecloud', array($updraftplus, 'googlecloud_checkchange'));
118
119 register_setting('updraft-options-group', 'updraft_sftp_settings');
120 register_setting('updraft-options-group', 'updraft_webdav_settings', array($updraftplus, 'replace_http_with_webdav'));
121
122 register_setting('updraft-options-group', 'updraft_ssl_nossl', 'absint');
123 register_setting('updraft-options-group', 'updraft_log_syslog', 'absint');
124 register_setting('updraft-options-group', 'updraft_ssl_useservercerts', 'absint');
125 register_setting('updraft-options-group', 'updraft_ssl_disableverify', 'absint');
126
127 register_setting('updraft-options-group', 'updraft_split_every', array($updraftplus_admin, 'optionfilter_split_every') );
128
129 register_setting('updraft-options-group', 'updraft_dir', array($updraftplus_admin, 'prune_updraft_dir_prefix') );
130 register_setting('updraft-options-group', 'updraft_email', array($updraftplus, 'just_one_email'));
131
132 register_setting('updraft-options-group', 'updraft_report_warningsonly', array($updraftplus_admin, 'return_array'));
133 register_setting('updraft-options-group', 'updraft_report_wholebackup', array($updraftplus_admin, 'return_array'));
134
135 register_setting('updraft-options-group', 'updraft_autobackup_default', 'absint' );
136 register_setting('updraft-options-group', 'updraft_delete_local', 'absint' );
137 register_setting('updraft-options-group', 'updraft_debug_mode', 'absint' );
138 register_setting('updraft-options-group', 'updraft_extradbs');
139 register_setting('updraft-options-group', 'updraft_backupdb_nonwp', 'absint');
140
141 register_setting('updraft-options-group', 'updraft_include_plugins', 'absint' );
142 register_setting('updraft-options-group', 'updraft_include_themes', 'absint' );
143 register_setting('updraft-options-group', 'updraft_include_uploads', 'absint' );
144 register_setting('updraft-options-group', 'updraft_include_others', 'absint' );
145 register_setting('updraft-options-group', 'updraft_include_wpcore', 'absint' );
146 register_setting('updraft-options-group', 'updraft_include_wpcore_exclude', array($updraftplus, 'strip_dirslash'));
147 register_setting('updraft-options-group', 'updraft_include_more', 'absint' );
148 register_setting('updraft-options-group', 'updraft_include_more_path', array($updraftplus, 'remove_empties'));
149 register_setting('updraft-options-group', 'updraft_include_uploads_exclude', array($updraftplus, 'strip_dirslash'));
150 register_setting('updraft-options-group', 'updraft_include_others_exclude', array($updraftplus, 'strip_dirslash'));
151
152 register_setting('updraft-options-group', 'updraft_starttime_files', array('UpdraftPlus_Options', 'hourminute') );
153 register_setting('updraft-options-group', 'updraft_starttime_db', array('UpdraftPlus_Options', 'hourminute') );
154
155 register_setting('updraft-options-group', 'updraft_startday_files', array('UpdraftPlus_Options', 'week_or_month_day') );
156 register_setting('updraft-options-group', 'updraft_startday_db', array('UpdraftPlus_Options', 'week_or_month_day') );
157
158 global $pagenow;
159 if (is_multisite() && $pagenow == 'options-general.php' && isset($_REQUEST['page']) && 'updraftplus' == substr($_REQUEST['page'], 0, 11)) {
160 add_action('all_admin_notices', array('UpdraftPlus_Options', 'show_admin_warning_multisite') );
161 }
162 }
163
164 public static function hourminute($pot) {
165 if (preg_match("/^([0-2]?[0-9]):([0-5][0-9])$/", $pot, $matches)) return sprintf("%02d:%s", $matches[1], $matches[2]);
166 if ('' == $pot) return date('H:i', time()+300);
167 return '00:00';
168 }
169
170 public static function week_or_month_day($pot) {
171 $pot = absint($pot);
172 return ($pot>28) ? 1 : $pot;
173 }
174
175 public static function show_admin_warning_multisite() {
176 global $updraftplus_admin;
177 $updraftplus_admin->show_admin_warning('<strong>'.__('UpdraftPlus warning:', 'updraftplus').'</strong> '.__('This is a WordPress multi-site (a.k.a. network) installation.', 'updraftplus').' <a href="https://updraftplus.com/shop/">'.__('WordPress Multisite is supported, with extra features, by UpdraftPlus Premium, or the Multisite add-on.', 'updraftplus').'</a> '.__('Without upgrading, UpdraftPlus allows <strong>every</strong> blog admin who can modify plugin settings to back up (and hence access the data, including passwords, from) and restore (including with customised modifications, e.g. changed passwords) <strong>the entire network</strong>.', 'updraftplus').' '.__('(This applies to all WordPress backup plugins unless they have been explicitly coded for multisite compatibility).', 'updraftplus'), 'error');
178 }
179
180 }
181
182 add_action('admin_init', array('UpdraftPlus_Options', 'admin_init'));
183 add_action('admin_menu', array('UpdraftPlus_Options', 'add_admin_pages'));
184