¿Cuál es el problema con mi solicitud cURL?

Hay una función de ayuda en el archivo Utilities para esto:

DiscourseUtilities::sync_sso_record( $sso_params );

Ayer publiqué un ejemplo de cómo usarla: I cannot add user to the discouse forum from a wordpress website when user added in a membership - #10 by simon. La parte complicada es crear la matriz para el argumento sso_params. Esa matriz debe contener el campo external_id. Se establece en el ID de WordPress del usuario:

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

Puedes incluir cualquier campo de esta lista en la carga útil: discourse/lib/discourse_connect_base.rb at 8f52fd1051e20fdff41321c5cff99fda05af86c1 · discourse/discourse · GitHub. Ten en cuenta la matriz BOOLS que se muestra justo debajo de la lista ACCESSORS que enlacé. Indica cuáles de las opciones posibles son booleans (verdadero/falso). Al realizar solicitudes desde WordPress, los campos booleanos deben establecerse con las cadenas 'true' o 'false', no con los valores true o false de PHP.

Para actualizar el avatar, establece el campo avatar_url en la matriz $sso_params y también establece el campo avatar_force_update en 'true'.

Hay un campo bio que se puede usar para establecer la biografía.

El plugin WP Discourse ya está estableciendo los campos bio y avatar_url. También tiene una configuración de “Forzar actualización de avatar” en su configuración de SSO. El problema podría ser que estas configuraciones solo se actualizan cuando un usuario inicia sesión en Discourse a través del sitio de WordPress. La función sync_sso_record actualiza los campos inmediatamente, sin requerir que el usuario inicie sesión en Discourse.

Además, si descubres que las biografías de los usuarios no se están estableciendo en Discourse, podría ser que no se estén estableciendo en tu sitio de WordPress donde el plugin espera que estén: wp-discourse/lib/plugin-utilities.php at 99325e15190f3a705284dbf582f1c4b2c0b21492 · discourse/wp-discourse · GitHub. Si Woocommerce tiene un campo diferente para las biografías, podrías acceder a ese campo y usarlo en una llamada a sync_sso_record.

3 Me gusta