option_key, $this->get_defaults() ); } public function update_settings( array $settings ): bool { $merged = wp_parse_args( $settings, $this->get_settings() ); return update_option( $this->option_key, $merged ); } public function get_setting( string $key, $default = null ) { $settings = $this->get_settings(); return $settings[ $key ] ?? $default; } abstract protected function get_defaults(): array; } }