Entschuldigung, falls dies schon einmal angesprochen wurde, ich habe gestern etwas Ähnliches gefunden, aber meine Suchbegriffe liefern heute nichts.
Szenario:
Ein Discourse-Server möchte ein Feld, sagen wir Geburtsdatum, als Pflichtfeld festlegen. Dies sollte nichts sein, was nach der Registrierung bearbeitet werden muss. Die Lösung besteht also darin, das benutzerdefinierte Feld so einzustellen, dass „Nach der Registrierung bearbeitbar“ deaktiviert und das Feld dann auf „Bei Registrierung erforderlich“ gesetzt wird. Dies funktioniert für Benutzer, die ein Konto über die übliche E-Mail-/Benutzernamen-Registrierung erstellen.
Problem 1:
Benutzer, die Konten über Dinge wie OAuth, DiscourseID, WP-Discourse usw. erstellen, sehen diese Felder nie. Damit diese Benutzer Zugriff auf diese Felder haben, müssen sie als „Für alle erforderlich“ markiert werden, was uns zu…
Problem 2:
„Für alle erforderlich“ erfordert aus offensichtlichen Gründen, dass ein Feld als „Nach der Registrierung bearbeitbar“ markiert ist. Dies erlaubt den Benutzern leider auch, das Feld jederzeit zu ändern … was wir überhaupt nicht wollen.
Angefragte Funktion:
Hinzufügen einer Logik, die es ermöglicht, dass bei „Für alle erforderlich“ nicht „Nach der Registrierung bearbeitbar“ aktiviert sein muss. Die Logik würde zuerst prüfen, ob das Feld leer oder „null“ ist, BEVOR geprüft wird, was bei „Nach der Registrierung bearbeitbar“ eingestellt ist. Sie würde die Bearbeitbarkeits-Checkbox für jedes leere/null-Pflichtfeld im Grunde ignorieren. Dies würde es ermöglichen, benutzerdefinierte Benutzerfelder einmalig zu bearbeiten, aber sobald ein Wert gespeichert ist, nicht mehr bearbeitbar zu sein.