이전에 질문이 있었을 수도 있어 죄송하지만, WP 통합(SSO)을 통해 추가된 사용자를 자동으로 특정 사용자 그룹에 추가하는 방법을 찾고 있습니다.
이를 위한 문서를 찾을 수 없어 조언을 구합니다 ![]()
감사합니다. 곧 다시 말씀드릴게요.
Alex
이전에 질문이 있었을 수도 있어 죄송하지만, WP 통합(SSO)을 통해 추가된 사용자를 자동으로 특정 사용자 그룹에 추가하는 방법을 찾고 있습니다.
이를 위한 문서를 찾을 수 없어 조언을 구합니다 ![]()
감사합니다. 곧 다시 말씀드릴게요.
Alex
WP Discourse 플러그인을 SSO에 사용하고 있다고 가정하겠습니다. 이 플러그인에는 Discourse 그룹 멤버십을 관리하는 데 사용할 수 있는 몇 가지 함수가 있습니다. 함수 사용법에 대한 자세한 내용은 Manage group membership in Discourse with WP Discourse SSO 를 확인해 주세요. 곧 해당 주제에 더 일반적인 예시를 추가하도록 업데이트할 예정입니다. 주제 내용 중 이해가 안 되는 부분이 있으면 알려주세요.
시몬, 네, 맞아요. WP Discourse 플러그인을 사용 중입니다. 이 토픽을 링크해 주셔서 감사합니다. 업데이트를 주시하겠지만, 혹시 도움이 된다면 구체적인 상황은 WooCommerce Memberships & Subscriptions를 사용하는 경우입니다. 다만, 어차피 사용자 등록을 유료 회원으로만 제한할 계획이므로, 새로운 멤버를 제가 everybody라고 부르는 그룹에 자동으로 추가할 수 있는 일반적인 예시만 있으면 충분합니다 (참고로, 여기서의 목표는 공지사항에서 멤버에게 메시지 보내기와 태그를 붙이는 것을 간편하게 하는 것입니다).
건강히 지내세요. 곧 다시 이야기합시다!
네, 제가 링크한 주제에서 빠져 있는 예시입니다. SSO 로그인 과정의 일부로 add_groups SSO 매개변수를 사용하여 사용자를 그룹에 추가할 수 있습니다. 기본적으로 WP DIscourse 플러그인은 SSO 페이로드에 이 매개변수를 보내지 않지만, 이 매개변수를 SSO 페이로드에 추가하는 데 사용할 수 있는 필터가 플러그인에 있습니다.
아래의 코드를 테마의 functions.php 파일이나 플러그인에 추가하면 작동해야 합니다. 이 방식으로 여러 그룹에 사용자를 추가할 수 있습니다. add_groups 매개변수는 쉼표로 구분된 그룹 이름 목록(쉼표 앞뒤에 공백 없이)을 허용합니다:
add_filter( 'wpdc_sso_params', 'wpdc_custom_sso_params' );
function wpdc_custom_sso_params( $params ) {
$params['add_groups'] = 'your_group_name';
return $params;
}
특정 사용자만 그룹에 추가하려는 경우, 다음과 같이 함수를 호출할 수 있습니다:
add_filter( 'wpdc_sso_params', 'wpdc_custom_sso_params', 10, 2 );
function wpdc_custom_sso_params( $params, $user ) {
if (/*사용자가 그룹에 추가되어야 하는지 확인하기 위한 조건을 여기에 추가 */) {
$params['add_groups'] = 'your_group_name';
}
return $params;
}
remove_groups SSO 매개변수를 사용하여 사용자를 그룹에서 제거할 수도 있습니다.
add_filter( 'wpdc_sso_params', 'wpdc_custom_sso_params' );
function wpdc_custom_sso_params( $params ) {
$params['remove_groups'] = 'your_group_name';
return $params;
}
또는
add_filter( 'wpdc_sso_params', 'wpdc_custom_sso_params', 10, 2 );
function wpdc_custom_sso_params( $params, $user ) {
if (/*사용자가 그룹에서 제거되어야 하는지 확인하기 위한 조건을 여기에 추가 */) {
$params['remove_groups'] = 'your_group_name';
}
return $params;
}
제가 링크한 add_user_to_discourse_group 함수를 사용하는 것과 비교할 때, 이 접근 방식의 주요 단점은 기존 사용자의 그룹 멤버십이 업데이트되기 전에 Discourse에서 로그아웃한 후 다시 로그인해야 한다는 것입니다.
훌륭하네요, 시몬 감사합니다! 궁금한 점이 하나 있는데, WooCommerce Memberships에 대한 예제도 포함시키는 것이 너무 어렵지 않을까요?
WooCommerce 구독이 더 이상 활성화되지 않으면 해당 사용자를 그룹에서 자동으로 제거하고, 구독이 활성화된 경우에만 그룹에 추가해 주면 정말 도움이 될 것 같습니다. 이렇게 하면 수동 검토가 필요 없고, 모든 과정(플랜 취소 및 다시 활성화 등)이 완전히 자동화됩니다. Discourse의 권한을 설정해 사용자가 활성 구독이 있고(해당 그룹에 속해 있을 때)에만 게시물을 열람하거나 게시할 수 있도록 제한할 수 있기 때문입니다…
개발자에게 이 기능을 추가하도록 전달할 수 있는 가이드라인을 주시면 정말 큰 도움이 될 것입니다.
건강하세요,
알렉스
WooCommerce 멤버십이 만료된 사용자를 Discourse 그룹에서 자동으로 제거하는 것이 가능해야 합니다. 이를 위해 제가 링크로 첨부한 remove_user_from_discourse_group 함수를 사용하시면 됩니다.
저는 WooCommerce Memberships & Subscriptions 플러그인에 대해 충분히 숙지하지 않아서, 멤버십이 생성되거나 취소될 때 어떤 액션 훅이 호출되는지 정확히 알지 못합니다. 아마도 Meta 커뮤니티의 다른 멤버들이 이 방법에 대해 알고 있을 수 있습니다. 또한, 이 문제를 도와줄 개발자를 찾기 위해 저희 Marketplace 카테고리에 주제를 생성해 보실 수도 있습니다.
좋아요, 시몬, 감사합니다. 이 부분을 살펴보겠습니다. 디스코urs(Discourse) 경험이 있는 개발자를 고용할 수 있는지 확인해 보겠습니다 (그리고 이 내용을 그 사람에게 전달하겠습니다). 그러고 보니 – 궁금한 점이 하나 있는데, 이런 유형의 작업에 대해 추천할 수 있는 신뢰할 수 있는 전문가 목록이 있으신가요?
WordPress/Discourse 통합을 수행하는 이 포럼의 회원 목록은 가지고 있지 않습니다. Meta 커뮤니티에서 WordPress/Discourse와 함께 작업하는 데 관심이 있는 개발자가 누구인지 알고 싶습니다.
WordPress 통합과 관련하여 커뮤니티 회원에 대한 부정적인 보고를 받은 적이 없습니다. 커뮤니티에서 활동 이력이 있는 개발자를 고용하신다면 안전할 것입니다. WP Discourse 플러그인 위에 통합을 구축하는 것과 관련된 질문에 대해서는 항상 기꺼이 답변해 드리겠습니다. 개발자분들은 막히는 부분이 있으시면 편하게 메시지를 보내 주시기 바랍니다.
좋아요, 언젠가 연락드릴 것 같네요! 이 모든 변경사항을 WP Discourse 플러그인의 작은 애드온/확장 기능으로 묶어볼 수도 있겠네요. 지켜봐 주세요. ![]()