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