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' ), '
' . esc_html__( 'API Backups', 'mainwp' ) . '
', 'read', 'ManageApiBackups', array( Api_Backups_Overview::get_instance(), 'render_backups_list', ) ); /** * This hook allows you to add extra sub pages to the client page via the 'mainwp_getsubpages_cost_tracker' filter. */ static::$subPages = apply_filters( 'mainwp_getsubpages_api_backups', array() ); if ( isset( static::$subPages ) && is_array( static::$subPages ) ) { foreach ( static::$subPages as $subPage ) { if ( empty( $subPage['slug'] ) || empty( $subPage['callback'] ) ) { continue; } if ( MainWP_Menu::is_disable_menu_item( 3, 'ManageApiBackups' . $subPage['slug'] ) ) { continue; } add_submenu_page( 'mainwp_tab', $subPage['title'], '
' . esc_html( $subPage['title'] ) . '
', 'read', 'ManageApiBackups' . $subPage['slug'], $subPage['callback'] ); } } static::init_left_menu( static::$subPages ); } /** * Initiates API Backups menu. * * @param array $subPages API Backups sub pages. */ public static function init_left_menu( $subPages ) { MainWP_Menu::add_left_menu( array( 'title' => esc_html__( 'API Backups', 'mainwp' ), 'parent_key' => 'managesites', 'slug' => 'ManageApiBackups', 'href' => 'admin.php?page=ManageApiBackups', 'icon' => '', 'desc' => 'API Backups Overview', 'nosubmenu' => true, 'leftsub_order' => 8, ), 1 ); $init_sub_subleftmenu = array(); MainWP_Menu::init_subpages_left_menu( $subPages, $init_sub_subleftmenu, 'ManageApiBackups', 'ManageApiBackups' ); foreach ( $init_sub_subleftmenu as $item ) { if ( MainWP_Menu::is_disable_menu_item( 3, $item['slug'] ) ) { continue; } MainWP_Menu::add_left_menu( $item, 2 ); } } /** * Method render_header() * * Render page header. */ public static function render_header() { $params = array( 'title' => esc_html__( 'API Backups - BETA', 'mainwp' ), 'which' => 'page_api_backups_overview', 'wrap_class' => 'mainwp-module-api-backups-content-wrapper', ); MainWP_UI::render_top_header( $params ); } }