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.