Qual è il problema con la mia richiesta cURL?

C’è una funzione di utilità nel file Utilities per questo:

DiscourseUtilities::sync_sso_record( $sso_params );

Ieri ho pubblicato un esempio su come usarla: I cannot add user to the discouse forum from a wordpress website when user added in a membership - #10 by simon. La parte complicata è creare l’array per l’argomento sso_params. Quell’array deve contenere il campo external_id. È impostato sull’ID WordPress dell’utente:

	$sso_params = array(
		'external_id' => $user_id,
	);

Puoi includere qualsiasi campo da questo elenco nel payload: discourse/lib/discourse_connect_base.rb at 8f52fd1051e20fdff41321c5cff99fda05af86c1 · discourse/discourse · GitHub. Nota l’array BOOLS che viene mostrato appena sotto l’elenco ACCESSORS a cui ho collegato. Indica quali delle opzioni possibili sono booleani (vero/falso). Quando si effettuano richieste da WordPress, tutti i campi booleani devono essere impostati con le stringhe 'true' o 'false', non con i valori PHP true o false.

Per aggiornare l’avatar, imposta il campo avatar_url nell’array $sso_params e imposta anche il campo avatar_force_update su 'true'.

C’è un campo bio che può essere utilizzato per impostare la biografia.

Il plugin WP Discourse sta già impostando i campi bio e avatar_url. Ha anche un’impostazione “Force Avatar Update” nelle sue impostazioni SSO. Il problema potrebbe essere che queste impostazioni vengono aggiornate solo quando un utente accede a Discourse tramite il sito WordPress. La funzione sync_sso_record aggiorna i campi immediatamente, senza richiedere all’utente di accedere a Discourse.

Inoltre, se scopri che le biografie degli utenti non vengono impostate su Discourse, potrebbe essere che non vengano impostate sul tuo sito WordPress dove il plugin si aspetta che siano: wp-discourse/lib/plugin-utilities.php at 99325e15190f3a705284dbf582f1c4b2c0b21492 · discourse/wp-discourse · GitHub. Se Woocommerce ha un campo diverso per le biografie, potresti accedere a quel campo e utilizzarlo in una chiamata a sync_sso_record.

3 Mi Piace