Olá @angus, tenho algumas novidades do EDD abaixo:
Identifiquei o problema no plugin WP Discourse e espero que você possa repassá-lo aos desenvolvedores.
O problema está neste arquivo:
lib/discourse-comment.php
Especificamente neste filtro:
add_filter( ‘wp_kses_allowed_html’, array( $this, ‘extend_allowed_html’ ), 10, 2 );
Por padrão, o array que eles estão filtrando contém o seguinte:
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,
)
Vale destacar especialmente o último: ‘data-*’
O plugin WP Discourse está filtrando isso para adicionar seu atributo data-youtube-id, mas, ao fazer isso, ele acidentalmente remove o atributo data-*. Isso significa que todos os outros atributos de dados deixam de funcionar sob wp_kses_post(). Isso está causando um problema com nosso código do PayPal.
Para deixar claro: o WP Discourse não está realmente desconectando você do PayPal; ele apenas está quebrando o código que verifica se você está conectado. Isso ocorre porque usamos um atributo de dados em nossa marcação, e o filtro do WP Discourse está removendo-o.
Minha recomendação aos desenvolvedores seria estender o array $allowedposttags[‘div’] em vez de sobrescrevê-lo.
Em vez disso:
$allowedposttags[‘div’] = array(
‘class’ => true,
‘id’ => true,
‘style’ => true,
‘title’ => true,
‘role’ => true,
‘data-youtube-id’ => array(),
);
Eles podem fazer isso:
$allowedposttags[‘div’][‘data-youtube-id’] = array();
Isso resolve o problema e também deve garantir que a funcionalidade deles permaneça a mesma.