????
Current Path : /home/innovagencyco/www/abtest.innovagency.co.za/wp-content/plugins/backuply/main/ |
Current File : /home/innovagencyco/www/abtest.innovagency.co.za/wp-content/plugins/backuply/main/bcloud-cron.php |
<?php if(!defined('ABSPATH')){ die('Hacking Attempt!'); } // Cron for Calling Auto Backup add_action('backuply_auto_backup_cron', 'backuply_auto_backup_execute'); // Auto Backup using custom cron if(isset($_GET['action']) && $_GET['action'] == 'backuply_custom_cron'){ if(!backuply_verify_self(sanitize_text_field(wp_unslash($_REQUEST['backuply_key'])))){ backuply_status_log('Security Check Failed', 'error'); die(); } backuply_auto_backup_execute(); } // Adds a Wp-Cron for autobackup if(!function_exists('backuply_add_auto_backup_schedule')){ function backuply_add_auto_backup_schedule($schedule = '') { global $backuply; if(empty($schedule)){ $schedule = backuply_optpost('backuply_cron_schedule'); } if (!wp_next_scheduled( 'backuply_auto_backup_cron' ) && !empty($backuply['bcloud_key'])){ wp_schedule_event(time(), $schedule, 'backuply_auto_backup_cron'); } } } // Initiates auto backup if(!function_exists('backuply_auto_backup_execute')){ function backuply_auto_backup_execute(){ global $backuply; if(empty($backuply['bcloud_key'])){ return false; } $access_key = backuply_bcloud_isallowed(); if(empty($access_key)){ return; } //$backuply['auto_backup'] = true; backuply_create_log_file(); if($auto_backup_settings = get_option('backuply_cron_settings')){ $auto_backup_settings['auto_backup'] = true; update_option('backuply_status', $auto_backup_settings); backuply_backup_execute(); } } } // Rotate the backups if(!function_exists('backuply_backup_rotation')){ function backuply_backup_rotation() { global $backuply; if(empty($backuply['status']['backup_rotation'])) { return; } $backup_info = backuply_get_backups_info(); if(empty($backup_info)) { return; } $backup_info = array_filter($backup_info, 'backuply_bcloud_filter_backups_on_loc'); usort($backup_info, 'backuply_bcloud_oldest_backup'); if(count($backup_info) >= $backuply['status']['backup_rotation']) { if(empty($backup_info[0])) { return; } backuply_log('Deleting Files because of Backup rotation'); backuply_status_log('Deleting backup because of Backup rotation', 39); $extra_backups = count($backup_info) - $backuply['status']['backup_rotation']; if($extra_backups > 0) { for($i = 0; $i < $extra_backups; $i++) { backuply_delete_backup($backup_info[$i]->name .'.'. $backup_info[$i]->ext); } } } } } function backuply_bcloud_oldest_backup($a, $b) { return (int) $a->btime - (int) $b->btime; } // Returns backups based on location function backuply_bcloud_filter_backups_on_loc($backup) { global $backuply; if(!isset($backup->backup_location)){ return ($backup->auto_backup); } return ($backuply['status']['backup_location'] == $backup->backup_location && $backup->auto_backup); } function backuply_bcloud_isallowed(){ global $backuply; if(!empty(get_transient('bcloud_data'))){ return true; } $url = BACKUPLY_API . '/cloud/token.php'; // Check if License is present and active. if(empty($backuply['license']['license'] || empty($backuply['license']['active']))){ return false; } // Check if Bcloud key is there. if(empty($backuply['bcloud_key'])){ return false; } $args = array( 'sslverfiy' => false, 'body' => array( 'license' => $backuply['license']['license'], 'bcloud_key' => $backuply['bcloud_key'], 'url' => site_url() ), 'timeout' => 30 ); $res = wp_remote_post($url, $args); if(empty($res) && is_wp_error($res)){ return false; } if(empty($res['body'])){ return false; } $body = json_decode($res['body'], true); if(empty($body['success'])){ return false; } return true; }