Agregar automáticamente nuevos usuarios (de la integración de WP) a un grupo

Sí, ese es el ejemplo que falta en el tema al que enlazo. Puedes agregar usuarios a un grupo como parte del proceso de inicio de sesión SSO utilizando el parámetro SSO add_groups. Por defecto, el plugin WP Discourse no envía este parámetro con la carga útil SSO, pero el plugin tiene un filtro que se puede usar para agregar este parámetro a la carga útil SSO.

El siguiente código, añadido al archivo functions.php de tu tema o a un plugin, debería funcionar para ti. De esta manera, puedes agregar usuarios a múltiples grupos. El parámetro add_groups acepta una lista separada por comas de nombres de grupos (sin espacios antes ni después de las comas):

add_filter( 'wpdc_sso_params', 'wpdc_custom_sso_params' );
function wpdc_custom_sso_params( $params ) {
    $params['add_groups'] = 'nombre_de_tu_grupo'; 

    return $params;
}

Si solo quisieras agregar usuarios específicos al grupo, podrías llamar a la función de la siguiente manera:

add_filter( 'wpdc_sso_params', 'wpdc_custom_sso_params', 10, 2 );
function wpdc_custom_sso_params( $params, $user ) {
    if (/*agrega una condición aquí para verificar si el usuario debe ser agregado al grupo */) {        
        $params['add_groups'] = 'nombre_de_tu_grupo'; 
    }

    return $params;
}

También puedes eliminar usuarios de grupos con el parámetro SSO remove_groups.

add_filter( 'wpdc_sso_params', 'wpdc_custom_sso_params' );
function wpdc_custom_sso_params( $params ) {
    $params['remove_groups'] = 'nombre_de_tu_grupo'; 

    return $params;
}

o

add_filter( 'wpdc_sso_params', 'wpdc_custom_sso_params', 10, 2 );
function wpdc_custom_sso_params( $params, $user ) {
    if (/*agrega una condición aquí para verificar si el usuario debe ser eliminado del grupo */) {        
        $params['remove_groups'] = 'nombre_de_tu_grupo'; 
    }

    return $params;
}

La principal desventaja de este enfoque en comparación con usar la función add_user_to_discourse_group a la que enlazo es que requiere que los usuarios existentes se cierren de sesión y luego vuelvan a iniciar sesión en Discourse para que se actualicen sus membresías a los grupos.

5 Me gusta