您好,我在 Discourse 论坛 https://community.over40connect.com/ 上遇到了一个问题,该论坛通过 wp discourse 插件与我的网站 https://over40connect.com/staging/ 连接。我创建了一个函数,在用户角色更改时将用户添加到 Discourse 组,但该用户未被添加到 Discourse 组。这是代码:
function add_user_to_discourse_group_on_role_change($user_id, $role) {
// 检查角色更改是否与您的情况相关
// 例如,您可能只想在新角色为 's2member_level1' 时运行此代码
//if ($role === 's2member_level1') {
// 设置 Discourse 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', // 在此处添加您的 Discourse 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); // 记录错误
// 处理错误
}
//}
}



