PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / 1.1.90
JetBackup – Backup, Restore & Migrate v1.1.90
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
777 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 require_once(plugin_dir_path(__FILE__).'public/include/uninstallSurveyPopup.php');
69 }
70
71 // Register Admin Menus for single and multisite
72 if (is_multisite()) {
73 add_action('network_admin_menu', 'backup_guard_admin_menu');
74 }
75 else {
76 add_action('admin_menu', 'backup_guard_admin_menu');
77 }
78
79 function backup_guard_admin_menu()
80 {
81 add_menu_page('Backups', 'BackupGuard', 'manage_options', 'backup_guard_backups', 'backup_guard_backups_page', 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHZpZXdCb3g9IjAgMCA0NjIuOSA1MDEuNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNDYyLjkgNTAxLjQiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwYXRoIGZpbGw9IiNhMGE1YWEiIGQ9Ik00MjYuOSwxOTkuNmgtMTk4bDAuNCwzNEgyNDZoMTYyLjdjLTAuNSwzLjMtMS4xLDYuNi0xLjcsOS45Yy02LjEsMzMtMTUuMyw2Mi4yLTI3LjcsODcuNkg3OS40Yy0xMi4zLTI1LjQtMjEuNi01NC42LTI3LjctODcuNkMzOS4zLDE3Ni4xLDQ0LDExMS41LDQ3LjIsODMuN0M2Ny43LDkwLjUsODguMyw5NCwxMDguNiw5NGM2MC43LDAsMTAzLjMtMzAuMiwxMjAuOC00NS4xQzI0Ni43LDYzLjgsMjg5LjQsOTQsMzUwLjEsOTRoMGMyMC4zLDAsNDAuOS0zLjUsNjEuNC0xMC4zYzEuNiwxMy45LDMuNSwzNy4xLDMuNiw2NS4xaDIzLjdjMC00Ny40LTUuNS04MS4xLTUuOC04My4zbC0yLjQtMTQuNmwtMTMuNyw1LjZjLTIyLjQsOS4yLTQ0LjgsMTMuOC02Ni43LDEzLjhjMCwwLDAsMCwwLDBjLTY4LjMsMC0xMTEuNy00NS4zLTExMi4xLTQ1LjdsLTguNi05LjJsLTguNyw5LjJjLTAuNCwwLjUtNDMuOCw0NS43LTExMi4xLDQ1LjdjLTIxLjksMC00NC40LTQuNi02Ni43LTEzLjhsLTEzLjctNS42bC0yLjQsMTQuNmMtMC42LDMuNi0xNC40LDg4LjcsMi42LDE4MS42QzM4LjUsMzAyLjQsNTcuNSwzNDguOCw4NC44LDM4NWMzNC42LDQ1LjgsODIuNCw3NS4zLDE0Mi4xLDg3LjdsMi40LDAuNWwyLjQtMC41YzU5LjctMTIuMywxMDcuNS00MS44LDE0Mi4xLTg3LjdjMjcuNC0zNi4zLDQ2LjQtODIuNyw1Ni41LTEzNy45YzMtMTYuMiw1LTMyLjIsNi4zLTQ3LjVMNDI2LjksMTk5LjZMNDI2LjksMTk5LjZ6Ii8+PC9zdmc+', 74);
82
83 add_submenu_page('backup_guard_backups', _backupGuardT('Backups', true), _backupGuardT('Backups', true), 'manage_options', 'backup_guard_backups', 'backup_guard_backups_page');
84 add_submenu_page('backup_guard_backups', _backupGuardT('Cloud', true), _backupGuardT('Cloud', true), 'manage_options', 'backup_guard_cloud', 'backup_guard_cloud_page');
85 add_submenu_page('backup_guard_backups', _backupGuardT('Schedule', true), _backupGuardT('Schedule', true), 'manage_options', 'backup_guard_schedule', 'backup_guard_schedule_page');
86
87 add_submenu_page('backup_guard_backups', _backupGuardT('Settings', true), _backupGuardT('Settings', true), 'manage_options', 'backup_guard_settings', 'backup_guard_settings_page');
88
89 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');
90
91 add_submenu_page('backup_guard_backups', _backupGuardT('Services', true), _backupGuardT('Services', true), 'manage_options', 'backup_guard_services', 'backup_guard_services_page');
92 add_submenu_page('backup_guard_backups', _backupGuardT('Support', true), _backupGuardT('Support', true), 'manage_options', 'backup_guard_support', 'backup_guard_support_page');
93
94 //Check if should show upgrade page
95 if (SGBoot::isFeatureAvailable('SHOW_UPGRADE_PAGE')) {
96 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');
97 }
98 }
99
100 function backup_guard_system_info_page()
101 {
102 if (backupGuardValidateLicense()) {
103 require_once(plugin_dir_path(__FILE__).'public/systemInfo.php');
104 }
105 }
106
107 function backup_guard_services_page()
108 {
109 if (backupGuardValidateLicense()) {
110 require_once(plugin_dir_path(__FILE__).'public/services.php');
111 }
112 }
113
114 //Pro features page
115 function backup_guard_pro_features_page()
116 {
117 require_once(plugin_dir_path(__FILE__).'public/proFeatures.php');
118 }
119
120 function backup_guard_security_page()
121 {
122 require_once(plugin_dir_path(__FILE__).'public/security.php');
123 }
124
125 //Support page
126 function backup_guard_support_page()
127 {
128 if (backupGuardValidateLicense()) {
129 require_once(plugin_dir_path(__FILE__).'public/support.php');
130 }
131 }
132
133 //Backups Page
134 function backup_guard_backups_page()
135 {
136 if (backupGuardValidateLicense()) {
137 wp_enqueue_script('backup-guard-iframe-transport-js', plugin_dir_url(__FILE__).'public/js/jquery.iframe-transport.js', array('jquery'));
138 wp_enqueue_script('backup-guard-fileupload-js', plugin_dir_url(__FILE__).'public/js/jquery.fileupload.js', array('jquery'));
139 wp_enqueue_script('backup-guard-jstree-js', plugin_dir_url(__FILE__).'public/js/jstree.min.js', array('jquery'));
140 wp_enqueue_script('backup-guard-jstree-checkbox-js', plugin_dir_url(__FILE__).'public/js/jstree.checkbox.js', array('jquery'));
141 wp_enqueue_script('backup-guard-jstree-wholerow-js', plugin_dir_url(__FILE__).'public/js/jstree.wholerow.js', array('jquery'));
142 wp_enqueue_script('backup-guard-jstree-types-js', plugin_dir_url(__FILE__).'public/js/jstree.types.js', array('jquery'));
143 wp_enqueue_style('backup-guard-jstree-css', plugin_dir_url(__FILE__).'public/css/default/style.min.css');
144 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'));
145
146 // Localize the script with new data
147 wp_localize_script('backup-guard-backups-js', 'BG_BACKUP_STRINGS', array(
148 'confirm' => _backupGuardT('Are you sure you want to cancel import?', true),
149 'invalidBackupOption' => _backupGuardT('Please choose at least one option.', true),
150 'invalidDirectorySelected' => _backupGuardT('Please choose at least one directory.', true),
151 'invalidCloud' => _backupGuardT('Please choose at least one cloud.', true),
152 'backupInProgress' => _backupGuardT('Backing Up...', true),
153 'errorMessage' => _backupGuardT('Something went wrong. Please try again.', true),
154 'noBackupsAvailable' => _backupGuardT('No backups found.', true),
155 'invalidImportOption' => _backupGuardT('Please select one of the options.', true),
156 'invalidDownloadFile' => _backupGuardT('Please choose one of the files.', true),
157 'import' => _backupGuardT('Import', true),
158 'importInProgress' => _backupGuardT('Importing please wait...', true),
159 'fileUploadFailed' => _backupGuardT('File upload failed.', true)
160 ));
161
162 require_once(plugin_dir_path( __FILE__ ).'public/backups.php');
163 }
164 }
165
166 //Cloud Page
167 function backup_guard_cloud_page()
168 {
169 if (backupGuardValidateLicense()) {
170 wp_enqueue_style('backup-guard-switch-css', plugin_dir_url(__FILE__).'public/css/bootstrap-switch.min.css');
171 wp_enqueue_script('backup-guard-switch-js', plugin_dir_url(__FILE__).'public/js/bootstrap-switch.min.js', array('jquery'), '1.0.0', true);
172 wp_enqueue_script('backup-guard-cloud-js', plugin_dir_url(__FILE__).'public/js/sgcloud.js', array('jquery'), '1.0.0', true);
173
174 // Localize the script with new data
175 wp_localize_script('backup-guard-cloud-js', 'BG_CLOUD_STRINGS', array(
176 'invalidImportFile' => _backupGuardT('Please select a file.', true),
177 'invalidFileSize' => _backupGuardT('File is too large.', true),
178 'connectionInProgress' => _backupGuardT('Connecting...', true),
179 'invalidDestinationFolder' => _backupGuardT('Destination folder is required.', true),
180 'successMessage' => _backupGuardT('Successfully saved.', true)
181 ));
182
183 require_once(plugin_dir_path(__FILE__).'public/cloud.php');
184 }
185 }
186
187 //Schedule Page
188 function backup_guard_schedule_page()
189 {
190 if (backupGuardValidateLicense()) {
191 wp_enqueue_style('backup-guard-switch-css', plugin_dir_url(__FILE__).'public/css/bootstrap-switch.min.css');
192 wp_enqueue_script('backup-guard-switch-js', plugin_dir_url(__FILE__).'public/js/bootstrap-switch.min.js', array('jquery'), '1.0.0', true);
193 wp_enqueue_script('backup-guard-schedule-js', plugin_dir_url(__FILE__).'public/js/sgschedule.js', array('jquery'), '1.0.0', true);
194
195 // Localize the script with new data
196 wp_localize_script('backup-guard-schedule-js', 'BG_SCHEDULE_STRINGS', array(
197 'deletionError' => _backupGuardT('Unable to delete schedule', true),
198 'confirm' => _backupGuardT('Are you sure?', true),
199 'invalidBackupOption' => _backupGuardT('Please choose at least one option.', true),
200 'invalidDirectorySelected' => _backupGuardT('Please choose at least one directory.', true),
201 'invalidCloud' => _backupGuardT('Please choose at least one cloud.', true),
202 'savingInProgress' => _backupGuardT('Saving...', true),
203 'successMessage' => _backupGuardT('You have successfully activated schedule.', true),
204 'saveButtonText' => _backupGuardT('Save', true)
205 ));
206
207 require_once(plugin_dir_path( __FILE__ ).'public/schedule.php');
208 }
209 }
210
211 //Settings Page
212 function backup_guard_settings_page()
213 {
214 if (backupGuardValidateLicense()) {
215 wp_enqueue_style('backup-guard-switch-css', plugin_dir_url(__FILE__).'public/css/bootstrap-switch.min.css');
216 wp_enqueue_script('backup-guard-switch-js', plugin_dir_url(__FILE__).'public/js/bootstrap-switch.min.js', array('jquery'), '1.0.0', true);
217 wp_enqueue_script('backup-guard-settings-js', plugin_dir_url(__FILE__).'public/js/sgsettings.js', array('jquery'), '1.0.0', true );
218
219 // Localize the script with new data
220 wp_localize_script('backup-guard-settings-js', 'BG_SETTINGS_STRINGS', array(
221 'invalidEmailAddress' => _backupGuardT('Please enter valid email.', true),
222 'invalidFileName' => _backupGuardT('Please enter valid file name.', true),
223 'invalidRetentionNumber' => _backupGuardT('Please enter a valid retention number.', true),
224 'successMessage' => _backupGuardT('Successfully saved.', true),
225 'savingInProgress' => _backupGuardT('Saving...', true),
226 'retentionConfirmationFirstPart' => _backupGuardT('Are you sure you want to keep the latest', true),
227 'retentionConfirmationSecondPart' => _backupGuardT('backups? All older backups will be deleted.', true),
228 'saveButtonText' => _backupGuardT('Save', true)
229 ));
230
231 require_once(plugin_dir_path(__FILE__).'public/settings.php');
232 }
233 }
234
235 function backup_guard_login_page()
236 {
237 wp_enqueue_script('backup-guard-login-js', plugin_dir_url(__FILE__).'public/js/sglogin.js', array('jquery'), '1.0.0', true);
238
239 require_once(plugin_dir_path(__FILE__).'public/login.php');
240 }
241
242 function backup_guard_link_license_page()
243 {
244 wp_enqueue_script('backup-guard-license-js', plugin_dir_url(__FILE__).'public/js/sglicense.js', array('jquery'), '1.0.0', true);
245 // Localize the script with new data
246 wp_localize_script('backup-guard-license-js', 'BG_LICENSE_STRINGS', array(
247 'invalidLicense' => _backupGuardT('Please choose a license first', true),
248 'availableLicenses' => _backupGuardT('There are no available licenses for using the selected product', true)
249 ));
250
251 require_once(plugin_dir_path(__FILE__).'public/link_license.php');
252 }
253
254 add_action('admin_enqueue_scripts', 'enqueue_backup_guard_scripts');
255 function enqueue_backup_guard_scripts($hook)
256 {
257 wp_enqueue_script('backup-guard-discount-notice', plugin_dir_url(__FILE__).'public/js/sgNoticeDismiss.js', array('jquery'), '1.0', true);
258
259 if (!strpos($hook,'backup_guard')) {
260 if($hook == "index.php"){
261 wp_enqueue_script('backup-guard-chart-manager', plugin_dir_url(__FILE__).'public/js/Chart.bundle.min.js');
262 }
263 return;
264 }
265
266 wp_enqueue_style('backup-guard-spinner', plugin_dir_url(__FILE__).'public/css/spinner.css');
267 wp_enqueue_style('backup-guard-wordpress', plugin_dir_url(__FILE__).'public/css/bgstyle.wordpress.css');
268 wp_enqueue_style('backup-guard-less', plugin_dir_url(__FILE__).'public/css/bgstyle.less.css');
269 wp_enqueue_style('backup-guard-styles', plugin_dir_url(__FILE__).'public/css/styles.css');
270
271 echo '<script type="text/javascript">sgBackup={};';
272 $sgAjaxRequestFrequency = SGConfig::get('SG_AJAX_REQUEST_FREQUENCY');
273 if (!$sgAjaxRequestFrequency) {
274 $sgAjaxRequestFrequency = SG_AJAX_DEFAULT_REQUEST_FREQUENCY;
275 }
276 echo 'SG_AJAX_REQUEST_FREQUENCY = "'.$sgAjaxRequestFrequency.'";';
277 echo 'function getAjaxUrl(url) {'.
278 'if (url==="cloudDropbox" || url==="cloudGdrive" || url==="cloudOneDrive") return "'.admin_url('admin-post.php?action=backup_guard_').'"+url;'.
279 'return "'.admin_url('admin-ajax.php').'";}</script>';
280
281 wp_enqueue_media();
282 wp_enqueue_script('backup-guard-less-framework', plugin_dir_url(__FILE__).'public/js/less.min.js', array('jquery'), '1.0.0', true);
283 wp_enqueue_script('backup-guard-bootstrap-framework', plugin_dir_url(__FILE__).'public/js/bootstrap.min.js', array('jquery'), '1.0.0', true);
284 wp_enqueue_script('backup-guard-sgrequest-js', plugin_dir_url(__FILE__).'public/js/sgrequesthandler.js', array('jquery'), '1.0.0', true);
285 wp_enqueue_script('backup-guard-sgwprequest-js', plugin_dir_url(__FILE__).'public/js/sgrequesthandler.wordpress.js', array('jquery'), '1.0.0', true);
286
287 wp_enqueue_style('backup-guard-rateyo-css', plugin_dir_url(__FILE__).'public/css/jquery.rateyo.css');
288 wp_enqueue_script('backup-guard-rateyo-js', plugin_dir_url(__FILE__).'public/js/jquery.rateyo.js');
289
290 wp_enqueue_script('backup-guard-main-js', plugin_dir_url(__FILE__).'public/js/main.js', array('jquery'), '1.0.0', true);
291
292 // Localize the script with new data
293 wp_localize_script('backup-guard-main-js', 'BG_MAIN_STRINGS', array(
294 'confirmCancel' => _backupGuardT('Are you sure you want to cancel?', true)
295 ));
296 }
297
298 // adding actions to handle modal ajax requests
299 add_action( 'wp_ajax_backup_guard_modalManualBackup', 'backup_guard_get_manual_modal');
300 add_action( 'wp_ajax_backup_guard_modalManualRestore', 'backup_guard_get_manual_restore_modal');
301 add_action( 'wp_ajax_backup_guard_modalImport', 'backup_guard_get_import_modal');
302 add_action( 'wp_ajax_backup_guard_modalFtpSettings', 'backup_guard_get_ftp_modal');
303 add_action( 'wp_ajax_backup_guard_modalAmazonSettings', 'backup_guard_get_amazon_modal');
304 add_action( 'wp_ajax_backup_guard_modalPrivacy', 'backup_guard_get_privacy_modal');
305 add_action( 'wp_ajax_backup_guard_modalTerms', 'backup_guard_get_terms_modal');
306 add_action( 'wp_ajax_backup_guard_modalReview', 'backup_guard_get_review_modal');
307 add_action( 'wp_ajax_backup_guard_getFileDownloadProgress', 'backup_guard_get_file_download_progress');
308 add_action( 'wp_ajax_backup_guard_modalCreateSchedule', 'backup_guard_create_schedule');
309 add_action( 'wp_ajax_backup_guard_getBackupContent', 'backup_guard_get_backup_content');
310
311 function backup_guard_get_file_download_progress()
312 {
313 require_once(SG_PUBLIC_AJAX_PATH.'getFileDownloadProgress.php');
314 exit();
315 }
316
317 function backup_guard_create_schedule()
318 {
319 require_once(SG_PUBLIC_AJAX_PATH.'modalCreateSchedule.php');
320 exit();
321 }
322
323 function backup_guard_get_manual_modal()
324 {
325 require_once(SG_PUBLIC_AJAX_PATH.'modalManualBackup.php');
326 exit();
327 }
328
329 function backup_guard_get_manual_restore_modal()
330 {
331 require_once(SG_PUBLIC_AJAX_PATH.'modalManualRestore.php');
332 exit();
333 }
334
335 function backup_guard_get_backup_content()
336 {
337 require_once (SG_PUBLIC_AJAX_PATH.'getBackupContent.php');
338 exit();
339 }
340
341 function backup_guard_get_import_modal()
342 {
343 require_once(SG_PUBLIC_AJAX_PATH.'modalImport.php');
344 exit();
345 }
346
347 function backup_guard_get_ftp_modal()
348 {
349 require_once(SG_PUBLIC_AJAX_PATH.'modalFtpSettings.php');
350 exit();
351 }
352
353 function backup_guard_get_amazon_modal()
354 {
355 require_once(SG_PUBLIC_AJAX_PATH.'modalAmazonSettings.php');
356 exit();
357 }
358
359 function backup_guard_get_privacy_modal()
360 {
361 require_once(SG_PUBLIC_AJAX_PATH.'modalPrivacy.php');
362 }
363
364 function backup_guard_get_terms_modal()
365 {
366 require_once(SG_PUBLIC_AJAX_PATH.'modalTerms.php');
367 exit();
368 }
369
370 function backup_guard_get_review_modal()
371 {
372 require_once(SG_PUBLIC_AJAX_PATH.'modalReview.php');
373 exit();
374 }
375
376 function backup_guard_register_ajax_callbacks()
377 {
378 if (is_super_admin()) {
379 // adding actions to handle ajax and post requests
380 add_action('wp_ajax_backup_guard_cancelBackup', 'backup_guard_cancel_backup');
381 add_action('wp_ajax_backup_guard_checkBackupCreation', 'backup_guard_check_backup_creation');
382 add_action('wp_ajax_backup_guard_checkRestoreCreation', 'backup_guard_check_restore_creation');
383 add_action('wp_ajax_backup_guard_cloudDropbox', 'backup_guard_cloud_dropbox');
384 add_action('wp_ajax_backup_guard_cloudGdrive', 'backup_guard_cloud_gdrive');
385 add_action('wp_ajax_backup_guard_cloudOneDrive', 'backup_guard_cloud_oneDrive');
386 add_action('wp_ajax_backup_guard_cloudFtp', 'backup_guard_cloud_ftp');
387 add_action('wp_ajax_backup_guard_cloudAmazon', 'backup_guard_cloud_amazon');
388 add_action('wp_ajax_backup_guard_curlChecker', 'backup_guard_curl_checker');
389 add_action('wp_ajax_backup_guard_deleteBackup', 'backup_guard_delete_backup');
390 add_action('wp_ajax_backup_guard_getAction', 'backup_guard_get_action');
391 add_action('wp_ajax_backup_guard_getRunningActions', 'backup_guard_get_running_actions');
392 add_action('wp_ajax_backup_guard_importBackup', 'backup_guard_get_import_backup');
393 add_action('wp_ajax_backup_guard_resetStatus', 'backup_guard_reset_status');
394 add_action('wp_ajax_backup_guard_restore', 'backup_guard_restore');
395 add_action('wp_ajax_backup_guard_saveCloudFolder', 'backup_guard_save_cloud_folder');
396 add_action('wp_ajax_backup_guard_schedule', 'backup_guard_schedule');
397 add_action('wp_ajax_backup_guard_settings', 'backup_guard_settings');
398 add_action('wp_ajax_backup_guard_setReviewPopupState', 'backup_guard_set_review_popup_state');
399 add_action('wp_ajax_backup_guard_sendUsageStatistics', 'backup_guard_send_usage_statistics');
400 add_action('wp_ajax_backup_guard_hideNotice', 'backup_guard_hide_notice');
401 add_action('wp_ajax_backup_guard_downloadFromCloud', 'backup_guard_download_from_cloud');
402 add_action('wp_ajax_backup_guard_listStorage', 'backup_guard_list_storage');
403 add_action('wp_ajax_backup_guard_cancelDownload', 'backup_guard_cancel_download');
404 add_action('wp_ajax_backup_guard_awake', 'backup_guard_awake');
405 add_action('wp_ajax_backup_guard_manualBackup', 'backup_guard_manual_backup');
406 add_action('admin_post_backup_guard_downloadBackup', 'backup_guard_download_backup');
407 add_action('wp_ajax_backup_guard_login', 'backup_guard_login');
408 add_action('wp_ajax_backup_guard_logout', 'backup_guard_logout');
409 add_action('wp_ajax_backup_guard_link_license', 'backup_guard_link_license');
410 add_action('wp_ajax_backup_guard_importKeyFile', 'backup_guard_import_key_file');
411 add_action('wp_ajax_backup_guard_isFeatureAvailable', 'backup_guard_is_feature_available');
412 add_action('wp_ajax_backup_guard_dismiss_discount_notice', 'backup_guard_dismiss_discount_notice');
413 add_action('wp_ajax_backup_guard_checkPHPVersionCompatibility', 'backup_guard_check_php_version_compatibility');
414 add_action('wp_ajax_backup_guard_setUserInfoVerificationPopupState', 'backup_guard_set_user_info_verification_popup_state');
415 add_action('wp_ajax_backup_guard_storeSubscriberInfo', 'backup_guard_store_subscriber_info');
416 add_action('wp_ajax_backup_guard_storeSurveyResult', 'backup_guard_store_survey_result');
417 }
418 }
419
420 function backup_guard_store_survey_result()
421 {
422 require_once(SG_PUBLIC_AJAX_PATH.'storeSurveyResult.php');
423 }
424
425 function backup_guard_store_subscriber_info()
426 {
427 require_once(SG_PUBLIC_AJAX_PATH.'storeSubscriberInfo.php');
428 }
429
430 function backup_guard_set_user_info_verification_popup_state()
431 {
432 require_once(SG_PUBLIC_AJAX_PATH.'setUserInfoVerificationPopupState.php');
433 }
434
435 function backup_guard_dismiss_discount_notice()
436 {
437 require_once(SG_PUBLIC_AJAX_PATH.'dismissDiscountNotice.php');
438 }
439
440 function backup_guard_is_feature_available()
441 {
442 require_once(SG_PUBLIC_AJAX_PATH.'isFeatureAvailable.php');
443 }
444
445 function backup_guard_check_php_version_compatibility()
446 {
447 require_once(SG_PUBLIC_AJAX_PATH.'checkPHPVersionCompatibility.php');
448 }
449
450 add_action('init', 'backup_guard_init');
451 add_action('wp_ajax_nopriv_backup_guard_awake', 'backup_guard_awake_nopriv');
452 add_action('admin_post_backup_guard_cloudDropbox', 'backup_guard_cloud_dropbox');
453 add_action('admin_post_backup_guard_cloudGdrive', 'backup_guard_cloud_gdrive');
454 add_action('admin_post_backup_guard_cloudOneDrive', 'backup_guard_cloud_oneDrive');
455
456 function backup_guard_cloud_oneDrive()
457 {
458 require_once(SG_PUBLIC_AJAX_PATH.'cloudOneDrive.php');
459 }
460
461 function backup_guard_import_key_file()
462 {
463 require_once(SG_PUBLIC_AJAX_PATH.'importKeyFile.php');
464 }
465
466 function backup_guard_awake()
467 {
468 $method = SG_RELOAD_METHOD_AJAX;
469 require_once(SG_PUBLIC_AJAX_PATH.'awake.php');
470 }
471
472 function backup_guard_awake_nopriv()
473 {
474 $token = @$_GET['token'];
475 $method = @$_GET['method'];
476
477 if (backupGuardValidateApiCall($token)) {
478 require_once(SG_PUBLIC_AJAX_PATH.'awake.php');
479 }
480 }
481
482 function backup_guard_cancel_download()
483 {
484 require_once(SG_PUBLIC_AJAX_PATH.'cancelDownload.php');
485 }
486
487 function backup_guard_list_storage()
488 {
489 require_once(SG_PUBLIC_AJAX_PATH.'listStorage.php');
490 }
491
492 function backup_guard_download_from_cloud()
493 {
494 require_once(SG_PUBLIC_AJAX_PATH.'downloadFromCloud.php');
495 }
496
497 function backup_guard_hide_notice()
498 {
499 require_once(SG_PUBLIC_AJAX_PATH.'hideNotice.php');
500 }
501
502 function backup_guard_cancel_backup()
503 {
504 require_once(SG_PUBLIC_AJAX_PATH.'cancelBackup.php');
505 }
506
507 function backup_guard_check_backup_creation()
508 {
509 require_once(SG_PUBLIC_AJAX_PATH.'checkBackupCreation.php');
510 }
511
512 function backup_guard_check_restore_creation()
513 {
514 require_once(SG_PUBLIC_AJAX_PATH.'checkRestoreCreation.php');
515 }
516
517 function backup_guard_cloud_dropbox()
518 {
519 require_once(SG_PUBLIC_AJAX_PATH.'cloudDropbox.php');
520 }
521
522 function backup_guard_cloud_ftp()
523 {
524 require_once(SG_PUBLIC_AJAX_PATH.'cloudFtp.php');
525 }
526
527 function backup_guard_cloud_amazon()
528 {
529 require_once(SG_PUBLIC_AJAX_PATH.'cloudAmazon.php');
530 }
531
532 function backup_guard_cloud_gdrive()
533 {
534 require_once(SG_PUBLIC_AJAX_PATH.'cloudGdrive.php');
535 }
536
537 function backup_guard_curl_checker()
538 {
539 require_once(SG_PUBLIC_AJAX_PATH.'curlChecker.php');
540 }
541
542 function backup_guard_delete_backup()
543 {
544 require_once(SG_PUBLIC_AJAX_PATH.'deleteBackup.php');
545 }
546
547 function backup_guard_download_backup()
548 {
549 require_once(SG_PUBLIC_AJAX_PATH.'downloadBackup.php');
550 }
551
552 function backup_guard_get_action()
553 {
554 require_once(SG_PUBLIC_AJAX_PATH.'getAction.php');
555 }
556
557 function backup_guard_get_running_actions()
558 {
559 require_once(SG_PUBLIC_AJAX_PATH.'getRunningActions.php');
560 }
561
562 function backup_guard_get_import_backup()
563 {
564 require_once(SG_PUBLIC_AJAX_PATH.'importBackup.php');
565 }
566
567 function backup_guard_manual_backup()
568 {
569 require_once(SG_PUBLIC_AJAX_PATH.'manualBackup.php');
570 }
571
572 function backup_guard_reset_status()
573 {
574 require_once(SG_PUBLIC_AJAX_PATH.'resetStatus.php');
575 }
576
577 function backup_guard_restore()
578 {
579 require_once(SG_PUBLIC_AJAX_PATH.'restore.php');
580 }
581
582 function backup_guard_save_cloud_folder()
583 {
584 require_once(SG_PUBLIC_AJAX_PATH.'saveCloudFolder.php');
585 }
586
587 function backup_guard_schedule()
588 {
589 require_once(SG_PUBLIC_AJAX_PATH.'schedule.php');
590 }
591
592 function backup_guard_settings()
593 {
594 require_once(SG_PUBLIC_AJAX_PATH.'settings.php');
595 }
596
597 function backup_guard_set_review_popup_state()
598 {
599 require_once(SG_PUBLIC_AJAX_PATH.'setReviewPopupState.php');
600 }
601
602 function backup_guard_send_usage_statistics()
603 {
604 require_once(SG_PUBLIC_AJAX_PATH.'sendUsageStatistics.php');
605 }
606
607 function backup_guard_login()
608 {
609 require_once(SG_PUBLIC_AJAX_PATH.'login.php');
610 }
611
612 function backup_guard_logout()
613 {
614 require_once(SG_PUBLIC_AJAX_PATH.'logout.php');
615 }
616
617 function backup_guard_link_license()
618 {
619 require_once(SG_PUBLIC_AJAX_PATH.'linkLicense.php');
620 }
621
622 //adds once weekly to the existing schedules.
623 add_filter('cron_schedules', 'backup_guard_cron_add_weekly');
624 function backup_guard_cron_add_weekly($schedules)
625 {
626 $schedules['weekly'] = array(
627 'interval' => 60*60*24*7,
628 'display' => 'Once weekly'
629 );
630 return $schedules;
631 }
632
633 //adds once monthly to the existing schedules.
634 add_filter('cron_schedules', 'backup_guard_cron_add_monthly');
635 function backup_guard_cron_add_monthly($schedules)
636 {
637 $schedules['monthly'] = array(
638 'interval' => 60*60*24*30,
639 'display' => 'Once monthly'
640 );
641 return $schedules;
642 }
643
644 //adds once yearly to the existing schedules.
645 add_filter('cron_schedules', 'backup_guard_cron_add_yearly');
646 function backup_guard_cron_add_yearly($schedules)
647 {
648 $schedules['yearly'] = array(
649 'interval' => 60*60*24*30*12,
650 'display' => 'Once yearly'
651 );
652 return $schedules;
653 }
654
655 function backup_guard_init()
656 {
657 backup_guard_register_ajax_callbacks();
658 // backupGuardPluginRedirect();
659
660 //check if database should be updated
661 if (backupGuardShouldUpdate()) {
662 SGBoot::install();
663 }
664
665 backupGuardSymlinksCleanup(SG_SYMLINK_PATH);
666 }
667
668 add_action(SG_SCHEDULE_ACTION, 'backup_guard_schedule_action', 10, 1);
669
670 function backup_guard_schedule_action($id)
671 {
672 require_once(SG_PUBLIC_PATH.'cron/sg_backup.php');
673 }
674
675 //load pro plugin updater
676 $pluginCapabilities = backupGuardGetCapabilities();
677 if ($pluginCapabilities != BACKUP_GUARD_CAPABILITIES_FREE) {
678 require_once(dirname(__FILE__).'/plugin-update-checker/plugin-update-checker.php');
679 require_once(dirname(__FILE__).'/plugin-update-checker/Puc/v4/Utils.php');
680 require_once(SG_LIB_PATH.'SGAuthClient.php');
681
682 $licenseKey = SGConfig::get('SG_LICENSE_KEY');
683
684 $updateChecker = Puc_v4_Factory::buildUpdateChecker(
685 BackupGuard\Config::URL.'/products/details/'.$licenseKey,
686 SG_BACKUP_GUARD_MAIN_FILE,
687 SG_PRODUCT_IDENTIFIER
688 );
689
690 $updateChecker->addHttpRequestArgFilter(array(
691 SGAuthClient::getInstance(),
692 'filterUpdateChecks'
693 ));
694 }
695
696 if (SGBoot::isFeatureAvailable('ALERT_BEFORE_UPDATE')) {
697 add_filter('upgrader_pre_download', 'backupGuardOnBeforeUpdateDownload', 10, 3);
698 add_action('core_upgrade_preamble', 'backupGuardOnUpgradeScreenActivate');
699 add_action('current_screen', 'backupGuardOnScreenActivate');
700 }
701
702 // Register the new dashboard widget with the 'wp_dashboard_setup' action
703 add_action('wp_dashboard_setup', 'backup_guard_add_dashboard_widgets');
704
705 function backup_guard_add_dashboard_widgets()
706 {
707 require_once(SG_CORE_PATH.'SGConfig.php');
708
709 $userId = get_current_user_id();
710 $userData = get_userdata($userId);
711 $userRoles = $userData->roles;
712 $isAdminUser = false;
713 for($i = 0; $i < count($userRoles); $i++) {
714 if ($userRoles[$i] == "administrator") {
715 $isAdminUser = true;
716 break;
717 }
718 }
719
720 if (!$isAdminUser ) {
721 return;
722 }
723
724 $isShowStatisticsWidgetEnabled = SGConfig::get('SG_SHOW_STATISTICS_WIDGET');
725 if (!$isShowStatisticsWidgetEnabled) {
726 return;
727 }
728
729
730 require_once(plugin_dir_path( __FILE__ ).'public/dashboardWidget.php');
731 wp_add_dashboard_widget('backupGuardWidget', 'Backup Guard', 'backup_guard_dashboard_widget_function');
732 }
733
734 add_action('plugins_loaded', 'backupGuardloadTextDomain');
735 function backupGuardloadTextDomain()
736 {
737 $backupGuardLangDir = plugin_dir_path(__FILE__).'languages/';
738 $backupGuardLangDir = apply_filters('backupguardLanguagesDirectory', $backupGuardLangDir);
739
740 $locale = apply_filters('bg_plugin_locale', get_locale(), BACKUP_GUARD_TEXTDOMAIN);
741 $mofile = sprintf('%1$s-%2$s.mo', BACKUP_GUARD_TEXTDOMAIN, $locale);
742
743 $mofileLocal = $backupGuardLangDir.$mofile;
744
745 if (file_exists($mofileLocal)) {
746 // Look in local /wp-content/plugins/popup-builder/languages/ folder
747 load_textdomain(BACKUP_GUARD_TEXTDOMAIN, $mofileLocal);
748 }
749 else {
750 // Load the default language files
751 load_plugin_textdomain(BACKUP_GUARD_TEXTDOMAIN, false, $backupGuardLangDir);
752 }
753 }
754
755 if (backupGuardShouldShowDiscountNotice() && checkDueDateDiscount()) {
756 add_action('admin_notices', 'backup_guard_discount_notice');
757 }
758
759 function backup_guard_discount_notice()
760 {
761 $capabilities = backupGuardGetCapabilities();
762 $upgradeUrl = BG_UPGRADE_URL;
763 ?>
764 <div class="backup-guard-discount-notice updated notice is-dismissible">
765 <a href="<?php echo BG_UPGRADE_URL; ?>" target="_blank"><div class="discount-banner" style="background-image: url('<?php echo SG_IMAGE_URL ?>halloween.jpg');background-repeat: no-repeat; background-position: center; height: 200px;"></div></a>
766 </div>
767 <style>
768 .backup-guard-discount-notice.updated.notice.is-dismissible {
769 padding: 0;
770 border-left-color: #fea500 !important;
771 }
772 .backup-guard-discount-notice button:before {
773 color: #fea500 !important;
774 }
775 </style>
776 <?php
777 }