array( $this, 'sanitize_provider' ), 'default' => 'anthropic', ) ); foreach ( array( 'cgard_ai_anthropic_api_key', 'cgard_ai_openai_api_key' ) as $option ) { register_setting( 'cgard_ai_settings', $option, array( 'sanitize_callback' => 'sanitize_text_field', 'default' => '', ) ); } register_setting( 'cgard_ai_settings', 'cgard_ai_anthropic_model', array( 'sanitize_callback' => 'sanitize_text_field', 'default' => 'claude-3-5-haiku-latest', ) ); register_setting( 'cgard_ai_settings', 'cgard_ai_openai_model', array( 'sanitize_callback' => 'sanitize_text_field', 'default' => 'gpt-4o-mini', ) ); } public function sanitize_provider( $value ) { return in_array( $value, CGARD_AI_Client::PROVIDERS, true ) ? $value : 'anthropic'; } public function render_page() { if ( ! current_user_can( 'manage_options' ) ) { return; } $active_provider = CGARD_AI_Client::get_active_provider_key(); $anthropic_key_locked = defined( 'CGARD_AI_ANTHROPIC_API_KEY' ) && CGARD_AI_ANTHROPIC_API_KEY; $openai_key_locked = defined( 'CGARD_AI_OPENAI_API_KEY' ) && CGARD_AI_OPENAI_API_KEY; require CGARD_PLUGIN_DIR . 'admin/views/settings-page.php'; } }