Bonjour, j’ai un problème avec le forum Discourse qui est https://community.over40connect.com/ et qui est connecté à mon site web https://over40connect.com/staging/ en utilisant le plugin wp discourse. J’ai créé une fonction pour ajouter un utilisateur au groupe Discourse lorsque le rôle de l’utilisateur change, mais cet utilisateur n’est pas ajouté au groupe Discourse. Voici le code :
function add_user_to_discourse_group_on_role_change($user_id, $role) {
// Vérifiez si le changement de rôle est pertinent pour votre cas
// Par exemple, vous pourriez vouloir exécuter ceci uniquement si le nouveau rôle est 's2member_level1'
//if ($role === 's2member_level1') {
// Définissez le point de terminaison de l'API Discourse
$discourse_endpoint = 'https://community.over40connect.com/groups/2/members.json';
// Configurez les données à envoyer
$data = array(
'usernames' => array('haseebdeveloper'), // Le nom d'utilisateur de l'utilisateur WordPress à ajouter
);
// Effectuez la requête API
$response = wp_remote_post($discourse_endpoint, array(
'method' => 'POST',
'timeout' => 45,
'redirection' => 5,
'httpversion' => '1.0',
'blocking' => true,
'headers' => array(
'Content-Type' => 'application/json',
'Api-Key' => 'REDACTED', // Ajoutez votre clé API Discourse ici
),
'body' => json_encode($data),
'cookies' => array(),
));
// Vérifiez les erreurs et gérez la réponse
if (!is_wp_error($response)) {
$response_code = wp_remote_retrieve_response_code($response);
if ($response_code === 200) {
$response_body = wp_remote_retrieve_body($response);
error_log('Discourse API Response: ' . $response_body); // Enregistrez la réponse
// Gérez la réponse au besoin
} else {
error_log('Discourse API Error: Unexpected response code - ' . $response_code); // Enregistrez l'erreur
// Gérez l'erreur
}
} else {
$error_message = $response->get_error_message();
error_log('Discourse API Error: ' . $error_message); // Enregistrez l'erreur
// Gérez l'erreur
}
//}
}



