Discourse WP-Plugin blockiert Paypal-Installation im Easy Digital Downloads WP-Plugin

Wir haben festgestellt, dass das Discourse WP-Plugin ein Installationsproblem mit der API/Webhook-Verbindung für eine neue Version von PayPal im Easy Digital Downloads WP-Plugin (EDD) verursacht.

Mit anderen Worten: Wenn das Discourse WP-Plugin aktiviert ist, kann sich die EDD-PayPal-API/Webhook nicht verbinden. Wird Discourse jedoch deaktiviert, funktioniert die Verbindung der EDD-PayPal-API/Webhook einwandfrei. Sobald Discourse wieder aktiviert wird, wird die Verbindung zur EDD-PayPal-API/Webhook erneut getrennt.

Alle Plugins sind auf dem neuesten Stand.

Hier sind die Informationen zum EDD-Plugin zur Referenz:
https://docs.easydigitaldownloads.com/article/2410-paypal Easy Digital Downloads – eCommerce Payments and Subscriptions made easy – WordPress plugin | WordPress.org

Jede Hilfe wäre willkommen. Vielen Dank!

Danke für den Bericht. Ich werde ihre Kompatibilität später diese Woche testen und dir mitteilen, wo das Problem liegt.

Alles klar, Angus! Wenn du Fragen hast, lass es mich bitte wissen!

Entschuldige, dass ich dich störe, @angus, aber ich wollte nur kurz nachfragen, ob du schon Gelegenheit hattest, dieses Problem zu prüfen?

Ich habe das Problem erfolgreich reproduziert. Die Ursachenfindung wird jedoch länger dauern. EDD verfügt über ein internes Logging-System, das für diesen Vorgang jedoch keine Einträge vornimmt. Ich werde nächste Woche weiter an diesem Thema arbeiten. Zufällig bin ich gerade dabei, Logs für das eigene Webhook-Management von WP Discourse zu schreiben, sodass diese Aufgabe gut dazu passt. Es ist jedoch nicht ganz einfach, sodass eine Lösung noch einige weitere Wochen in Anspruch nehmen könnte.

Die Art und Weise, wie die beiden Plugins Webhooks nutzen, steht sich in gewisser Weise im Weg. Beachten Sie bitte, dass die Ursache des Konflikts zwischen diesen beiden Plugins gleichermaßen von einem der beiden Plugins stammen könnte. Da es sich um einen Vorgang in EDD handelt, der fehlschlägt, ist der logische Ort zum Debuggen tatsächlich das EDD-Plugin selbst, erstellt von den Entwicklern dieses Plugins. Wenden Sie sich daher auch an sie, falls Sie dies noch nicht getan haben.

Hallo @angus, ich habe unten Neuigkeiten von EDD:


Ich habe das Problem im WP Discourse-Plugin identifiziert und hoffe, dass du es an die Entwickler weiterleiten kannst.

Das Problem befindet sich in dieser Datei:

lib/discourse-comment.php

Genauer gesagt in diesem Filter:

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

Standardmäßig enthält das Array, das sie filtern, Folgendes:

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,
)

Besonders hervorzuheben ist das letzte Element: ‘data-*’

Das WP Discourse-Plugin filtert dies, um ihr Attribut data-youtube-id hinzuzufügen. Dabei setzen sie jedoch unbeabsichtigt das data-*-Attribut zurück. Das bedeutet, dass alle anderen Datenattribute unter wp_kses_post() nicht mehr funktionieren. Dies verursacht ein Problem mit unserem PayPal-Code.

Um es klarzustellen: WP Discourse trennt dich nicht von PayPal; es beschädigt lediglich den Code, der prüft, ob du verbunden bist. Das liegt daran, dass wir in unserem Markup ein Datenattribut verwenden, das der Filter in WP Discourse entfernt.

Meine Empfehlung an die Entwickler wäre, das Array $allowedposttags[‘div’] zu erweitern, anstatt es zu überschreiben.

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

Können sie Folgendes tun:

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

Das löst das Problem und sollte sicherstellen, dass ihre Funktionalität unverändert bleibt.

1 „Gefällt mir“

Fantastisch. Vielen Dank, dass du das ermöglicht hast. Ich werde bis Ende der Woche eine Korrektur vorbereiten. Sie wird jedoch möglicherweise erst nächste Woche gemergt.

Kein Problem, Angus, und danke für deine Aufmerksamkeit in dieser Angelegenheit! Bitte halte mich auf dem Laufenden.

Dieser PR behebt das zugrunde liegende Problem. Er wird in der nächsten Woche oder so zusammengeführt.

2 „Gefällt mir“

Toll, Angus! Nur kurz nachhaken: Du hattest gesagt, es würde in etwa einer Woche gemergt. Gibt es schon Neuigkeiten?

Ich habe nicht die Möglichkeit, PRs zusammenzuführen, aber Simon wird sich darum kümmern, wenn er Zeit hat. Sobald es zusammengeführt ist, wird Ihr Problem behoben sein.

1 „Gefällt mir“

Danke Angus.

@simon Hast du eine Ahnung, wann dieser PR zusammengeführt wird?

Entschuldigen Sie die Verzögerung. Ich werde es später am heutigen Tag zusammenführen können. Ich werde hier antworten, wenn dies geschehen ist.

@JMJ Der PR ist nun gemerged und WP Discourse 2.3.4 wurde auf wordpress.org hochgeladen. Ich habe bestätigt, dass EDD in der Produktion auf WP Discourse 2.3.4 wie erwartet funktioniert.