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