function bpsPro_DBB_processing() { global $wpdb; $DBBoptions = get_option('bulletproof_security_options_db_backup'); bpsPro_DBB_delete_old_backup_files(); $DBB_table_name = $wpdb->prefix . "bpspro_db_backup"; $DBB_Rows = 'Scheduled'; $DBB_TableRows = $wpdb->get_results($wpdb->prepare("SELECT * FROM {$DBB_table_name} WHERE bps_job_type = %s", $DBB_Rows)); $db_backup = $DBBoptions['bps_db_backup_folder'] . '/' . DB_NAME . '.sql'; foreach ($DBB_TableRows as $row) { if (time() >= $row->bps_next_job_unix) { $job_name = $row->bps_desc; $job_type = $row->bps_job_type; $email_zip = $row->bps_email_zip; $build_query_1 = "SHOW TABLES FROM `" . DB_NAME . "` WHERE `Tables_in_" . DB_NAME . "` LIKE '"; $build_query_2 = str_replace(', ', "' OR `Tables_in_" . DB_NAME . "` LIKE '", $row->bps_table_name); $build_query_3 = "'"; $tables = $wpdb->get_results($build_query_1 . $build_query_2 . $build_query_3, ARRAY_A); bpsPro_db_backup($db_backup, $tables, $job_name, $job_type, $email_zip); if ($row->bps_frequency == 'Hourly') { $update_rows = $wpdb->update($DBB_table_name, array('bps_next_job_unix' => time() + 3600), array('bps_id' => $row->bps_id)); } if ($row->bps_frequency == 'Daily') { $update_rows = $wpdb->update($DBB_table_name, array('bps_next_job_unix' => time() + 86400), array('bps_id' => $row->bps_id)); } if ($row->bps_frequency == 'Weekly') { $update_rows = $wpdb->update($DBB_table_name, array('bps_next_job_unix' => time() + 604800), array('bps_id' => $row->bps_id)); } if ($row->bps_frequency == 'Monthly') { $update_rows = $wpdb->update($DBB_table_name, array('bps_next_job_unix' => time() + 2592000), array('bps_id' => $row->bps_id)); } } } }
function bpsPro_dbbackup_form_processing() { if (isset($_POST['Submit-DBB-Run-Job']) && current_user_can('manage_options')) { check_admin_referer('bulletproof_security_db_backup_run_job'); global $wpdb; $timeNow = time(); $gmt_offset = get_option('gmt_offset') * 3600; $timestamp = date_i18n(get_option('date_format'), strtotime("11/15-1976")) . ' ' . date_i18n(get_option('time_format'), $timeNow + $gmt_offset); $DBBoptions = get_option('bulletproof_security_options_db_backup'); $DBBjobs = $_POST['DBBjobs']; $DBBtable_name = $wpdb->prefix . "bpspro_db_backup"; switch ($_POST['Submit-DBB-Run-Job']) { case __('Run Job|Delete Job', 'bulletproof-security'): $delete_jobs = array(); $run_jobs = array(); if (!empty($DBBjobs)) { foreach ($DBBjobs as $key => $value) { if ($value == 'deletejob') { $delete_jobs[] = $key; } elseif ($value == 'runjob') { $run_jobs[] = $key; } } } if (!empty($delete_jobs)) { echo '<div id="message" class="updated" style="border:1px solid #999999;margin-left:220px;background-color:#ffffe0;"><p>'; foreach ($delete_jobs as $delete_job) { $DBBackupRows = $wpdb->get_results($wpdb->prepare("SELECT * FROM {$DBBtable_name} WHERE bps_id = %d", $delete_job)); foreach ($DBBackupRows as $row) { $delete_row = $wpdb->query($wpdb->prepare("DELETE FROM {$DBBtable_name} WHERE bps_id = %d", $delete_job)); wp_clear_scheduled_hook('bpsPro_DBB_check'); $textDelete = '<strong><font color="green">' . __('Backup Job: ', 'bulletproof-security') . $row->bps_desc . __(' has been deleted successfully.', 'bulletproof-security') . '</font></strong><br>'; echo $textDelete; } } echo '<div class="bps-message-button" style="width:90px;"><a href="admin.php?page=bulletproof-security/admin/db-backup-security/db-backup-security.php">' . __('Refresh Status', 'bulletproof-security') . '</a></div>'; echo '</p></div>'; } if (!empty($run_jobs)) { $db_backup = $DBBoptions['bps_db_backup_folder'] . '/' . DB_NAME . '.sql'; echo '<div id="message" class="updated" style="border:1px solid #999999;margin-left:220px;background-color:#ffffe0;"><p>'; foreach ($run_jobs as $run_job) { $DBBackupRows = $wpdb->get_results($wpdb->prepare("SELECT * FROM {$DBBtable_name} WHERE bps_id = %d", $run_job)); foreach ($DBBackupRows as $row) { $job_name = $row->bps_desc; $job_type = $row->bps_job_type; $email_zip = $row->bps_email_zip; $build_query_1 = "SHOW TABLES FROM `" . DB_NAME . "` WHERE `Tables_in_" . DB_NAME . "` LIKE '"; $build_query_2 = str_replace(', ', "' OR `Tables_in_" . DB_NAME . "` LIKE '", $row->bps_table_name); $build_query_3 = "'"; $tables = $wpdb->get_results($build_query_1 . $build_query_2 . $build_query_3, ARRAY_A); bpsPro_db_backup($db_backup, $tables, $job_name, $job_type, $email_zip); $update_rows = $wpdb->update($DBBtable_name, array('bps_last_job' => $timestamp), array('bps_id' => $row->bps_id)); $textRunJob = '<strong><font color="green">' . __('Backup Job: ', 'bulletproof-security') . $row->bps_desc . __(' has completed.', 'bulletproof-security') . '<br>' . __('Your DB Backup Log contains the Backup Job Completion Time, Total Memory Used and other information about this Backup.', 'bulletproof-security') . '<br>' . __('Click the Refresh Status button below to refresh the DB Backup Timestamp.', 'bulletproof-security') . '</font></strong><br>'; echo $textRunJob; } } echo '<div class="bps-message-button" style="width:90px;margin-top:10px;"><a href="admin.php?page=bulletproof-security/admin/db-backup-security/db-backup-security.php">' . __('Refresh Status', 'bulletproof-security') . '</a></div>'; echo '</p></div>'; } break; } // end Switch } }