Otro código personalizado en la instalación de WP está impidiendo que WP Discourse redirija de nuevo al foro

Estamos usando DiscourseConnect a través de WP Discourse y hemos seguido la excelente guía de configuración aquí en meta. Sin embargo, después de que aparece el inicio de sesión de WordPress, somos redirigidos a la página de perfil de WordPress en lugar de a Discourse. Estamos en la versión 6.0.1 de WordPress y en la versión 2.4.5 de WP Discourse.

  1. Ir a la página del foro
  2. Hacer clic en iniciar sesión
  3. Ser redirigido al sitio de WordPress /wp-login.php
  4. Ingresar la información de inicio de sesión de WordPress
  5. Ser enviado a /wp-admin/profile.php
  6. Si vuelves a escribir la URL del foro, serás redirigido a la página de inicio de sesión.

Hemos revisado las URL y los secretos tres veces, y todos están bien. Los usuarios están en WordPress y tienen direcciones de correo electrónico verificadas. ¿Alguna otra idea de dónde deberíamos buscar?

Revisar los registros de WP Discourse o los registros de administración en Discourse no parece indicar nada interesante, pero los he incluido aquí:

wp-discourse-logs-metafile-2022-08-15-2022-08-29.txt (1.6 KB)
wp-discourse-2022-08-29-1-log.txt (8.5 KB)

Salida de Discourse /logs

Registro SSO detallado: Proceso SSO iniciado

add_groups: 
admin: 
moderator: 
avatar_force_update: 
avatar_url: 
bio: 
card_background_url: 
confirmed_2fa: 
email: 
external_id: 
groups: 
locale: 
locale_force_update: 
location: 
logout: 
name: 
no_2fa_methods: 
nonce: xxxxxxxxxxxxxxx
profile_background_url: 
remove_groups: 
require_2fa: 
require_activation: 
return_sso_url: https://forum.innovativeusers.org/session/sso_login
suppress_welcome_message: 
title: 
username: 
website:
2 Me gusta

@wesochuck Gracias por explicar en detalle.

Lo más probable es que sea un conflicto con otro plugin que estés usando. Cuando hemos visto un comportamiento similar en el pasado, se debió a que otro plugin estaba utilizando un filtro como wp_redirect.

Por favor, revisa tu lista de plugins, desactívalos uno por uno e intenta iniciar sesión. Igualmente, si tienes algún código personalizado en tus temas.

2 Me gusta

Gracias por la respuesta. ¿Algún consejo adicional para rastrear qué complementos o código personalizado podrían estar causando el problema? Hemos intentado deshabilitar todos los complementos y aún no hemos tenido suerte.

Estoy seguro de que es algún ajuste no estándar que se hizo, pero sin tener que reconstruir todo el sitio desde cero, nos resulta difícil rastrear qué podría ser.

2 Me gusta

Si puedes buscar el código de WordPress no principal que se ejecuta en tu sitio, busca las cadenas:

  • wp_redirect (un filtro)
  • wp_login_url (un método)
  • parse_query (una acción)

Comprueba dónde se encuentran las instancias de esas cadenas. En el pasado, esto ha sido causado por otros plugins que utilizan incorrectamente uno de esos filtros, métodos o acciones.

Ojalá pudiera ayudarte más, pero el problema aquí no es causado por el plugin WP Discourse. Es un problema con algún código personalizado en un tema, plugin o algún otro script en tu instalación de WordPress.

Desafortunadamente, no puedo resolver eso desde aquí, ni el plugin WP Discourse puede registrarlo de alguna manera. Los filtros, métodos y acciones de WordPress pueden ser utilizados por cualquier cosa y la “prioridad” (es decir, el orden en que se ejecutan las cosas) puede ser anulada por cualquier cosa también.

3 Me gusta

Esto es de gran ayuda y un buen punto de partida. ¡Gracias! Informaré una vez que localicemos qué es, para que otros no tengan que investigar tanto.

1 me gusta

Lo redujimos a un plugin de X-CD, que es una plataforma de gestión de conferencias y miembros. Nos pondremos en contacto con ellos para ver cómo están realizando cambios en el proceso de inicio de sesión que rompen la integración.

¡Gracias por tu ayuda @angus!

2 Me gusta

La empresa de gestión de miembros pudo ayudar con los siguientes cambios que resolvieron el problema:

Añadí el siguiente código al archivo functions.php de tu tema actual:

function example_allow_extra_redirect( $hosts ) {
$hosts = '[forum.example.org](http://forum.example.org/)';
return $hosts;
}
add_filter( 'allowed_redirect_hosts', 'example_allow_extra_redirect' );
1 me gusta

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.