Un autre code personnalisé sur l'installation WP empêche WP Discourse de rediriger vers le forum

Nous utilisons DiscourseConnect via WP Discourse et avons suivi l’excellent guide d’installation ici sur meta. Cependant, après l’apparition de la connexion WordPress, nous sommes redirigés vers la page de profil WordPress au lieu de DIscourse. Nous utilisons la version 6.0.1 de WordPress et la version 2.4.5 de WP Discourse.

  1. Aller sur la page du forum
  2. Cliquer sur connexion
  3. Redirection vers le site WordPress /wp-login.php
  4. Entrer les informations de connexion WordPress
  5. Redirection vers /wp-admin/profile.php
  6. Si vous tapez à nouveau l’URL du forum, vous êtes redirigé vers la page de connexion.

Nous avons vérifié trois fois les URL et les secrets, et tout est bon. Les utilisateurs sont dans WordPress et ont des adresses e-mail vérifiées. Avez-vous d’autres idées où nous devrions chercher?

L’examen des journaux WP Discourse ou des journaux d’administration sur Discourse ne semble rien indiquer d’intéressant, mais je les ai inclus ici :

wp-discourse-logs-metafile-2022-08-15-2022-08-29.txt (1,6 Ko)
wp-discourse-2022-08-29-1-log.txt (8,5 Ko)

Sortie de Discourse /logs

Verbose SSO log: Started SSO process

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 « J'aime »

@wesochuck Merci pour cette explication détaillée.

Il s’agit très probablement d’un conflit avec un autre plugin que vous utilisez. Lorsque nous avons rencontré un comportement similaire par le passé, c’était parce qu’un autre plugin utilisait un filtre tel que wp_redirect.

Veuillez parcourir votre liste de plugins, les désactiver un par un et essayer de vous connecter. De même, si vous avez du code personnalisé dans vos thèmes.

2 « J'aime »

Merci pour votre réponse. Avez-vous d’autres conseils pour retracer les plugins ou le code personnalisé qui pourraient causer le problème ? Nous avons essayé de désactiver tous les plugins et nous n’avons pas encore eu de succès.

Je suis sûr qu’il s’agit d’une modification non standard qui a été apportée, mais sans avoir à reconstruire entièrement le site à partir de zéro, nous avons du mal à retracer ce que cela pourrait être.

2 « J'aime »

Si vous êtes en mesure de rechercher le code WordPress non essentiel exécuté sur votre site, recherchez les chaînes de caractères suivantes :

  • wp_redirect (un filtre)
  • wp_login_url (une méthode)
  • parse_query (une action)

Vérifiez où se trouvent les occurrences de ces chaînes. Dans le passé, cela a été causé par d’autres plugins utilisant incorrectement l’un de ces filtres, méthodes ou actions.

J’aimerais pouvoir vous aider davantage, mais le problème ici n’est pas causé par le plugin WP Discourse. Il s’agit d’un problème avec du code personnalisé dans un thème, un plugin ou un autre script de votre installation WordPress.

Je ne peux malheureusement pas le déterminer d’ici, pas plus que le plugin WP Discourse ne peut l’enregistrer d’une manière ou d’une autre. Les filtres, méthodes et actions de WordPress peuvent être utilisés par n’importe quoi et la « priorité » (c’est-à-dire l’ordre dans lequel les choses sont exécutées) peut également être remplacée par n’importe quoi.

3 « J'aime »

C’est d’une grande aide et un bon point de départ. Merci ! Je vous tiendrai au courant une fois que nous aurons trouvé ce que c’est, afin que d’autres n’aient pas à creuser autant.

1 « J'aime »

Nous avons réduit cela à un plugin de X-CD, qui est une plateforme de gestion de conférences et de membres. Nous allons les contacter pour voir comment ils modifient le processus de connexion qui casse l’intégration.

Merci pour votre aide @angus !

2 « J'aime »

La société de gestion des membres a pu aider aux changements suivants qui ont résolu le problème :

J’ai ajouté le code suivant au fichier functions.php de votre thème actuel :

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 « J'aime »

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