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