File "features.php"
Full Path: /home/vantageo/public_html/cache/cache/cache/.wp-cli/wp-content/plugins/wp-database-backup/includes/features.php
File size: 15.76 KB
MIME-type: text/x-php
Charset: utf-8
<?php
// Anonimization code
add_filter( 'wpdbbkp_process_db_fields','bkpforwp_anonimize_database',10,3);
function bkpforwp_anonimize_database($value,$table,$column){
$enable_anonymization = get_option('bkpforwp_enable_anonymization',false);
$anonymization_type = get_option('bkpforwp_anonymization_type',false);
$enable_backup_encryption = get_option('bkpforwp_enable_backup_encryption',false);
$anonymization_pass = get_option('bkpforwp_anonymization_pass','');
if(isset($enable_anonymization) && $enable_anonymization==1){
global $wpdb;
$bkpforwp_process_table = array($wpdb->prefix.'options',$wpdb->prefix.'users',$wpdb->prefix.'usermeta',$wpdb->prefix.'wc_customer_lookup',$wpdb->prefix.'edd_customers',$wpdb->prefix.'edd_customermeta');
$bkpforwp_process_cols = array('mailserver_pass','mailserver_login','user_email','email','user_url','nickname','name','twitter','facebook','instagram','phone','mobile','address','city','zip','pincode','user_login','postcode','state','user_ip','ip_address');
//Masking Logic
if(isset($anonymization_type) && $anonymization_type =='masked_data'){
if(in_array($table,$bkpforwp_process_table)){
$check_str= implode(',',$bkpforwp_process_cols);
if(stripos($check_str,$column)!==false){
return str_replace($value,str_repeat('*',strlen($value)),$value);
}
}
}
//FakeData Logic
if(isset($anonymization_type) && $anonymization_type=='fake_data'){
if(function_exists('wp_privacy_anonymize_data')){
$bkpforwp_process_email = implode(',',array('email','user_email'));
$bkpforwp_process_url = implode(',',array('url','user_url','twitter','facebook','instagram'));
$bkpforwp_process_ip = implode(',',array('user_ip','ip_address'));
$bkpforwp_process_text = implode(',',array('nickname','name','address','phone','mobile','city','zip','pincode','user_login','postcode','state'));
if(in_array($table,$bkpforwp_process_table)){
//For email
if(stripos($bkpforwp_process_email,$column)!==false){
return str_replace($value,wp_privacy_anonymize_data('email',$value),$value);
}
if(stripos($bkpforwp_process_url,$column)!==false){
return str_replace($value,wp_privacy_anonymize_data('url',$value),$value);
}
if(stripos($bkpforwp_process_ip,$column)!==false){
return str_replace($value,wp_privacy_anonymize_data('ip',$value),$value);
}
if(stripos($bkpforwp_process_text,$column)!==false){
return str_replace($value,wp_privacy_anonymize_data('text',$value),$value);
}
}
return $value;
}
else{
if(in_array($table,$bkpforwp_process_table)){
$check_str= implode(',',$bkpforwp_process_cols);
if(stripos($check_str,$column)!==false){
return str_replace($value,str_repeat('*',strlen($value)),$value);
}
}
}
}
if(isset($anonymization_type) && $anonymization_type=='encrypted_data' && !empty($anonymization_pass)){
require_once 'class-symmetric-encryption.php';
if(in_array($table,$bkpforwp_process_table)){
$check_str= implode(',',$bkpforwp_process_cols);
if(stripos($check_str,$column)!==false){
$enc_pass = $anonymization_pass;
$encryption = new SymmetricEncryption();
return str_replace($value,'<==>'.$encryption->encrypt($value,$enc_pass,$enc_pass).'<==>',$value);
}
}
}
}
return $value;
}
add_filter('wpdbbkp_sql_query_restore','bkpforwp_sql_query_restore',1);
function bkpforwp_sql_query_restore($sql_query){
$anonymization_type = get_option('bkpforwp_anonymization_type',false);
$anonymization_pass = get_option('bkpforwp_anonymization_pass','');
if(isset($anonymization_type) && $anonymization_type=='encrypted_data' && !empty($anonymization_pass)){
$pattern = '/<==>(.*?)<==>/i';
return preg_replace_callback($pattern, 'bkpforwp_sql_restore_replace', $sql_query);
}
return $sql_query;
}
function bkpforwp_sql_restore_replace($matches){
$anonymization_pass = get_option('bkpforwp_anonymization_pass','');
$enc_pass = isset($anonymization_pass)?$anonymization_pass:false;
if($enc_pass){
require_once 'class-symmetric-encryption.php';
$encryption = new SymmetricEncryption();
return $encryption->decrypt($matches[0], $enc_pass, $enc_pass);
}
return $matches[0];
}
add_action('wpdbbkp_database_backup_options','bkpforwp_database_backup_options');
function bkpforwp_database_backup_options(){
$settings = get_option( 'wp_db_backup_options' );
$autobackup_days = isset($settings['autobackup_days'])?implode(',',$settings['autobackup_days']):',';
$autobackup_time = isset($settings['autobackup_time'])?$settings['autobackup_time']:'';
$autobackup_date = isset($settings['autobackup_date'])?$settings['autobackup_date']:'';
?>
<div class="row form-group autobackup_frequency_pro" style="display:none"><label class="col-sm-12 autobackup_daily_pro" >We will automatically backup at 00:00 AM daily. <b><a href="javascript:modify_backup_frequency();">Change Back Frequency Timings</a></b></label></div>
<div class="row form-group autobackup_frequency_pro" style="display:none"><label class="col-sm-12 autobackup_weekly_pro" >We will automatically backup every Sunday on weekly basis. <b><a href="javascript:modify_backup_frequency();">Change Back Frequency Timings</a></b></label></div>
<div class="row form-group autobackup_frequency_pro" style="display:none"><label class="col-sm-12 autobackup_monthly_pro" >We will automatically backup on 1st on Monday on monthly basis. <b><a href="javascript:modify_backup_frequency();">Change Back Frequency Timings</a></b></label></div>
<div class="row form-group autobackup_days database_autobackup" style="display:none">
<label class="col-sm-3" for="autobackup_days"><?php esc_html_e('Database Backup Days','backupforwp-pro');?></label>
<div class="col-sm-9">
<select id="autobackup_days" class="form-control bkpforwp_multiselect" name="wp_db_backup_options[autobackup_days][]" multiple>
<option value="Mon" <?php if(strpos($autobackup_days,'Mon')!==false){ echo 'selected';} ?> ><?php esc_html_e('Monday','backupforwp-pro');?></option>
<option value="Tue" <?php if(strpos($autobackup_days,'Tue')!==false){ echo 'selected';} ?>><?php esc_html_e('Tuesday','backupforwp-pro');?></option>
<option value="Wed" <?php if(strpos($autobackup_days,'Wed')!==false){ echo 'selected';} ?>><?php esc_html_e('Wednesday','backupforwp-pro');?></option>
<option value="Thu" <?php if(strpos($autobackup_days,'Thu')!==false){ echo 'selected';} ?>><?php esc_html_e('Thursday','backupforwp-pro');?></option>
<option value="Fri" <?php if(strpos($autobackup_days,'Fri')!==false){ echo 'selected';} ?>><?php esc_html_e('Friday','backupforwp-pro');?></option>
<option value="Sat" <?php if(strpos($autobackup_days,'Sat')!==false){ echo 'selected';} ?>><?php esc_html_e('Saturday','backupforwp-pro');?></option>
<option value="Sun" <?php if(strpos($autobackup_days,'Sun')!==false){ echo 'selected';} ?>><?php esc_html_e('Sunday','backupforwp-pro');?></option>
</select>
</div>
</div>
<div class="row form-group autobackup_date database_autobackup" style="display:none">
<label class="col-sm-3" for="autobackup_date"><?php esc_html_e('Database Backup Date','backupforwp-pro');?></label>
<div class="col-sm-9">
<input type="date" id="autobackup_date" value="<?php echo esc_attr($autobackup_date);?>" class="form-control bkpforwp_multiselect" name="wp_db_backup_options[autobackup_date]">
</div>
</div>
<div class="row form-group autobackup_time database_autobackup" style="display:none">
<label class="col-sm-3" for="autobackup_time"><?php esc_html_e('Database Backup Time','backupforwp-pro');?></label>
<div class="col-sm-9">
<input type="time" id="autobackup_time" value="<?php echo esc_attr($autobackup_time);?>" class="form-control bkpforwp_multiselect" name="wp_db_backup_options[autobackup_time]">
</div>
</div>
<?php
}
add_action('wpdbbkp_full_backup_options','bkpforwp_full_backup_options');
function bkpforwp_full_backup_options(){
$settings = get_option( 'wp_db_backup_options' );
$autobackup_days = isset($settings['autobackup_full_days'])?implode(',',$settings['autobackup_full_days']):',';
$autobackup_time = isset($settings['autobackup_full_time'])?$settings['autobackup_full_time']:'';
$autobackup_date = isset($settings['autobackup_full_date'])?$settings['autobackup_full_date']:'';
$autobackup_date = isset($settings['autobackup_full_date'])?$settings['autobackup_full_date']:'';
$senable_exact_backup_time = get_option( 'bkpforwp_enable_exact_backup_time',false);
if($senable_exact_backup_time){
?>
<div class="row form-group autobackup_full_days full_autobackup" style="display:none">
<label class="col-sm-3" for="autobackup_full_days"><?php esc_html_e('Full Backup Days','backupforwp-pro');?></label>
<div class="col-sm-9">
<select id="autobackup_full_days" class="form-control bkpforwp_multiselect" name="wp_db_backup_options[autobackup_full_days][]" multiple>
<option value="Mon" <?php if(strpos($autobackup_days,'Mon')!==false){ echo 'selected';} ?> ><?php esc_html_e('Monday','backupforwp-pro');?></option>
<option value="Tue" <?php if(strpos($autobackup_days,'Tue')!==false){ echo 'selected';} ?>><?php esc_html_e('Tuesday','backupforwp-pro');?></option>
<option value="Wed" <?php if(strpos($autobackup_days,'Wed')!==false){ echo 'selected';} ?>><?php esc_html_e('Wednesday','backupforwp-pro');?></option>
<option value="Thu" <?php if(strpos($autobackup_days,'Thu')!==false){ echo 'selected';} ?>><?php esc_html_e('Thursday','backupforwp-pro');?></option>
<option value="Fri" <?php if(strpos($autobackup_days,'Fri')!==false){ echo 'selected';} ?>><?php esc_html_e('Friday','backupforwp-pro');?></option>
<option value="Sat" <?php if(strpos($autobackup_days,'Sat')!==false){ echo 'selected';} ?>><?php esc_html_e('Saturday','backupforwp-pro');?></option>
<option value="Sun" <?php if(strpos($autobackup_days,'Sun')!==false){ echo 'selected';} ?>><?php esc_html_e('Sunday','backupforwp-pro');?></option>
</select>
</div>
</div>
<div class="row form-group autobackup_full_date full_autobackup" style="display:none">
<label class="col-sm-3" for="autobackup_full_date"><?php esc_html_e('Full Backup Date','backupforwp-pro');?></label>
<div class="col-sm-9">
<input type="date" id="autobackup_full_date" value="<?php echo esc_attr($autobackup_date);?>" class="form-control" name="wp_db_backup_options[autobackup_full_date]">
</div>
</div>
<div class="row form-group autobackup_full_time full_autobackup" style="display:none">
<label class="col-sm-3" for="autobackup_full_time"><?php esc_html_e('Full Backup Time','backupforwp-pro');?></label>
<div class="col-sm-9">
<input type="time" id="autobackup_full_time" value="<?php echo esc_attr($autobackup_time);?>" class="form-control" name="wp_db_backup_options[autobackup_full_time]">
</div>
</div>
<?php
}
}
add_filter( 'wpdbbkp_fullback_cron_condition', 'bkpforwp_fullback_cron_condition');
function bkpforwp_fullback_cron_condition($value){
$options_settings = get_option('wp_db_backup_options',false);
$senable_exact_backup_time = get_option( 'bkpforwp_enable_exact_backup_time',false);
if(!$senable_exact_backup_time){
return $value;
}
if(wp_doing_cron() && $options_settings && isset($options_settings['enable_autobackups']) && $options_settings['enable_autobackups']==1 && isset($options_settings['full_autobackup_frequency'])){
if($options_settings['full_autobackup_frequency']=='daily' && isset($options_settings['autobackup_full_time']) && $options_settings['autobackup_full_time']){
if($options_settings['autobackup_full_time'] < gmdate("H:i") || $options_settings['autobackup_full_time'] > gmdate("H:i",strtotime('+30 minutes', gmdate("H:i")))){
$value= false;
}
}
if($options_settings['full_autobackup_frequency']=='weekly' && isset($options_settings['autobackup_full_time']) && $options_settings['autobackup_full_time'] && isset($options_settings['autobackup_full_days'])){
$current_day=gmdate('M');
$current_time=gmdate('H:i');
$allowed_days= $options_settings['autobackup_full_days'];
if(!in_array($current_day,$allowed_days) || ($options_settings['autobackup_full_time'] < $current_time) || $options_settings['autobackup_full_time'] > gmdate("H:i",strtotime('+30 minutes', $current_time))){
$value= false;
}
}
if($options_settings['full_autobackup_frequency']=='monthly' && isset($options_settings['autobackup_full_time']) && $options_settings['autobackup_full_time'] && isset($options_settings['autobackup_full_date'])){
$current_date=gmdate('d');
$current_time=gmdate('H:i');
$allowed_date=gmdate('d',strtotime($options_settings['autobackup_full_date']));
if(($allowed_date!=$current_date) || ($options_settings['autobackup_full_time'] < $current_time || $options_settings['autobackup_full_time'] > gmdate("H:i",strtotime('+30 minutes', $current_time)))){
$value= false;
}
}
}
return $value;
}
add_filter( 'wpdbbkp_dbback_cron_condition', 'bkpforwp_dbback_cron_condition');
function bkpforwp_dbback_cron_condition($value){
$options_settings = get_option('wp_db_backup_options',false);
if(wp_doing_cron() && $options_settings && isset($options_settings['enable_autobackups']) && $options_settings['enable_autobackups']==1 && isset($options_settings['autobackup_frequency'])){
if($options_settings['autobackup_frequency']=='daily' && isset($options_settings['autobackup_time'])){
if($options_settings['autobackup_time'] < gmdate("H:i") || $options_settings['autobackup_time'] > gmdate("H:i",strtotime('+30 minutes', gmdate("H:i")))){
$value= false;
}
}
if($options_settings['autobackup_frequency']=='weekly' && isset($options_settings['autobackup_time']) && isset($options_settings['autobackup_days'])){
$current_day=gmdate('M');
$current_time=gmdate('H:i');
$allowed_days=$options_settings['autobackup_days'];
if(!in_array($current_day,$allowed_days) || ($options_settings['autobackup_time'] < $current_time || $options_settings['autobackup_time'] > gmdate("H:i",strtotime('+30 minutes', $current_time)))){
$value= false;
}
}
if($options_settings['autobackup_frequency']=='monthly' && isset($options_settings['autobackup_time']) && isset($options_settings['autobackup_date'])){
$current_date=gmdate('d');
$current_time=gmdate('H:i');
$allowed_date=gmdate('d',strtotime($options_settings['autobackup_date']));
if(($allowed_date!=$current_date) || ($options_settings['autobackup_time'] < $current_time || $options_settings['autobackup_time'] > gmdate("H:i",strtotime('+30 minutes', $current_time)))){
$value= false;
}
}
}
return $value;
}
add_filter( 'wpdbbkp_dbback_cron_frequency', 'bkpforwp_dbback_cron_frequency');
function bkpforwp_dbback_cron_frequency($value){
if(wp_doing_cron())
{
$options = get_option( 'wp_db_backup_options' );
if(isset($options['autobackup_full_time']) && !empty($options['autobackup_full_time'])){
$value = 'thirty_minutes';
}
}
return $value;
}