sections = array( 'general' => array( 'title' => __( 'General', 'ai-stock-predictor' ), 'callback' => array( $this, 'render_general_section' ), ), 'prediction' => array( 'title' => __( 'Prediction', 'ai-stock-predictor' ), 'callback' => array( $this, 'render_prediction_section' ), ), 'notification' => array( 'title' => __( 'Notification', 'ai-stock-predictor' ), 'callback' => array( $this, 'render_notification_section' ), ), 'api' => array( 'title' => __( 'API', 'ai-stock-predictor' ), 'callback' => array( $this, 'render_api_section' ), ), ); } /** * Render settings page. * * @since 1.0.0 * @return void */ public function render() { $current_section = isset( $_GET['section'] ) ? sanitize_text_field( wp_unslash( $_GET['section'] ) ) : 'general'; // phpcs:ignore WordPress.Security.NonceVerification.Recommended require_once AISTPR_TEMPLATE_PATH_MAIN . 'admin/settings/header.php'; if ( isset( $this->sections[ $current_section ] ) && is_callable( $this->sections[ $current_section ]['callback'] ) ) { call_user_func( $this->sections[ $current_section ]['callback'] ); } require_once AISTPR_TEMPLATE_PATH_MAIN . 'admin/settings/footer.php'; } /** * Render general settings section. * * @since 1.0.0 * @return void */ public function render_general_section() { require_once AISTPR_TEMPLATE_PATH_MAIN . 'admin/settings/general.php'; } /** * Render prediction settings section. * * @since 1.0.0 * @return void */ public function render_prediction_section() { require_once AISTPR_TEMPLATE_PATH_MAIN . 'admin/settings/prediction.php'; } /** * Render the notification settings section. * * @since 1.0.0 * @return void */ public function render_notification_section() { require_once AISTPR_TEMPLATE_PATH_MAIN . 'admin/settings/notification.php'; } /** * Render the api settings section. * * @since 1.0.0 * @return void */ public function render_api_section() { require_once AISTPR_TEMPLATE_PATH_MAIN . 'admin/settings/api.php'; } }