안녕하세요. https://community.over40connect.com/ 디스커스 포럼에서 문제가 발생했습니다. 이 포럼은 wp discourse 플러그인을 사용하여 제 웹사이트 https://over40connect.com/staging/ 와 연결되어 있습니다. 사용자 역할이 변경될 때 해당 사용자를 디스커스 그룹에 추가하는 함수를 작성했는데, 사용자가 디스커스 그룹에 추가되지 않습니다. 아래는 해당 코드입니다.
function add_user_to_discourse_group_on_role_change($user_id, $role) {
// 역할 변경이 현재 상황에 적합한지 확인합니다.
// 예를 들어, 새로운 역할이 's2member_level1'일 때만 실행하도록 설정할 수 있습니다.
//if ($role === 's2member_level1') {
// 디스커스 API 엔드포인트 설정
$discourse_endpoint = 'https://community.over40connect.com/groups/2/members.json';
// 전송할 데이터 설정
$data = array(
'usernames' => array('haseebdeveloper'), // 추가할 WordPress 사용자의 사용자 이름
);
// 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', // 여기에는 디스커스 API 키를 추가하세요
),
'body' => json_encode($data),
'cookies' => array(),
));
// 오류 확인 및 응답 처리
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); // 응답 기록
// 필요에 따라 응답을 처리합니다
} else {
error_log('Discourse API Error: Unexpected response code - ' . $response_code); // 오류 기록
// 오류를 처리합니다
}
} else {
$error_message = $response->get_error_message();
error_log('Discourse API Error: ' . $error_message); // 오류 기록
// 오류를 처리합니다
}
//}
}



