Le plugin Discourse WP bloque l'installation de Paypal dans le plugin Easy Digital Downloads WP

Nous avons découvert que le plugin Discourse pour WordPress provoque un problème d’installation avec la connexion API/Webhook pour une nouvelle version de PayPal dans le plugin Easy Digital Downloads pour WordPress (EDD).

Autrement dit, lorsque le plugin Discourse pour WordPress est activé : l’API/Webhook PayPal d’EDD ne se connecte pas, mais lorsque Discourse est désactivé : l’API/Webhook PayPal d’EDD se connecte parfaitement, bien que la réactivation de Discourse déconnecte à nouveau l’API/Webhook PayPal d’EDD.

Tous les plugins sont à jour.

Voici les informations du plugin EDD à titre de référence :
https://docs.easydigitaldownloads.com/article/2410-paypal Easy Digital Downloads – eCommerce Payments and Subscriptions made easy – WordPress plugin | WordPress.org

Toute aide serait appréciée, merci !

Merci pour le rapport. Je testerai leur compatibilité plus tard cette semaine et vous dirai où se situe le problème.

C’est noté, Angus ! Si tu as des questions, n’hésite pas à me le dire !

Désolé de te déranger @angus, mais je voulais juste vérifier si tu as eu l’occasion de passer en revue ce problème ?

J’ai réussi à reproduire le problème. Identifier la cause prendra plus de temps. EDD dispose d’un système de journalisation interne, mais il ne génère aucun log pour cette opération. Je vais continuer à travailler là-dessus la semaine prochaine. Je suis justement en train d’écrire des logs pour la gestion des webhooks de WP Discourse, ce qui s’inscrit dans cette démarche. Cependant, ce n’est pas simple, et une résolution pourrait prendre encore quelques semaines.

La façon dont les deux plugins utilisent les webhooks entre en conflit d’une certaine manière. Gardez à l’esprit que la cause du conflit entre ces deux plugins pourrait tout aussi bien provenir de l’un ou de l’autre. En effet, étant donné que c’est une opération au sein d’EDD qui échoue, le lieu logique pour déboguer se trouve en réalité dans le plugin EDD lui-même, par ses créateurs. Vous devriez également les contacter si vous ne l’avez pas déjà fait.

Bonjour @angus, voici quelques nouvelles concernant EDD :


J’ai identifié le problème dans le plugin WP Discourse et j’espère que vous pourrez le transmettre aux développeurs.

Le problème se situe dans ce fichier :

lib/discourse-comment.php

Plus précisément, dans ce filtre :

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

Par défaut, le tableau qu’ils filtrent contient ceci :

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

Il est particulièrement important de noter le dernier élément : ‘data-*’

Le plugin WP Discourse filtre ce tableau pour ajouter leur attribut data-youtube-id, mais ce faisant, il annule involontairement l’attribut data-*. Cela signifie que tous les autres attributs data ne fonctionnent plus sous wp_kses_post(). Cela pose problème avec notre code PayPal.

Pour être clair : WP Discourse ne vous déconnecte pas réellement de PayPal ; il rompt simplement le code qui vérifie si vous êtes connecté. Cela est dû au fait que nous utilisons un attribut data dans notre balisage, et le filtre de WP Discourse l’efface.

Ma recommandation pour les développeurs serait d’étendre le tableau $allowedposttags[‘div’] plutôt que de le remplacer.

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

Ils pourraient faire ceci :

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

Cela résout le problème et devrait également garantir que leur fonctionnalité reste inchangée.

1 « J'aime »

Fantastique. Merci de l’avoir facilité. Je préparerai une correction d’ici la fin de la semaine. Elle ne sera peut-être intégrée que la semaine prochaine.

Bien sûr, Angus, et merci de votre attention à ce sujet ! N’hésitez pas à me tenir informé.

Cette PR traite du problème sous-jacent. Elle sera fusionnée d’ici une semaine environ.

2 « J'aime »

Super, Angus ! Je fais un petit point, comme tu avais mentionné que ce serait fusionné dans une semaine environ. As-tu des nouvelles ?

Je n’ai pas la possibilité de fusionner les PRs, mais Simon s’en occupera quand il pourra. Une fois fusionné, votre problème sera résolu.

1 « J'aime »

Merci Angus.

@simon Une idée de quand ce PR sera fusionné ?

Désolé pour le retard. Je devrais pouvoir le fusionner plus tard dans la journée. Je répondrai ici une fois que ce sera fait.

@JMJ La PR est maintenant fusionnée et WP Discourse 2.3.4 poussée sur wordpress.org. J’ai confirmé qu’EDD fonctionne comme prévu en production sur WP Discourse 2.3.4.