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 ) { $output = ''; if ( \mainwp_current_user_can( 'dashboard', 'execute_backups' ) ) { if ( ! empty( $last_primary_backup ) ) { $output = ''; } else { $output = ''; } } 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() { static::$page = add_submenu_page( 'mainwp_tab', esc_html__( 'API Backups', 'mainwp' ), '