Puoi aggiornare i Campi Utente che hai creato su Discourse tramite SSO. Non è necessario alcun plugin. Per farlo, devi conoscere il nome che Discourse utilizza nel database per il campo personalizzato. Il metodo più semplice che conosco è accedere alla pagina Admin / Personalizza / Campi Utente e poi caricare la versione JSON della pagina. Ad esempio https://forum.example.com/admin/customize/user_fields.json
I dati JSON della pagina saranno simili a questo:
{
user_fields: [
{
id: 12,
name: "News Letter",
description: "Inviami una newsletter",
field_type: "confirm",
editable: false,
required: true,
show_on_profile: false,
show_on_user_card: false,
position: 3
},
{
id: 13,
name: "Company",
description: "Dove lavori?",
field_type: "text",
editable: true,
required: false,
show_on_profile: true,
show_on_user_card: true,
position: 4
}
]
}
I campi utente personalizzati sono denominati user_field_<field_id>. Ciò significa che il nome del campo “News Letter” del mio esempio JSON è user_field_12, mentre il nome del campo “Company” è user_field_13. Utilizza queste informazioni per aggiornare il payload SSO.
Ad esempio, con il filtro wpdc_sso_params che ho menzionato nel mio post precedente, il seguente codice aggiunto al file functions.php del tuo tema imposterà il campo “Company” di tutti gli utenti su “acme” quando accedono tramite SSO. Sostituisci my_namespace nel nome della funzione con uno spazio dei nomi unico per il tuo sito:
add_filter( 'wpdc_sso_params', 'my_namespace_set_discourse_custom_field', 10, 2 );
function my_namespace_set_discourse_custom_field( $sso_params, $user ) {
$sso_params['custom.user_field_13'] = 'acme';
return $sso_params;
}
Per aggiungere campi basati sui dati degli utenti WordPress del tuo sito, utilizza il parametro $user della funzione per ottenere i dettagli sui tuoi utenti.