PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / 1.2.0
JetBackup – Backup, Restore & Migrate v1.2.0
3.1.22.3 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.8.1 1.4.9 1.5.0 1.5.1 1.5.1.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.10 1.6.11 1.6.12 1.6.13 1.6.15 1.6.5.1 1.6.8.8 1.6.9 1.6.9.1 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7.5 2.0.8.7 2.0.9.11 2.0.9.14 2.0.9.15 2.0.9.6 2.0.9.7 2.0.9.9 3.1.10.7 3.1.11.1 3.1.12.3 3.1.13.4 3.1.14.17 3.1.15.4 3.1.16.1 3.1.17.5 3.1.18.10 3.1.18.8 3.1.18.9 3.1.19.8 3.1.20.3 3.1.21.3 3.1.7.9 3.1.9.2 trunk 1.1.90 1.1.91 1.2.0 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2
backup / BackupGuard.php
backup Last commit date
com 6 years ago languages 6 years ago public 6 years ago BackupGuard.php 6 years ago README.txt 6 years ago backup.php 6 years ago index.php 6 years ago
BackupGuard.php
948 lines
1 <?php
2
3 // hook to wordpres widget
4 function backup_guard_register_widget()
5 {
6 if (!class_exists('SGWordPressWidget')) {
7 @include_once(SG_WIDGET_PATH.'SGWordPressWidget.php');
8 }
9
10 register_widget('SGWordPressWidget');
11 }
12 add_action('widgets_init', 'backup_guard_register_widget');
13
14 //The code that runs during plugin activation.
15 function activate_backup_guard()
16 {
17 //check if database should be updated
18 if (backupGuardShouldUpdate()) {
19 SGBoot::install();
20 SGBoot::didInstallForFirstTime();
21 }
22 }
23
24 // The code that runs during plugin deactivation.
25 function uninstall_backup_guard()
26 {
27 SGBoot::uninstall();
28 }
29
30 function deactivate_backup_guard()
31 {
32 $pluginCapabilities = backupGuardGetCapabilities();
33 if ($pluginCapabilities != BACKUP_GUARD_CAPABILITIES_FREE) {
34 require_once(SG_LIB_PATH.'SGAuthClient.php');
35 $res = SGAuthClient::getInstance()->logout();
36 SGConfig::set('SG_LICENSE_CHECK_TS', 0, true);
37 SGConfig::set('SG_LOGGED_USER', '', true);
38 }
39 }
40
41 function backupGuardMaybeShortenEddFilename($return, $package)
42 {
43 if (strpos($package, 'backup-guard') !== false) {
44 add_filter('wp_unique_filename', 'backupGuardShortenEddFilename', 10, 2);
45 }
46 return $return;
47 }
48
49 function backupGuardShortenEddFilename($filename, $ext)
50 {
51 $filename = substr($filename, 0, 20).$ext;
52 remove_filter('wp_unique_filename', 'backupGuardShortenEddFilename', 10);
53 return $filename;
54 }
55
56 add_filter('upgrader_pre_download', 'backupGuardMaybeShortenEddFilename', 10, 4);
57
58 register_activation_hook(SG_BACKUP_GUARD_MAIN_FILE, 'activate_backup_guard');
59 register_uninstall_hook(SG_BACKUP_GUARD_MAIN_FILE, 'uninstall_backup_guard');
60 register_deactivation_hook(SG_BACKUP_GUARD_MAIN_FILE, 'deactivate_backup_guard');
61 add_action('admin_footer', 'before_deactivate_backup_guard');
62
63 function before_deactivate_backup_guard()
64 {
65 wp_enqueue_style('before-deactivate-backup-guard-css', plugin_dir_url(__FILE__).'public/css/deactivationSurvey.css');
66 wp_enqueue_script('before-deactivate-backup-guard-js', plugin_dir_url(__FILE__).'public/js/deactivationSurvey.js', array('jquery'));
67
68 wp_localize_script('before-deactivate-backup-guard-js', 'BG_BACKUP_STRINGS', array(
69 'nonce' => wp_create_nonce('backupGuardAjaxNonce')
70 ));
71
72 require_once(plugin_dir_path(__FILE__).'public/include/uninstallSurveyPopup.php');
73 }
74
75 // Register Admin Menus for single and multisite
76 if (is_multisite()) {
77 add_action('network_admin_menu', 'backup_guard_admin_menu');
78 }
79 else {
80 add_action('admin_menu', 'backup_guard_admin_menu');
81 }
82
83 function backup_guard_admin_menu()
84 {
85 add_menu_page('Backups', 'BackupGuard', 'manage_options', 'backup_guard_backups', 'backup_guard_backups_page', 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHZpZXdCb3g9IjAgMCA0NjIuOSA1MDEuNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNDYyLjkgNTAxLjQiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwYXRoIGZpbGw9IiNhMGE1YWEiIGQ9Ik00MjYuOSwxOTkuNmgtMTk4bDAuNCwzNEgyNDZoMTYyLjdjLTAuNSwzLjMtMS4xLDYuNi0xLjcsOS45Yy02LjEsMzMtMTUuMyw2Mi4yLTI3LjcsODcuNkg3OS40Yy0xMi4zLTI1LjQtMjEuNi01NC42LTI3LjctODcuNkMzOS4zLDE3Ni4xLDQ0LDExMS41LDQ3LjIsODMuN0M2Ny43LDkwLjUsODguMyw5NCwxMDguNiw5NGM2MC43LDAsMTAzLjMtMzAuMiwxMjAuOC00NS4xQzI0Ni43LDYzLjgsMjg5LjQsOTQsMzUwLjEsOTRoMGMyMC4zLDAsNDAuOS0zLjUsNjEuNC0xMC4zYzEuNiwxMy45LDMuNSwzNy4xLDMuNiw2NS4xaDIzLjdjMC00Ny40LTUuNS04MS4xLTUuOC04My4zbC0yLjQtMTQuNmwtMTMuNyw1LjZjLTIyLjQsOS4yLTQ0LjgsMTMuOC02Ni43LDEzLjhjMCwwLDAsMCwwLDBjLTY4LjMsMC0xMTEuNy00NS4zLTExMi4xLTQ1LjdsLTguNi05LjJsLTguNyw5LjJjLTAuNCwwLjUtNDMuOCw0NS43LTExMi4xLDQ1LjdjLTIxLjksMC00NC40LTQuNi02Ni43LTEzLjhsLTEzLjctNS42bC0yLjQsMTQuNmMtMC42LDMuNi0xNC40LDg4LjcsMi42LDE4MS42QzM4LjUsMzAyLjQsNTcuNSwzNDguOCw4NC44LDM4NWMzNC42LDQ1LjgsODIuNCw3NS4zLDE0Mi4xLDg3LjdsMi40LDAuNWwyLjQtMC41YzU5LjctMTIuMywxMDcuNS00MS44LDE0Mi4xLTg3LjdjMjcuNC0zNi4zLDQ2LjQtODIuNyw1Ni41LTEzNy45YzMtMTYuMiw1LTMyLjIsNi4zLTQ3LjVMNDI2LjksMTk5LjZMNDI2LjksMTk5LjZ6Ii8+PC9zdmc+', 74);
86
87 add_submenu_page('backup_guard_backups', _backupGuardT('Backups', true), _backupGuardT('Backups', true), 'manage_options', 'backup_guard_backups', 'backup_guard_backups_page');
88 add_submenu_page('backup_guard_backups', _backupGuardT('Cloud', true), _backupGuardT('Cloud', true), 'manage_options', 'backup_guard_cloud', 'backup_guard_cloud_page');
89 add_submenu_page('backup_guard_backups', _backupGuardT('Schedule', true), _backupGuardT('Schedule', true), 'manage_options', 'backup_guard_schedule', 'backup_guard_schedule_page');
90
91 add_submenu_page('backup_guard_backups', _backupGuardT('Settings', true), _backupGuardT('Settings', true), 'manage_options', 'backup_guard_settings', 'backup_guard_settings_page');
92
93 add_submenu_page('backup_guard_backups', _backupGuardT('System Info.', true), _backupGuardT('System Info.', true), 'manage_options', 'backup_guard_system_info', 'backup_guard_system_info_page');
94
95 add_submenu_page('backup_guard_backups', _backupGuardT('Services', true), _backupGuardT('Services', true), 'manage_options', 'backup_guard_services', 'backup_guard_services_page');
96 add_submenu_page('backup_guard_backups', _backupGuardT('Support', true), _backupGuardT('Support', true), 'manage_options', 'backup_guard_support', 'backup_guard_support_page');
97
98 //Check if should show upgrade page
99 if (SGBoot::isFeatureAvailable('SHOW_UPGRADE_PAGE')) {
100 add_submenu_page('backup_guard_backups', _backupGuardT('Why upgrade?', true), _backupGuardT('Why upgrade?', true), 'manage_options', 'backup_guard_pro_features', 'backup_guard_pro_features_page');
101 }
102 }
103
104 function backup_guard_system_info_page()
105 {
106 if (backupGuardValidateLicense()) {
107 require_once(plugin_dir_path(__FILE__).'public/systemInfo.php');
108 }
109 }
110
111 function backup_guard_services_page()
112 {
113 if (backupGuardValidateLicense()) {
114 require_once(plugin_dir_path(__FILE__).'public/services.php');
115 }
116 }
117
118 //Pro features page
119 function backup_guard_pro_features_page()
120 {
121 require_once(plugin_dir_path(__FILE__).'public/proFeatures.php');
122 }
123
124 function backup_guard_security_page()
125 {
126 require_once(plugin_dir_path(__FILE__).'public/security.php');
127 }
128
129 //Support page
130 function backup_guard_support_page()
131 {
132 if (backupGuardValidateLicense()) {
133 require_once(plugin_dir_path(__FILE__).'public/support.php');
134 }
135 }
136
137 //Backups Page
138 function backup_guard_backups_page()
139 {
140 if (backupGuardValidateLicense()) {
141 wp_enqueue_script('backup-guard-iframe-transport-js', plugin_dir_url(__FILE__).'public/js/jquery.iframe-transport.js', array('jquery'));
142 wp_enqueue_script('backup-guard-fileupload-js', plugin_dir_url(__FILE__).'public/js/jquery.fileupload.js', array('jquery'));
143 wp_enqueue_script('backup-guard-jstree-js', plugin_dir_url(__FILE__).'public/js/jstree.min.js', array('jquery'));
144 wp_enqueue_script('backup-guard-jstree-checkbox-js', plugin_dir_url(__FILE__).'public/js/jstree.checkbox.js', array('jquery'));
145 wp_enqueue_script('backup-guard-jstree-wholerow-js', plugin_dir_url(__FILE__).'public/js/jstree.wholerow.js', array('jquery'));
146 wp_enqueue_script('backup-guard-jstree-types-js', plugin_dir_url(__FILE__).'public/js/jstree.types.js', array('jquery'));
147 wp_enqueue_style('backup-guard-jstree-css', plugin_dir_url(__FILE__).'public/css/default/style.min.css');
148 wp_enqueue_script('backup-guard-backups-js', plugin_dir_url(__FILE__).'public/js/sgbackup.js', array('jquery', 'jquery-effects-core', 'jquery-effects-transfer', 'jquery-ui-widget'));
149
150 // Localize the script with new data
151 wp_localize_script('backup-guard-backups-js', 'BG_BACKUP_STRINGS', array(
152 'confirm' => _backupGuardT('Are you sure you want to cancel import?', true),
153 'nonce' => wp_create_nonce('backupGuardAjaxNonce'),
154 'invalidBackupOption' => _backupGuardT('Please choose at least one option.', true),
155 'invalidDirectorySelected' => _backupGuardT('Please choose at least one directory.', true),
156 'invalidCloud' => _backupGuardT('Please choose at least one cloud.', true),
157 'backupInProgress' => _backupGuardT('Backing Up...', true),
158 'errorMessage' => _backupGuardT('Something went wrong. Please try again.', true),
159 'noBackupsAvailable' => _backupGuardT('No backups found.', true),
160 'invalidImportOption' => _backupGuardT('Please select one of the options.', true),
161 'invalidDownloadFile' => _backupGuardT('Please choose one of the files.', true),
162 'import' => _backupGuardT('Import', true),
163 'importInProgress' => _backupGuardT('Importing please wait...', true),
164 'fileUploadFailed' => _backupGuardT('File upload failed.', true)
165 ));
166
167 require_once(plugin_dir_path( __FILE__ ).'public/backups.php');
168 }
169 }
170
171 //Cloud Page
172 function backup_guard_cloud_page()
173 {
174 if (backupGuardValidateLicense()) {
175 wp_enqueue_style('backup-guard-switch-css', plugin_dir_url(__FILE__).'public/css/bootstrap-switch.min.css');
176 wp_enqueue_script('backup-guard-switch-js', plugin_dir_url(__FILE__).'public/js/bootstrap-switch.min.js', array('jquery'), '1.0.0', true);
177 wp_enqueue_script('backup-guard-cloud-js', plugin_dir_url(__FILE__).'public/js/sgcloud.js', array('jquery'), '1.0.0', true);
178
179 // Localize the script with new data
180 wp_localize_script('backup-guard-cloud-js', 'BG_CLOUD_STRINGS', array(
181 'invalidImportFile' => _backupGuardT('Please select a file.', true),
182 'invalidFileSize' => _backupGuardT('File is too large.', true),
183 'connectionInProgress' => _backupGuardT('Connecting...', true),
184 'invalidDestinationFolder' => _backupGuardT('Destination folder is required.', true),
185 'successMessage' => _backupGuardT('Successfully saved.', true)
186 ));
187
188 require_once(plugin_dir_path(__FILE__).'public/cloud.php');
189 }
190 }
191
192 //Schedule Page
193 function backup_guard_schedule_page()
194 {
195 if (backupGuardValidateLicense()) {
196 wp_enqueue_style('backup-guard-switch-css', plugin_dir_url(__FILE__).'public/css/bootstrap-switch.min.css');
197 wp_enqueue_script('backup-guard-switch-js', plugin_dir_url(__FILE__).'public/js/bootstrap-switch.min.js', array('jquery'), '1.0.0', true);
198 wp_enqueue_script('backup-guard-schedule-js', plugin_dir_url(__FILE__).'public/js/sgschedule.js', array('jquery'), '1.0.0', true);
199
200 // Localize the script with new data
201 wp_localize_script('backup-guard-schedule-js', 'BG_SCHEDULE_STRINGS', array(
202 'deletionError' => _backupGuardT('Unable to delete schedule', true),
203 'confirm' => _backupGuardT('Are you sure?', true),
204 'invalidBackupOption' => _backupGuardT('Please choose at least one option.', true),
205 'invalidDirectorySelected' => _backupGuardT('Please choose at least one directory.', true),
206 'invalidCloud' => _backupGuardT('Please choose at least one cloud.', true),
207 'savingInProgress' => _backupGuardT('Saving...', true),
208 'successMessage' => _backupGuardT('You have successfully activated schedule.', true),
209 'saveButtonText' => _backupGuardT('Save', true)
210 ));
211
212 require_once(plugin_dir_path( __FILE__ ).'public/schedule.php');
213 }
214 }
215
216 //Settings Page
217 function backup_guard_settings_page()
218 {
219 if (backupGuardValidateLicense()) {
220 wp_enqueue_style('backup-guard-switch-css', plugin_dir_url(__FILE__).'public/css/bootstrap-switch.min.css');
221 wp_enqueue_script('backup-guard-switch-js', plugin_dir_url(__FILE__).'public/js/bootstrap-switch.min.js', array('jquery'), '1.0.0', true);
222 wp_enqueue_script('backup-guard-settings-js', plugin_dir_url(__FILE__).'public/js/sgsettings.js', array('jquery'), '1.0.0', true );
223
224 // Localize the script with new data
225 wp_localize_script('backup-guard-settings-js', 'BG_SETTINGS_STRINGS', array(
226 'invalidEmailAddress' => _backupGuardT('Please enter valid email.', true),
227 'invalidFileName' => _backupGuardT('Please enter valid file name.', true),
228 'invalidRetentionNumber' => _backupGuardT('Please enter a valid retention number.', true),
229 'successMessage' => _backupGuardT('Successfully saved.', true),
230 'savingInProgress' => _backupGuardT('Saving...', true),
231 'retentionConfirmationFirstPart' => _backupGuardT('Are you sure you want to keep the latest', true),
232 'retentionConfirmationSecondPart' => _backupGuardT('backups? All older backups will be deleted.', true),
233 'saveButtonText' => _backupGuardT('Save', true)
234 ));
235
236 require_once(plugin_dir_path(__FILE__).'public/settings.php');
237 }
238 }
239
240 function backup_guard_login_page()
241 {
242 wp_enqueue_script('backup-guard-login-js', plugin_dir_url(__FILE__).'public/js/sglogin.js', array('jquery'), '1.0.0', true);
243
244 require_once(plugin_dir_path(__FILE__).'public/login.php');
245 }
246
247 function backup_guard_link_license_page()
248 {
249 wp_enqueue_script('backup-guard-license-js', plugin_dir_url(__FILE__).'public/js/sglicense.js', array('jquery'), '1.0.0', true);
250 // Localize the script with new data
251 wp_localize_script('backup-guard-license-js', 'BG_LICENSE_STRINGS', array(
252 'invalidLicense' => _backupGuardT('Please choose a license first', true),
253 'availableLicenses' => _backupGuardT('There are no available licenses for using the selected product', true)
254 ));
255
256 require_once(plugin_dir_path(__FILE__).'public/link_license.php');
257 }
258
259 add_action('admin_enqueue_scripts', 'enqueue_backup_guard_scripts');
260 function enqueue_backup_guard_scripts($hook)
261 {
262 wp_enqueue_script('backup-guard-discount-notice', plugin_dir_url(__FILE__).'public/js/sgNoticeDismiss.js', array('jquery'), '1.0', true);
263
264 if (!strpos($hook,'backup_guard')) {
265 if($hook == "index.php"){
266 wp_enqueue_script('backup-guard-chart-manager', plugin_dir_url(__FILE__).'public/js/Chart.bundle.min.js');
267 }
268 return;
269 }
270
271 wp_enqueue_style('backup-guard-spinner', plugin_dir_url(__FILE__).'public/css/spinner.css');
272 wp_enqueue_style('backup-guard-wordpress', plugin_dir_url(__FILE__).'public/css/bgstyle.wordpress.css');
273 wp_enqueue_style('backup-guard-less', plugin_dir_url(__FILE__).'public/css/bgstyle.less.css');
274 wp_enqueue_style('backup-guard-styles', plugin_dir_url(__FILE__).'public/css/styles.css');
275
276 echo '<script type="text/javascript">sgBackup={};';
277 $sgAjaxRequestFrequency = SGConfig::get('SG_AJAX_REQUEST_FREQUENCY');
278 if (!$sgAjaxRequestFrequency) {
279 $sgAjaxRequestFrequency = SG_AJAX_DEFAULT_REQUEST_FREQUENCY;
280 }
281 echo 'SG_AJAX_REQUEST_FREQUENCY = "'.$sgAjaxRequestFrequency.'";';
282 echo 'function getAjaxUrl(url) {'.
283 'if (url==="cloudDropbox" || url==="cloudGdrive" || url==="cloudOneDrive") return "'.admin_url('admin-post.php?action=backup_guard_').'"+url;'.
284 'return "'.admin_url('admin-ajax.php').'";}</script>';
285
286 wp_enqueue_media();
287 wp_enqueue_script('backup-guard-less-framework', plugin_dir_url(__FILE__).'public/js/less.min.js', array('jquery'), '1.0.0', true);
288 wp_enqueue_script('backup-guard-bootstrap-framework', plugin_dir_url(__FILE__).'public/js/bootstrap.min.js', array('jquery'), '1.0.0', true);
289 wp_enqueue_script('backup-guard-sgrequest-js', plugin_dir_url(__FILE__).'public/js/sgrequesthandler.js', array('jquery'), '1.0.0', true);
290 wp_enqueue_script('backup-guard-sgwprequest-js', plugin_dir_url(__FILE__).'public/js/sgrequesthandler.wordpress.js', array('jquery'), '1.0.0', true);
291
292 wp_enqueue_style('backup-guard-rateyo-css', plugin_dir_url(__FILE__).'public/css/jquery.rateyo.css');
293 wp_enqueue_script('backup-guard-rateyo-js', plugin_dir_url(__FILE__).'public/js/jquery.rateyo.js');
294
295 wp_enqueue_script('backup-guard-main-js', plugin_dir_url(__FILE__).'public/js/main.js', array('jquery'), '1.0.0', true);
296
297 // Localize the script with new data
298 wp_localize_script('backup-guard-main-js', 'BG_MAIN_STRINGS', array(
299 'confirmCancel' => _backupGuardT('Are you sure you want to cancel?', true)
300 ));
301
302 wp_localize_script('backup-guard-main-js', 'BG_BACKUP_STRINGS', array(
303 'nonce' => wp_create_nonce('backupGuardAjaxNonce')
304 ));
305 }
306
307 // adding actions to handle modal ajax requests
308 add_action( 'wp_ajax_backup_guard_modalManualBackup', 'backup_guard_get_manual_modal');
309 add_action( 'wp_ajax_backup_guard_modalManualRestore', 'backup_guard_get_manual_restore_modal');
310 add_action( 'wp_ajax_backup_guard_modalImport', 'backup_guard_get_import_modal');
311 add_action( 'wp_ajax_backup_guard_modalFtpSettings', 'backup_guard_get_ftp_modal');
312 add_action( 'wp_ajax_backup_guard_modalAmazonSettings', 'backup_guard_get_amazon_modal');
313 add_action( 'wp_ajax_backup_guard_modalPrivacy', 'backup_guard_get_privacy_modal');
314 add_action( 'wp_ajax_backup_guard_modalTerms', 'backup_guard_get_terms_modal');
315 add_action( 'wp_ajax_backup_guard_modalReview', 'backup_guard_get_review_modal');
316 add_action( 'wp_ajax_backup_guard_getFileDownloadProgress', 'backup_guard_get_file_download_progress');
317 add_action( 'wp_ajax_backup_guard_modalCreateSchedule', 'backup_guard_create_schedule');
318 add_action( 'wp_ajax_backup_guard_getBackupContent', 'backup_guard_get_backup_content');
319
320 function backup_guard_get_file_download_progress()
321 {
322 check_ajax_referer('backupGuardAjaxNonce', 'token');
323 require_once(SG_PUBLIC_AJAX_PATH.'getFileDownloadProgress.php');
324 exit();
325 }
326
327 function backup_guard_create_schedule()
328 {
329 check_ajax_referer('backupGuardAjaxNonce', 'token');
330 require_once(SG_PUBLIC_AJAX_PATH.'modalCreateSchedule.php');
331 exit();
332 }
333
334 function backup_guard_get_manual_modal()
335 {
336 check_ajax_referer('backupGuardAjaxNonce', 'token');
337 require_once(SG_PUBLIC_AJAX_PATH.'modalManualBackup.php');
338 exit();
339 }
340
341 function backup_guard_get_manual_restore_modal()
342 {
343 check_ajax_referer('backupGuardAjaxNonce', 'token');
344 require_once(SG_PUBLIC_AJAX_PATH.'modalManualRestore.php');
345 exit();
346 }
347
348 function backup_guard_get_backup_content()
349 {
350 check_ajax_referer('backupGuardAjaxNonce', 'token');
351 require_once (SG_PUBLIC_AJAX_PATH.'getBackupContent.php');
352 exit();
353 }
354
355 function backup_guard_get_import_modal()
356 {
357 check_ajax_referer('backupGuardAjaxNonce', 'token');
358 require_once(SG_PUBLIC_AJAX_PATH.'modalImport.php');
359 exit();
360 }
361
362 function backup_guard_get_ftp_modal()
363 {
364 check_ajax_referer('backupGuardAjaxNonce', 'token');
365 require_once(SG_PUBLIC_AJAX_PATH.'modalFtpSettings.php');
366 exit();
367 }
368
369 function backup_guard_get_amazon_modal()
370 {
371 check_ajax_referer('backupGuardAjaxNonce', 'token');
372 require_once(SG_PUBLIC_AJAX_PATH.'modalAmazonSettings.php');
373 exit();
374 }
375
376 function backup_guard_get_privacy_modal()
377 {
378 require_once(SG_PUBLIC_AJAX_PATH.'modalPrivacy.php');
379 }
380
381 function backup_guard_get_terms_modal()
382 {
383 require_once(SG_PUBLIC_AJAX_PATH.'modalTerms.php');
384 exit();
385 }
386
387 function backup_guard_get_review_modal()
388 {
389 check_ajax_referer('backupGuardAjaxNonce', 'token');
390 require_once(SG_PUBLIC_AJAX_PATH.'modalReview.php');
391 exit();
392 }
393
394 function backup_guard_register_ajax_callbacks()
395 {
396 if (is_super_admin()) {
397 // adding actions to handle ajax and post requests
398 add_action('wp_ajax_backup_guard_cancelBackup', 'backup_guard_cancel_backup');
399 add_action('wp_ajax_backup_guard_checkBackupCreation', 'backup_guard_check_backup_creation');
400 add_action('wp_ajax_backup_guard_checkRestoreCreation', 'backup_guard_check_restore_creation');
401 add_action('wp_ajax_backup_guard_cloudDropbox', 'backup_guard_cloud_dropbox');
402 add_action('wp_ajax_backup_guard_cloudGdrive', 'backup_guard_cloud_gdrive');
403 add_action('wp_ajax_backup_guard_cloudOneDrive', 'backup_guard_cloud_oneDrive');
404 add_action('wp_ajax_backup_guard_cloudFtp', 'backup_guard_cloud_ftp');
405 add_action('wp_ajax_backup_guard_cloudAmazon', 'backup_guard_cloud_amazon');
406 add_action('wp_ajax_backup_guard_curlChecker', 'backup_guard_curl_checker');
407 add_action('wp_ajax_backup_guard_deleteBackup', 'backup_guard_delete_backup');
408 add_action('wp_ajax_backup_guard_getAction', 'backup_guard_get_action');
409 add_action('wp_ajax_backup_guard_getRunningActions', 'backup_guard_get_running_actions');
410 add_action('wp_ajax_backup_guard_importBackup', 'backup_guard_get_import_backup');
411 add_action('wp_ajax_backup_guard_resetStatus', 'backup_guard_reset_status');
412 add_action('wp_ajax_backup_guard_restore', 'backup_guard_restore');
413 add_action('wp_ajax_backup_guard_saveCloudFolder', 'backup_guard_save_cloud_folder');
414 add_action('wp_ajax_backup_guard_schedule', 'backup_guard_schedule');
415 add_action('wp_ajax_backup_guard_settings', 'backup_guard_settings');
416 add_action('wp_ajax_backup_guard_setReviewPopupState', 'backup_guard_set_review_popup_state');
417 add_action('wp_ajax_backup_guard_sendUsageStatistics', 'backup_guard_send_usage_statistics');
418 add_action('wp_ajax_backup_guard_hideNotice', 'backup_guard_hide_notice');
419 add_action('wp_ajax_backup_guard_downloadFromCloud', 'backup_guard_download_from_cloud');
420 add_action('wp_ajax_backup_guard_listStorage', 'backup_guard_list_storage');
421 add_action('wp_ajax_backup_guard_cancelDownload', 'backup_guard_cancel_download');
422 add_action('wp_ajax_backup_guard_awake', 'backup_guard_awake');
423 add_action('wp_ajax_backup_guard_manualBackup', 'backup_guard_manual_backup');
424 add_action('admin_post_backup_guard_downloadBackup', 'backup_guard_download_backup');
425 add_action('wp_ajax_backup_guard_login', 'backup_guard_login');
426 add_action('wp_ajax_backup_guard_logout', 'backup_guard_logout');
427 add_action('wp_ajax_backup_guard_link_license', 'backup_guard_link_license');
428 add_action('wp_ajax_backup_guard_importKeyFile', 'backup_guard_import_key_file');
429 add_action('wp_ajax_backup_guard_isFeatureAvailable', 'backup_guard_is_feature_available');
430 add_action('wp_ajax_backup_guard_dismiss_discount_notice', 'backup_guard_dismiss_discount_notice');
431 add_action('wp_ajax_backup_guard_checkPHPVersionCompatibility', 'backup_guard_check_php_version_compatibility');
432 add_action('wp_ajax_backup_guard_setUserInfoVerificationPopupState', 'backup_guard_set_user_info_verification_popup_state');
433 add_action('wp_ajax_backup_guard_storeSubscriberInfo', 'backup_guard_store_subscriber_info');
434 add_action('wp_ajax_backup_guard_storeSurveyResult', 'backup_guard_store_survey_result');
435 }
436 }
437
438 function backup_guard_store_survey_result()
439 {
440 check_ajax_referer('backupGuardAjaxNonce', 'token');
441 require_once(SG_PUBLIC_AJAX_PATH.'storeSurveyResult.php');
442 }
443
444 function backup_guard_store_subscriber_info()
445 {
446 check_ajax_referer('backupGuardAjaxNonce', 'token');
447 require_once(SG_PUBLIC_AJAX_PATH.'storeSubscriberInfo.php');
448 }
449
450 function backup_guard_set_user_info_verification_popup_state()
451 {
452 check_ajax_referer('backupGuardAjaxNonce', 'token');
453 require_once(SG_PUBLIC_AJAX_PATH.'setUserInfoVerificationPopupState.php');
454 }
455
456 function backup_guard_dismiss_discount_notice()
457 {
458 check_ajax_referer('backupGuardAjaxNonce', 'token');
459 require_once(SG_PUBLIC_AJAX_PATH.'dismissDiscountNotice.php');
460 }
461
462 function backup_guard_is_feature_available()
463 {
464 require_once(SG_PUBLIC_AJAX_PATH.'isFeatureAvailable.php');
465 }
466
467 function backup_guard_check_php_version_compatibility()
468 {
469 check_ajax_referer('backupGuardAjaxNonce', 'token');
470 require_once(SG_PUBLIC_AJAX_PATH.'checkPHPVersionCompatibility.php');
471 }
472
473 add_action('init', 'backup_guard_init');
474 add_action('wp_ajax_nopriv_backup_guard_awake', 'backup_guard_awake_nopriv');
475 add_action('admin_post_backup_guard_cloudDropbox', 'backup_guard_cloud_dropbox');
476 add_action('admin_post_backup_guard_cloudGdrive', 'backup_guard_cloud_gdrive');
477 add_action('admin_post_backup_guard_cloudOneDrive', 'backup_guard_cloud_oneDrive');
478
479 function backup_guard_cloud_oneDrive()
480 {
481 require_once(SG_PUBLIC_AJAX_PATH.'cloudOneDrive.php');
482 }
483
484 function backup_guard_import_key_file()
485 {
486 require_once(SG_PUBLIC_AJAX_PATH.'importKeyFile.php');
487 }
488
489 function backup_guard_awake()
490 {
491 $method = SG_RELOAD_METHOD_AJAX;
492 require_once(SG_PUBLIC_AJAX_PATH.'awake.php');
493 }
494
495 function backup_guard_awake_nopriv()
496 {
497 check_ajax_referer('backupGuardAjaxNonce', 'token');
498 $token = @$_GET['token'];
499 $method = @$_GET['method'];
500
501 if (backupGuardValidateApiCall($token)) {
502 require_once(SG_PUBLIC_AJAX_PATH.'awake.php');
503 }
504 }
505
506 function backup_guard_cancel_download()
507 {
508 check_ajax_referer('backupGuardAjaxNonce', 'token');
509 require_once(SG_PUBLIC_AJAX_PATH.'cancelDownload.php');
510 }
511
512 function backup_guard_list_storage()
513 {
514 check_ajax_referer('backupGuardAjaxNonce', 'token');
515 require_once(SG_PUBLIC_AJAX_PATH.'listStorage.php');
516 }
517
518 function backup_guard_download_from_cloud()
519 {
520 check_ajax_referer('backupGuardAjaxNonce', 'token');
521 require_once(SG_PUBLIC_AJAX_PATH.'downloadFromCloud.php');
522 }
523
524 function backup_guard_hide_notice()
525 {
526 check_ajax_referer('backupGuardAjaxNonce', 'token');
527 require_once(SG_PUBLIC_AJAX_PATH.'hideNotice.php');
528 }
529
530 function backup_guard_cancel_backup()
531 {
532 check_ajax_referer('backupGuardAjaxNonce', 'token');
533 require_once(SG_PUBLIC_AJAX_PATH.'cancelBackup.php');
534 }
535
536 function backup_guard_check_backup_creation()
537 {
538 check_ajax_referer('backupGuardAjaxNonce', 'token');
539 require_once(SG_PUBLIC_AJAX_PATH.'checkBackupCreation.php');
540 }
541
542 function backup_guard_check_restore_creation()
543 {
544 check_ajax_referer('backupGuardAjaxNonce', 'token');
545 require_once(SG_PUBLIC_AJAX_PATH.'checkRestoreCreation.php');
546 }
547
548 function backup_guard_cloud_dropbox()
549 {
550 require_once(SG_PUBLIC_AJAX_PATH.'cloudDropbox.php');
551 }
552
553 function backup_guard_cloud_ftp()
554 {
555 require_once(SG_PUBLIC_AJAX_PATH.'cloudFtp.php');
556 }
557
558 function backup_guard_cloud_amazon()
559 {
560 require_once(SG_PUBLIC_AJAX_PATH.'cloudAmazon.php');
561 }
562
563 function backup_guard_cloud_gdrive()
564 {
565 require_once(SG_PUBLIC_AJAX_PATH.'cloudGdrive.php');
566 }
567
568 function backup_guard_curl_checker()
569 {
570 check_ajax_referer('backupGuardAjaxNonce', 'token');
571 require_once(SG_PUBLIC_AJAX_PATH.'curlChecker.php');
572 }
573
574 function backup_guard_delete_backup()
575 {
576 check_ajax_referer('backupGuardAjaxNonce', 'token');
577 require_once(SG_PUBLIC_AJAX_PATH.'deleteBackup.php');
578 }
579
580 function backup_guard_download_backup()
581 {
582 require_once(SG_PUBLIC_AJAX_PATH.'downloadBackup.php');
583 }
584
585 function backup_guard_get_action()
586 {
587 check_ajax_referer('backupGuardAjaxNonce', 'token');
588 require_once(SG_PUBLIC_AJAX_PATH.'getAction.php');
589 }
590
591 function backup_guard_get_running_actions()
592 {
593 require_once(SG_PUBLIC_AJAX_PATH.'getRunningActions.php');
594 }
595
596 function backup_guard_get_import_backup()
597 {
598 require_once(SG_PUBLIC_AJAX_PATH.'importBackup.php');
599 }
600
601 function backup_guard_manual_backup()
602 {
603 check_ajax_referer('backupGuardAjaxNonce', 'token');
604 require_once(SG_PUBLIC_AJAX_PATH.'manualBackup.php');
605 }
606
607 function backup_guard_reset_status()
608 {
609 check_ajax_referer('backupGuardAjaxNonce', 'token');
610 require_once(SG_PUBLIC_AJAX_PATH.'resetStatus.php');
611 }
612
613 function backup_guard_restore()
614 {
615 require_once(SG_PUBLIC_AJAX_PATH.'restore.php');
616 }
617
618 function backup_guard_save_cloud_folder()
619 {
620 check_ajax_referer('backupGuardAjaxNonce', 'token');
621 require_once(SG_PUBLIC_AJAX_PATH.'saveCloudFolder.php');
622 }
623
624 function backup_guard_schedule()
625 {
626 require_once(SG_PUBLIC_AJAX_PATH.'schedule.php');
627 }
628
629 function backup_guard_settings()
630 {
631 require_once(SG_PUBLIC_AJAX_PATH.'settings.php');
632 }
633
634 function backup_guard_set_review_popup_state()
635 {
636 check_ajax_referer('backupGuardAjaxNonce', 'token');
637 require_once(SG_PUBLIC_AJAX_PATH.'setReviewPopupState.php');
638 }
639
640 function backup_guard_send_usage_statistics()
641 {
642 require_once(SG_PUBLIC_AJAX_PATH.'sendUsageStatistics.php');
643 }
644
645 function backup_guard_login()
646 {
647 check_ajax_referer('backupGuardAjaxNonce', 'token');
648 require_once(SG_PUBLIC_AJAX_PATH.'login.php');
649 }
650
651 function backup_guard_logout()
652 {
653 check_ajax_referer('backupGuardAjaxNonce', 'token');
654 require_once(SG_PUBLIC_AJAX_PATH.'logout.php');
655 }
656
657 function backup_guard_link_license()
658 {
659 check_ajax_referer('backupGuardAjaxNonce', 'token');
660 require_once(SG_PUBLIC_AJAX_PATH.'linkLicense.php');
661 }
662
663 //adds once weekly to the existing schedules.
664 add_filter('cron_schedules', 'backup_guard_cron_add_weekly');
665 function backup_guard_cron_add_weekly($schedules)
666 {
667 $schedules['weekly'] = array(
668 'interval' => 60*60*24*7,
669 'display' => 'Once weekly'
670 );
671 return $schedules;
672 }
673
674 //adds once monthly to the existing schedules.
675 add_filter('cron_schedules', 'backup_guard_cron_add_monthly');
676 function backup_guard_cron_add_monthly($schedules)
677 {
678 $schedules['monthly'] = array(
679 'interval' => 60*60*24*30,
680 'display' => 'Once monthly'
681 );
682 return $schedules;
683 }
684
685 //adds once yearly to the existing schedules.
686 add_filter('cron_schedules', 'backup_guard_cron_add_yearly');
687 function backup_guard_cron_add_yearly($schedules)
688 {
689 $schedules['yearly'] = array(
690 'interval' => 60*60*24*30*12,
691 'display' => 'Once yearly'
692 );
693 return $schedules;
694 }
695
696 function backup_guard_init()
697 {
698 backup_guard_register_ajax_callbacks();
699 // backupGuardPluginRedirect();
700
701 //check if database should be updated
702 if (backupGuardShouldUpdate()) {
703 SGBoot::install();
704 }
705
706 backupGuardSymlinksCleanup(SG_SYMLINK_PATH);
707 }
708
709 add_action(SG_SCHEDULE_ACTION, 'backup_guard_schedule_action', 10, 1);
710
711 function backup_guard_schedule_action($id)
712 {
713 require_once(SG_PUBLIC_PATH.'cron/sg_backup.php');
714 }
715
716 //load pro plugin updater
717 $pluginCapabilities = backupGuardGetCapabilities();
718 if ($pluginCapabilities != BACKUP_GUARD_CAPABILITIES_FREE) {
719 require_once(dirname(__FILE__).'/plugin-update-checker/plugin-update-checker.php');
720 require_once(dirname(__FILE__).'/plugin-update-checker/Puc/v4/Utils.php');
721 require_once(SG_LIB_PATH.'SGAuthClient.php');
722
723 $licenseKey = SGConfig::get('SG_LICENSE_KEY');
724
725 $updateChecker = Puc_v4_Factory::buildUpdateChecker(
726 BackupGuard\Config::URL.'/products/details/'.$licenseKey,
727 SG_BACKUP_GUARD_MAIN_FILE,
728 SG_PRODUCT_IDENTIFIER
729 );
730
731 $updateChecker->addHttpRequestArgFilter(array(
732 SGAuthClient::getInstance(),
733 'filterUpdateChecks'
734 ));
735 }
736
737 if (SGBoot::isFeatureAvailable('ALERT_BEFORE_UPDATE')) {
738 add_filter('upgrader_pre_download', 'backupGuardOnBeforeUpdateDownload', 10, 3);
739 add_action('core_upgrade_preamble', 'backupGuardOnUpgradeScreenActivate');
740 add_action('current_screen', 'backupGuardOnScreenActivate');
741 }
742
743 // Register the new dashboard widget with the 'wp_dashboard_setup' action
744 add_action('wp_dashboard_setup', 'backup_guard_add_dashboard_widgets');
745
746 function backup_guard_add_dashboard_widgets()
747 {
748 require_once(SG_CORE_PATH.'SGConfig.php');
749
750 $userId = get_current_user_id();
751 $userData = get_userdata($userId);
752 $userRoles = $userData->roles;
753 $isAdminUser = false;
754 for($i = 0; $i < count($userRoles); $i++) {
755 if ($userRoles[$i] == "administrator") {
756 $isAdminUser = true;
757 break;
758 }
759 }
760
761 if (!$isAdminUser ) {
762 return;
763 }
764
765 $isShowStatisticsWidgetEnabled = SGConfig::get('SG_SHOW_STATISTICS_WIDGET');
766 if (!$isShowStatisticsWidgetEnabled) {
767 return;
768 }
769
770
771 require_once(plugin_dir_path( __FILE__ ).'public/dashboardWidget.php');
772 wp_add_dashboard_widget('backupGuardWidget', 'Backup Guard', 'backup_guard_dashboard_widget_function');
773 }
774
775 add_action('plugins_loaded', 'backupGuardloadTextDomain');
776 function backupGuardloadTextDomain()
777 {
778 $backupGuardLangDir = plugin_dir_path(__FILE__).'languages/';
779 $backupGuardLangDir = apply_filters('backupguardLanguagesDirectory', $backupGuardLangDir);
780
781 $locale = apply_filters('bg_plugin_locale', get_locale(), BACKUP_GUARD_TEXTDOMAIN);
782 $mofile = sprintf('%1$s-%2$s.mo', BACKUP_GUARD_TEXTDOMAIN, $locale);
783
784 $mofileLocal = $backupGuardLangDir.$mofile;
785
786 if (file_exists($mofileLocal)) {
787 // Look in local /wp-content/plugins/popup-builder/languages/ folder
788 load_textdomain(BACKUP_GUARD_TEXTDOMAIN, $mofileLocal);
789 }
790 else {
791 // Load the default language files
792 load_plugin_textdomain(BACKUP_GUARD_TEXTDOMAIN, false, $backupGuardLangDir);
793 }
794 }
795
796 if (backupGuardShouldShowDiscountNotice() && checkDueDateDiscount()) {
797 add_action('admin_notices', 'backup_guard_discount_notice');
798 }
799
800 function backup_guard_discount_notice()
801 {
802 $capabilities = backupGuardGetCapabilities();
803 $upgradeUrl = BG_UPGRADE_URL;
804 ?>
805 <div class="backup-guard-discount-notice updated notice is-dismissible">
806 <div class="sgbg-col sgbg-col1"></div>
807 <div class="sgbg-col sgbg-col2"></div>
808 <div class="sgbg-col sgbg-col3">
809 <div class="sgbg-text-col-1">
810 -50%
811 </div>
812 <div class="sgbg-text-col-2">
813 <div class="sgbg-discount-text-1">Discount</div>
814 <div class="sgbg-discount-text-2">All Backup Guard Solutions</div>
815 </div>
816 </div>
817 <div class="sgbg-col sgbg-col4">
818 <a href="https://backup-guard.com/products/backup-wordpress" target="_blank"><button class="sgbg-button">Click Here</button></a>
819 </div>
820 </div>
821 <style>
822 .backup-guard-discount-notice.updated.notice.is-dismissible {
823 padding: 0;
824 border-left-color: #FFFFFF !important;
825 background-color: #000000;
826 height: 160px;
827 }
828 .backup-guard-discount-notice button:before {
829 color: #ffffff !important;
830 }
831 .sgbg-col {
832 display: inline-block;
833 width: 25%;
834 height: 100%;
835 padding: 0 25px;
836 box-sizing: border-box;
837 }
838 .sgbg-col1 {
839 width: 10%;
840 background-color: #FFFFFF;
841 background-image: url("<?php echo SG_IMAGE_URL ?>BgBFLogo.jpg");
842 background-size: 80%;
843 background-repeat: no-repeat;
844 background-position: center;
845 }
846 .sgbg-col2 {
847 width: 20%;
848 background-image: url("<?php echo SG_IMAGE_URL ?>BF.png");
849 background-size: contain;
850 margin-left: 70px;
851 background-position: center;
852 background-repeat: no-repeat;
853 }
854 .sgbg-col3 {
855 vertical-align: top;
856 width: 45%;
857 margin-top: 55px;
858 }
859 .sgbg-col4 {
860 width: 10%;
861 }
862 .sgbg-text-col-1,
863 .sgbg-text-col-2 {
864 width: 49%;
865 display: inline-block;
866 color: #FFFFFF;
867 }
868 .sgbg-text-col-1 {
869 font-size: 100px;
870 line-height: 0;
871 font-weight: bold;
872 text-align: right;
873 padding-right: 26px;
874 box-sizing: border-box;
875 }
876 .sgbg-discount-text-2 {
877 font-size: 19px;
878 }
879 .sgbg-discount-text-1 {
880 font-size: 60px;
881 padding-bottom: 27px;
882 font-weight: bold;
883 }
884 .sgbg-col4 {
885 vertical-align: top;
886 }
887 .sgbg-button {
888 width: 183px;
889 height: 67px;
890 font-size: 20px;
891 border: #ffffff;
892 border-radius: 10px;
893 margin-top: 48px;
894 background-color: #FFFFFF;
895 color: #000000;
896 cursor: pointer !important;
897 }
898 .sgbg-button:hover {
899 background-color: #000000;
900 border: 1px solid #FFFFFF;
901 color: #FFFFFF;
902 }
903 .backup-guard-discount-notice .notice-dismiss::before {
904 content: "x";
905 font-weight: 300;
906 font-family: Arial, sans-serif;
907 }
908
909 @media (max-width: 1810px) {
910 .sgbg-text-col-1 {
911 font-size: 80px;
912 }
913 .sgbg-discount-text-1 {
914 font-size: 43px;
915 }
916 .sgbg-discount-text-2 {
917 font-size: 15px;
918 }
919 .sgbg-discount-text-1 {
920 padding-bottom: 18px;
921 }
922 .sgbg-col3 {
923 margin-top: 60px;
924 }
925 }
926 @media (max-width: 1477px) {
927 .sgbg-discount-text-2 {
928 font-size: 12px;
929 }
930 .sgbg-discount-text-1 {
931 font-size: 35px;
932 }
933 .sgbg-discount-text-1 {
934 padding-bottom: 13px;
935 }
936 .sgbg-col {
937 padding: 0;
938 }
939 .sgbg-col2 {
940 margin-left: 40px;
941 }
942 .sgbg-col2 {
943 margin-left: 0;
944 }
945 }
946 </style>
947 <?php
948 }