Badges sind in unserer Community sehr beliebt, sie sind eine fantastische Ressource für Engagement.
Wir haben einige Premium-Kategorien auf unserem Discourse, die nur Abonnenten / zahlenden Mitgliedern zur Verfügung stehen, und wir möchten diese zahlenden Mitglieder mit einem goldenen Badge für ihr Profil belohnen, nennen wir ihn in diesem Beispiel „Extra Special Member“.
Die Anzahl der zahlenden Mitglieder ist eine geschäftskritische Zahl.
Diese Zahl würde an jeden weitergegeben, der den „Extra Special Member“-Badge besitzt, auch wenn er auf der Badge-Seite verborgen ist, könnten sie einfach auf ihren eigenen Badge klicken und dann alle anderen Mitglieder sehen, die diesen Badge ebenfalls besitzen.
Gibt es eine Möglichkeit, zu verhindern, dass Leute sehen, wer noch nur einen bestimmten Badge besitzt?
Ich habe ein paar Tests durchgeführt, bin mir aber nicht sicher, ob dies auch für unseren Anwendungsfall ideal ist.
Das Flair (aus unserer versteckten Gruppe) wird dem Benutzer zugewiesen, aber in dem Moment, in dem er einer unserer anderen Gruppen beitritt, wird sein Flair durch das der Gruppe ersetzt, der er gerade beigetreten ist.
In seinem Profil kann er dann nur noch ein Flair einer öffentlichen Gruppe auswählen, er verliert vollständig den Zugriff auf sein spezielles Mitglieds-Flair und kann es nicht wieder anwenden
Andere Gedanken gingen in die Richtung, allen Benutzern einen Titel zu geben, zum Beispiel „Gast“, aber das könnte von ihnen zu jedem der Ausweis-Titel geändert werden, die sie besitzen. Ich glaube nicht, dass ich verhindern kann, dass Leute ihren Titel ändern.
Ich suche nach einer Möglichkeit, Gästen und Mitgliedern zu ermöglichen, sich als solche zu identifizieren (d. h. durch einen Ausweis), ohne die Anzahl der Extra-Spezial-Mitglieder preiszugeben, die wir haben.
Gäbe es andere innovative Lösungen oder Workarounds?
Könnte ich etwas Cleveres mit „Benutzerfeldern“ machen?
Vielleicht ein Benutzerfeld namens „Status“ erstellen, es auf ihrem Profil sichtbar machen, aber nicht von ihnen bearbeitbar. Könnte ich dann dieses „Status“-Benutzerfeld automatisch per API-Aufruf aktualisieren? (wir lösen einen API-Aufruf aus, um sie zu einer Gruppe hinzuzufügen)
Das ist aber wahrscheinlich die Entscheidungsgrundlage:
Wie gehe ich das an?
Ich habe bereits einen API-Aufruf, der gemacht wird, wenn jemand Mitglied wird. Ich löse einen API-Aufruf aus, um ihn zu einer Gruppe hinzuzufügen. Könnte ich auch einen zweiten API-Aufruf auslösen, um dieses Benutzerfeld zu aktualisieren?
Jedes Mal, wenn Sie eine Aktion in Discourse ausführen, können Sie den Netzwerk-Tab Ihrer Browser-Entwicklertools überprüfen, um die durchgeführte Abfrage zu sehen.
Zum Beispiel speichere ich hier das Profil eines Benutzers: