Quel est le problème avec ma requête cURL ?

Il existe une fonction d’aide dans le fichier Utilities pour cela :

DiscourseUtilities::sync_sso_record( $sso_params );

Hier, j’ai posté un exemple sur la façon de l’utiliser : I cannot add user to the discouse forum from a wordpress website when user added in a membership - #10 by simon. La partie délicate est de créer le tableau pour l’argument sso_params. Ce tableau doit contenir le champ external_id. Il est défini sur l’ID WordPress de l’utilisateur :

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

Vous pouvez inclure n’importe quel champ de cette liste dans la charge utile : discourse/lib/discourse_connect_base.rb at 8f52fd1051e20fdff41321c5cff99fda05af86c1 · discourse/discourse · GitHub. Notez le tableau BOOLS qui est affiché juste sous la liste ACCESSORS que j’ai liée. Il indique quelles options possibles sont des booléens (vrai/faux). Lors de la création de requêtes depuis WordPress, tous les champs booléens doivent être définis avec les chaînes 'true' ou 'false', et non avec les valeurs PHP true ou false.

Pour mettre à jour l’avatar, définissez le champ avatar_url dans le tableau $sso_params et définissez également le champ avatar_force_update sur 'true'.

Il existe un champ bio qui peut être utilisé pour définir la biographie.

Le plugin WP Discourse définit déjà les champs bio et avatar_url. Il dispose également d’un paramètre « Forcer la mise à jour de l’avatar » dans ses paramètres SSO. Le problème pourrait être que ces paramètres ne sont mis à jour que lorsqu’un utilisateur se connecte à Discourse via le site WordPress. La fonction sync_sso_record met à jour les champs immédiatement, sans obliger l’utilisateur à se connecter à Discourse.

De plus, si vous constatez que les biographies des utilisateurs ne sont pas définies sur Discourse, il se pourrait qu’elles ne soient pas définies sur votre site WordPress où le plugin s’attend à les trouver : wp-discourse/lib/plugin-utilities.php at 99325e15190f3a705284dbf582f1c4b2c0b21492 · discourse/wp-discourse · GitHub. Si Woocommerce a un champ différent pour les biographies, vous pourriez accéder à ce champ et l’utiliser dans un appel à sync_sso_record.

3 « J'aime »