Plugin Discourse WP bloqueando instalação do Paypal no Plugin Easy Digital Downloads WP

Descobrimos que o plugin Discourse WP está causando um problema de instalação na conexão da API/Webhook para uma nova versão do PayPal no plugin Easy Digital Downloads WP (EDD).

Em outras palavras, quando o plugin Discourse WP está ativado: a API/Webhook do PayPal do EDD não se conecta, mas quando o Discourse é desativado: a API/Webhook do PayPal do EDD conecta perfeitamente, embora reativar o Discourse desconecte novamente a API/Webhook do PayPal do EDD.

Todos os plugins estão atualizados.

Aqui estão as informações do plugin EDD para referência:
https://docs.easydigitaldownloads.com/article/2410-paypal Easy Digital Downloads – eCommerce Payments and Subscriptions made easy – WordPress plugin | WordPress.org

Qualquer ajuda será apreciada, obrigado!

Obrigado pelo relatório. Vou testar a compatibilidade deles no final desta semana e te aviso onde está o problema.

Certo, Angus! Se tiver alguma dúvida, é só me avisar!

Desculpe incomodar você @angus, mas só queria verificar se você já teve a oportunidade de revisar esse problema.

Consegui reproduzir o problema. Identificar a causa levará mais tempo. O EDD possui um sistema de registro interno, mas ele não está registrando nada para esta operação. Vou continuar trabalhando nisso na próxima semana. Estou justamente no processo de escrever logs para o gerenciamento de webhooks do próprio WP Discourse, então esse trabalho se encaixa nisso; no entanto, não é simples, então uma resolução pode levar algumas semanas a mais.

A forma como os dois plugins usam webhooks está em conflito de alguma maneira. Tenha em mente que a causa do conflito entre esses dois plugins pode igualmente vir de qualquer um deles. De fato, considerando que é uma operação no EDD que está falhando, o lugar lógico para depurá-la está, na verdade, dentro do próprio plugin EDD, pelos criadores desse plugin. Você também deve entrar em contato com eles se ainda não o fez.

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.

Fantástico. Obrigado por facilitar isso. Vou preparar uma correção até o final da semana, embora ela possa não ser mesclada até a próxima semana.

Com certeza, Angus, e obrigado por sua atenção a este assunto! Por favor, mantenha-me informado.

Esta PR aborda o problema subjacente. Ela será mesclada em algum momento na próxima semana ou por aí.

Ótimo, Angus! Só passando para confirmar, já que você mencionou que seria mesclado em uma semana ou mais ou menos, há alguma atualização?

Não tenho a capacidade de mesclar PRs, mas o Simon cuidará disso quando puder. Quando for mesclado, seu problema será resolvido.

Obrigado, Angus.

@simon Alguma ideia de quando este PR será mesclado?

Desculpe pelo atraso. Conseguirei mesclar isso mais tarde hoje. Responderei aqui quando isso for feito.

@JMJ O PR foi mesclado e o WP Discourse 2.3.4 enviado para o wordpress.org. Confirmei que o EDD está funcionando como esperado em produção no WP Discourse 2.3.4.