Hola @angus, tengo algunas novedades de EDD a continuación:
He identificado el problema en el plugin WP Discourse y espero que puedas comunicárselo a los desarrolladores.
El problema está en este archivo:
lib/discourse-comment.php
Específicamente en este filtro:
add_filter( ‘wp_kses_allowed_html’, array( $this, ‘extend_allowed_html’ ), 10, 2 );
Por defecto, el array que están filtrando contiene lo siguiente:
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,
)
De particular interés es el último: ‘data-*’
El plugin WP Discourse está filtrando esto para agregar su atributo data-youtube-id, pero al hacerlo, está anulando inadvertidamente el atributo data-. Esto significa que todos los demás atributos de datos ya no funcionan bajo wp_kses_post(). Esto está causando un problema con nuestro código de PayPal.
Para ser claro: WP Discourse no te está desconectando realmente de PayPal; solo está rompiendo el código que verifica si estás conectado. Esto se debe a que utilizamos un atributo de datos en nuestro marcado, y el filtro en WP Discourse lo está eliminando.
Mi recomendación para los desarrolladores sería extender el array $allowedposttags[‘div’] en lugar de sobrescribirlo.
En lugar de esto:
$allowedposttags[‘div’] = array(
‘class’ => true,
‘id’ => true,
‘style’ => true,
‘title’ => true,
‘role’ => true,
‘data-youtube-id’ => array(),
);
Pueden hacer esto:
$allowedposttags[‘div’][‘data-youtube-id’] = array();
Eso resuelve el problema y también debería asegurar que su funcionalidad permanezca igual.