Altro codice personalizzato sull'installazione di WP impedisce a WP Discourse di reindirizzare al forum

Stiamo utilizzando DiscourseConnect tramite WP Discourse e abbiamo seguito l’eccellente guida di configurazione qui su meta. Tuttavia, dopo che appare il login di WordPress, veniamo reindirizzati alla pagina del profilo di WordPress invece che a DIscourse. Siamo sulla versione di WordPress 6.0.1 e sulla versione di WP Discourse 2.4.5.

  1. Vai alla pagina del forum
  2. Fai clic su login
  3. Reindirizzato al sito WordPress /wp-login.php
  4. Inserisci le informazioni di login di WordPress
  5. Inviato a /wp-admin/profile.php
  6. Se digiti nuovamente l’URL del forum, verrai reindirizzato alla pagina di login.

Abbiamo controllato tre volte gli URL e i segreti, e sono tutti corretti. Gli utenti sono su WordPress e hanno verificato gli indirizzi email. Avete altre idee su dove dovremmo guardare?

Guardando nei log di WP Discourse o nei log dell’amministratore su Discourse non sembra indicare nulla di interessante, ma li ho inclusi qui:

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)

Output da Discourse /logs

Log SSO dettagliato: Processo SSO avviato

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 Mi Piace

@wesochuck Grazie per la spiegazione dettagliata.

Molto probabilmente si tratta di un conflitto con un altro plugin che stai utilizzando. Quando abbiamo riscontrato un comportamento simile in passato, era perché un altro plugin utilizzava un filtro come wp_redirect.

Prova a disattivare i tuoi plugin uno alla volta e a effettuare il login. Lo stesso vale se hai del codice personalizzato nei tuoi temi.

2 Mi Piace

Grazie per la risposta. Hai qualche consiglio aggiuntivo per rintracciare quali plugin o codice personalizzato potrebbero causare il problema? Abbiamo provato a disabilitare tutti i plugin e non abbiamo ancora avuto successo.

Sono sicuro che si tratta di qualche modifica non standard che è stata apportata, ma senza dover ricostruire l’intero sito da zero, abbiamo difficoltà a rintracciare cosa potrebbe essere.

2 Mi Piace

Se sei in grado di cercare il codice non principale di WordPress in esecuzione sul tuo sito, cerca le stringhe

  • wp_redirect (un filtro)
  • wp_login_url (un metodo)
  • parse_query (un’azione)

Verifica dove si trovano eventuali istanze di tali stringhe. In passato, ciò è stato causato da altri plugin che utilizzavano in modo errato uno di questi filtri, metodi o azioni.

Vorrei poterti aiutare di più, ma il problema qui non è causato dal plugin WP Discourse. È un problema con del codice personalizzato in un tema, plugin o qualche altro script nella tua installazione di WordPress.

Purtroppo non posso scoprirlo da qui, né il plugin WP Discourse può registrarlo in qualche modo. I filtri, i metodi e le azioni di WordPress possono essere utilizzati da chiunque e la “priorità” (cioè l’ordine in cui le cose vengono eseguite) può essere sovrascritta da chiunque.

3 Mi Piace

Questo è di grande aiuto e un buon punto di partenza. Grazie! Ti farò sapere una volta che avremo rintracciato di cosa si tratta, in modo che altri non debbano scavare così tanto.

1 Mi Piace

Abbiamo ristretto il campo a un plugin di X-CD, che è una piattaforma di gestione conferenze e membri. Li contatteremo per vedere come stanno apportando modifiche al processo di accesso che interrompono l’integrazione.

Grazie per il tuo aiuto @angus!

2 Mi Piace

La società di gestione dei membri è stata in grado di assistere con le seguenti modifiche che hanno risolto il problema:

Ho aggiunto il seguente codice al file functions.php del tuo tema attuale:

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 Mi Piace

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