Campo personalizzato in discourseconnect

Sto cercando di passare un campo utente personalizzato durante la registrazione di un utente.

Ecco l’array che sto usando per la registrazione…

$parameters =  array(
            'nonce'       => $nonce,
            'external_id' => 'jay',
            'email'       => 'bugsbunny@betaclub.org',
            'username'    => 'bugsbunny@betaclub.org',
            'name'        => 'Bugs Bunny',
            'add_groups'  => 'state_sponsors',
            'custom.experience' => 'Pro',
           'custom.state' => 'FL',
        );

Il nome del campo è Experience, è un campo multiselect e una delle opzioni è Pro.
Non lo vedo arrivare? Ho anche un campo personalizzato chiamato State, che è un campo di testo. Come posso risolvere questo problema? Non vedo nulla riguardo al campo personalizzato nei log con la registrazione di Discourse Connect attivata.

Se hai creato quei campi tramite Admin → Personalizza → Campi utente, devi passarli come

$parameters =  array(
            'nonce'       => $nonce,
            'external_id' => 'jay',
            'email'       => 'bugsbunny@betaclub.org',
            'username'    => 'bugsbunny@betaclub.org',
            'name'        => 'Bugs Bunny',
            'add_groups'  => 'state_sponsors',
            'custom.user_field_1' => 'Pro',
            'custom.user_field_2' => 'FL',
        );

I nomi dei campi non sono il nome che hai impostato nell’interfaccia utente, ma campi numerati chiamati user_field_NUMERO.

5 Mi Piace

Ha funzionato, grazie mille.

Sai come popolare un campo multiseleziona con più valori?

‘custom.user_field_1’ => ‘Pro, Newbie’,

??

1 Mi Piace

Curiosamente stavo esaminando la questione la scorsa settimana e, a quanto pare, al momento non supportiamo i campi di selezione multipla tramite il payload di DiscourseConnect.

Ho fatto dei test e popolerà un campo multi-select se viene inviato un solo valore.
Non funziona - ‘custom.user_field_1’ => ‘Pro, Newbie’,
Funziona - ‘custom.user_field_1’ => ‘Pro’,

Questo va bene per le nostre esigenze. Se quel campo è modificabile dall’utente finale, può aggiungere altre selezioni secondo necessità.

@Falco Grazie mille per l’aiuto

1 Mi Piace

La prossima domanda riguarda add_groups. Ho un elenco delimitato da virgole, ma non sta aggiungendo l’utente ai gruppi.

$parameters =  array(
            'nonce'               => $nonce,
            'external_id'         => $sponsor['spid'],
            'email'               => $sponsor['email'],
            'username'            => $sponsor['email'],
            'name'                => $fullname,
            'add_groups'          => 'state_sponsor, status_sponsor, elect_sponsor',
            'location'            => $location,
            'custom.user_field_1' => $experience, //experience - Newbie, Less than 5, Pro, Old Timer
            'custom.user_field_2' => $club['name'].' ('.$sponsor['new_id'].')',  //school name with clubid
            'custom.user_field_4' => $division, //division
        );

Il payload segnalato è:

add_groups=state_sponsor%2C+status_sponsor%2C+elect_sponsor
email=xxxx%40spart1.org
external_id=xxxx
name=Angela+Moore
nonce=xxxx
username=xxxx%40spart1.org
location=Landrum%2C+SC
custom.user_field_1=Pro
custom.user_field_2=Landrum+Middle+School+%28JSC0081%29
custom.user_field_4=Junior

Nei log di discourseconnect vedo:

add_groups: state_sponsor, status_sponsor, elect_sponsor
admin: 
moderator: 
avatar_force_update: 
avatar_url: 
bio: 
card_background_url: 
email: xxxx@spart1.org
external_id: xxxxx
groups: 
locale: 
locale_force_update: 
logout: 
name: Angela Moore
nonce: xxxx
profile_background_url: 
remove_groups: 
require_activation: 
return_sso_url: 
suppress_welcome_message: 
title: 
username: xxxx@spart1.org
website: 
location: Landrum, SC

Che sembra corretto.
Vorrei aggiungere questo utente ai gruppi ‘state_sponsor, status_sponsor, elect_sponsor’.

Devi rimuovere lo spazio tra le virgole.

1 Mi Piace

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.