Il plugin Discourse WP blocca l'installazione di Paypal nel plugin Easy Digital Downloads WP

Abbiamo scoperto che il plugin Discourse WP causa un problema di installazione con la connessione API/Webhook per una nuova versione di PayPal nel plugin Easy Digital Downloads WP (EDD).

In altre parole, quando il plugin Discourse WP è attivo: l’API/Webhook PayPal di EDD non si connette, ma quando Discourse è disattivato: l’API/Webhook PayPal di EDD si connette perfettamente, anche se riattivando Discourse la connessione dell’API/Webhook PayPal di EDD viene nuovamente interrotta.

Tutti i plugin sono aggiornati all’ultima versione.

Di seguito le informazioni sul plugin EDD a scopo di riferimento:
https://docs.easydigitaldownloads.com/article/2410-paypal Easy Digital Downloads – eCommerce Payments and Subscriptions made easy – WordPress plugin | WordPress.org

Qualsiasi aiuto sarebbe apprezzato, grazie!

Grazie per la segnalazione. Testerò la loro compatibilità più tardi questa settimana e ti farò sapere dove risiede il problema.

Perfetto, Angus! Se hai domande, fammi sapere!

Scusa il disturbo @angus, ma volevo solo controllare se hai avuto modo di esaminare questo problema.

Sono riuscito a riprodurre il problema. Capirne la causa richiederà più tempo. EDD dispone di un sistema di registrazione interno, ma non sta registrando nulla per questa operazione. Continuerò a lavorare su questo la prossima settimana. Sto proprio scrivendo i log per la gestione dei webhook di WP Discourse, quindi questo lavoro si inserisce in quel contesto; tuttavia, non è semplice, quindi una risoluzione potrebbe richiedere ancora alcune settimane.

Il modo in cui i due plugin utilizzano i webhook è in conflitto in qualche modo. Tieni presente che la causa del conflitto tra questi due plugin potrebbe provenire ugualmente da entrambi. In effetti, considerando che è un’operazione in EDD che sta fallendo, il luogo logico per eseguire il debug è effettivamente all’interno del plugin EDD stesso, da parte dei creatori di quel plugin. Dovresti anche contattarli se non l’hai già fatto.

Ciao @angus, ho alcune notizie da EDD qui sotto:


Ho individuato il problema nel plugin WP Discourse e spero tu possa inoltrarlo agli sviluppatori.

Il problema si trova in questo file:

lib/discourse-comment.php

Nello specifico in questo filtro:

add_filter( ‘wp_kses_allowed_html’, array( $this, ‘extend_allowed_html’ ), 10, 2 );

Per impostazione predefinita, l’array che stanno filtrando contiene:

array (
‘align’ => true,
‘dir’ => true,
‘lang’ => true,
‘xml:lang’ => true,
‘aria-describedby’ => true,
‘aria-details’ => true,
‘aria-label’ => true,
‘aria-labelledby’ => true,
‘aria-hidden’ => true,
‘class’ => true,
‘id’ => true,
‘style’ => true,
‘title’ => true,
‘role’ => true,
‘data-*’ => true,
)

Particolarmente degno di nota è quest’ultimo: ‘data-*’

Il plugin WP Discourse sta filtrando questo valore per aggiungere il proprio attributo data-youtube-id, ma nel farlo, sta involontariamente rimuovendo l’attributo data-*. Ciò significa che tutti gli altri attributi data non funzionano più sotto wp_kses_post(). Questo sta causando un problema con il nostro codice PayPal.

Per essere chiari: WP Discourse non ti sta effettivamente disconnettendo da PayPal; sta solo interrompendo il codice che verifica se sei connesso. Questo perché utilizziamo un attributo data nel nostro markup e il filtro in WP Discourse lo sta rimuovendo.

La mia raccomandazione per gli sviluppatori sarebbe quella di estendere l’array $allowedposttags[‘div’] invece di sovrascriverlo.

Invece di questo:
$allowedposttags[‘div’] = array(
‘class’ => true,
‘id’ => true,
‘style’ => true,
‘title’ => true,
‘role’ => true,
‘data-youtube-id’ => array(),
);

Possono fare così:

$allowedposttags[‘div’][‘data-youtube-id’] = array();

Questo risolve il problema e dovrebbe anche garantire che la loro funzionalità rimanga invariata.

1 Mi Piace

Fantastico. Grazie per aver facilitato la cosa. Preparerò una correzione entro la fine della settimana. Tuttavia, potrebbe non essere unita al progetto fino alla prossima settimana.

Certo Angus, e grazie per la tua attenzione a questo problema! Tienimi aggiornato.

Questa PR affronta il problema sottostante. Sarà unita entro la prossima settimana circa.

2 Mi Piace

Grande Angus! Ti scrivo solo per un aggiornamento, dato che avevi detto che sarebbe stato unito tra una settimana circa. Ci sono novità?

Non ho la possibilità di unire le PR, ma Simon ci penserà quando potrà. Una volta unita, il tuo problema sarà risolto.

1 Mi Piace

Grazie Angus.

@simon Hai idea di quando questo PR verrà unito?

Mi scuso per il ritardo. Dovrei essere in grado di unirmi più tardi oggi. Risponderò qui quando sarà stato fatto.

@JMJ La PR è ora unita e WP Discourse 2.3.4 è stata pubblicata su wordpress.org. Ho confermato che EDD funziona come previsto in produzione su WP Discourse 2.3.4.