La documentación para configurar el plugin en una red multisitio no está actualizada. Esta es una buena oportunidad para organizarlo y actualizar la guía Instalación y configuración del plugin WP Discourse.
Para utilizar la funcionalidad de cliente SSO en una red multisitio, el plugin debe configurarse a nivel de red. Esto se hace haciendo clic en el enlace de Discourse en tu Panel de Red:
En la página de red de Discourse, selecciona la opción Habilitar configuración multisitio. Luego, ingresa tu URL de Discourse, tu clave API y tu nombre de usuario para publicación en la sección Configuración de conexión. Desplázate hasta el final de la página y haz clic en el botón Guardar opciones. Deberías ver un mensaje que dice “¡Estás conectado a Discourse!” en la parte superior de la página.
Para usar Discourse como proveedor de SSO para los sitios de tu red multisitio, desplázate hasta el final de la página de red de Discourse y selecciona la opción Habilitar cliente SSO. También agrega una clave a la configuración Clave secreta SSO. Guarda tus opciones nuevamente.
Ahora ve a tu sitio de Discourse y copia la clave secreta en la configuración del sitio secretos del proveedor sso de Discourse. Ingresa el símbolo * como el dominio del proveedor de SSO. Cuando se haya guardado esa configuración, debería verse similar a esto:
Ahora selecciona la opción habilitar proveedor sso en Discourse.
Con estas configuraciones en su lugar, ir a la pestaña SSO / Cliente SSO de WP Discourse para cualquier sitio de tu red debería llevarte a una página que se ve similar a esta:
Para una prueba rápida, selecciona las opciones Agregar enlace de inicio de sesión y Sincronizar usuarios existentes por correo electrónico. Luego, cierra la sesión de tu sitio de WordPress. Deberías poder volver a iniciar sesión haciendo clic en el enlace “Iniciar sesión con Discourse” que se mostrará en tu página wp-login.php.
Si no estás utilizando la página de inicio de sesión predeterminada de WordPress, intenta copiar el shortcode [discourse_sso_client] en una publicación de tu sitio. Ese shortcode solo muestra marcado en la página para usuarios que no han iniciado sesión. También puedes crear un enlace de inicio de sesión construyendo un enlace en este formato:
<a href="https://example.com/?discourse_sso=1&redirect_to=https://example.comt/">Iniciar sesión con Discourse</a>
Esto iniciará sesión al usuario en tu sitio con Discourse y luego lo redirigirá de nuevo a la página de WordPress que hayas configurado como valor del parámetro redirect_to.
Según tu depuración, parece que la opción Habilitar cliente SSO no estaba activada en tu página de red de Discourse. ¿Puedes asegurarte de que esa opción esté habilitada y avisarme si aún tienes problemas con ello?
El código que encontraste que impedía que el cliente SSO funcionara para ti es correcto, pero es una condición mal escrita:
if ( empty( $this->options['sso-client-enabled'] ) || 1 !== intval( $this->options['sso-client-enabled'] ) )
Debería simplificarse a if ( empty( $this->options['sso-client-enabled'] ) ). Ese es el patrón que se utiliza en todas partes del plugin.