WP 페이지에 Discourse 가입을 임베드하고, 새 사용자를 특정 그룹에 자동으로 추가하는 방법?

특정 사용자 그룹이 내 Discourse에 가입할 수 있도록 하고 싶습니다. 선호하는 방식은 다음과 같습니다:

  1. 가입을 위해 WP 또는 Discourse 페이지를 방문하여 사용자 이름, 이메일, 비밀번호를 입력합니다 (필요한 경우; 자동 생성도 가능)
  2. 사용자가 Discourse에 추가되고, 동시에 특정 그룹에도 추가됩니다

이것이 Memberful을 제외하고도 가능한가요?

WordPress 사이트를 Discourse 사이트의 단일 로그인(SSO) 제공자로 사용하여 이 작업을 수행할 수 있습니다. WP Discourse 플러그인에는 이를 설정하는 데 사용할 수 있는 SSO Provider 옵션이 있습니다.

복잡한 부분은 사용자를 Discourse 그룹에 추가하는 것입니다. WP Discourse 플러그인을 사용하여 이를 수행하려면 WordPress 사이트에 일부 코드를 추가해야 합니다. 사용자를 그룹에 추가하는 방법에 대한 코드 예제는 이 포럼에서 확인할 수 있으며, 해당 예제를 안내해 드릴 수 있습니다. 그러나 WordPress 사용자가 어떤 Discourse 그룹에 추가되어야 하는지를 결정하는 방법이 필요합니다. 이를 달성하는 한 가지 방법은 WordPress 사이트에 멤버십 플러그인을 추가한 후, 사용자의 WordPress 멤버십 등급에 따라 Discourse 그룹에 추가하는 것입니다.

사용자가 가입하고 Discourse 그룹에 추가되도록 하되, 커스텀 코드를 추가하지 않으려면 Discourse Patreon 플러그인을 살펴볼 수 있습니다. Memberful도 좋은 옵션입니다.

아래와 같은 코드가 작동합니다.

if ( class_exists( '\WPDiscourse\Discourse\Discourse' ) ) {
    add_filter( 'wpdc_sso_params', 'wpdc_custom_sso_params', 10, 2 );
}
function wpdc_custom_sso_params( $params, $user ) {
    $groups = get_group_list_for_current_user();
    if ( strlen($groups) > 0 ) {
        $params['add_groups'] = $groups;
    }
    return $params;
}

get_group_list_for_current_user 함수는 독자의 연습으로 남겨둡니다. :wink:

이로 인해 해결되지 않고 예산이 있다면 Marketplace 채널에서 질문하거나 저에게 연락할 수 있습니다.