update_check();
Api_Backups_Overview::get_instance();
Api_Backups_Settings::get_instance();
Api_Backups_Handler::get_instance();
Api_Backups_Hooks::get_instance();
}
/**
* Method admin_init() initiated by init()
*
* Enqueue scripts and styles.
*/
public function admin_init() {
add_filter( 'mainwp_log_specific_actions', array( &$this, 'hook_mainwp_log_specific_actions' ), 10, 2 );
Api_Backups_3rd_Party::instance()->init_ajax_actions();
$module_url = Api_Backups_Manager::get_location_path( 'url' );
if ( isset( $_GET['page'] ) && ( 'ManageApiBackups' === $_GET['page'] || 'ManageSitesApiBackups' === $_GET['page'] || 'SettingsApiBackups' === $_GET['page'] ) ) { //phpcs:ignore WordPress.Security.NonceVerification.Recommended
// Enqueue needed assets.
wp_enqueue_script( 'mainwp-module-api-backups', $module_url . 'assets/js/module-api-backups.js', array(), $this->version, true );
wp_enqueue_script( 'mainwp-module-api-backups-manager', $module_url . 'assets/js/module-api-backups-manager.js', array( 'mainwp' ), $this->version, true );
wp_enqueue_style( 'mainwp-module-api-backups', $module_url . 'assets/css/module-api-backups.css', array(), $this->version );
}
}
/**
* Method hook_getprimarybackup_methods().
*
* @param array $input Input values.
*
* @return array $input
*/
public function hook_getprimarybackup_methods( $input ) {
$input[] = array(
'value' => 'module-api-backups',
'title' => esc_html__( 'API Backups', 'mainwp' ),
);
return $input;
}
/**
* Handle @filter hook_managesites_getbackuplink().
*
* @param array $input Input values.
* @param int $site_id Site id.
* @param int $last_primary_backup Last time primary backup.
* @param string $primary_backup Primary backup method.
*
* @return array $input
*/
public function hook_managesites_getbackuplink( $input, $site_id, $last_primary_backup = 0, $primary_backup = '' ) {
if ( 'module-api-backups' !== $primary_backup ) {
return $input;
}
if ( $site_id ) {
if ( ! empty( $last_primary_backup ) ) {
$output = Api_Backups_Utility::format_timestamp( Api_Backups_Utility::get_timestamp( $last_primary_backup ) ) . '
';
} else {
$output = 'Never
';
}
if ( mainwp_current_user_have_right( 'dashboard', 'execute_backups' ) ) {
$link = sprintf( '' . __( 'Backup Now', 'it-l10n-mainwp-backupbuddy' ) . '', $site_id );
$output .= $link;
}
return $output;
} else {
return $input;
}
}
/**
* Method hook_mainwp_log_specific_actions().
*
* @param array $input Input values.
*
* @return array $input
*/
public function hook_mainwp_log_specific_actions( $input ) {
$input[ MainWP_Logger::API_BACKUPS_LOG_PRIORITY ] = 'API Backups';
return $input;
}
/**
* Method update_check().
*
* Handle update db values if needed .
*/
public function update_check() {
$current_update = get_option( 'mainwp_api_backups_update_version' );
if ( ( false === $current_update && version_compare( $this->version, '4.2', '<=' ) ) || version_compare( $current_update, '4.1', '<' ) ) {
$map_names = array(
'vultr' => 'mainwp_vultr_api_key',
'gridpane' => 'mainwp_gridpane_api_key',
'linode' => 'mainwp_linode_api_key',
'digitalocean' => 'mainwp_digitalocean_api_key',
'cloudways' => 'mainwp_cloudways_api_key',
);
foreach ( $map_names as $api_name => $old_name ) {
$data = get_option( $old_name );
if ( ! empty( $data ) ) {
$encrypted = Api_Backups_Utility::get_instance()->encrypt_api_keys( $data, false, false, $api_name );
if ( is_array( $encrypted ) && ! empty( $encrypted['file_key'] ) ) {
update_option( 'mainwp_api_backups_' . $api_name . '_api_key', $encrypted );
delete_option( $old_name );
}
}
}
update_option( 'mainwp_api_backups_update_version', $this->update_version );
}
}
/**
* Method init_menu()
*
* Add Insights Overview sub menu "Insights".
*/
public static function init_menu() {
self::$page = add_submenu_page(
'mainwp_tab',
esc_html__( 'API Backups', 'mainwp' ),
'