# Discourse WP 插件阻止在 Easy Digital Downloads WP 插件中安装 Paypal

**URL:** https://meta.discourse.org/t/discourse-wp-plugin-blocking-paypal-installation-in-easy-digital-downloads-wp-plugin/206172
**Category:** WordPress
**Created:** [2021年十月15日 18:28 UTC](https://meta.discourse.org/t/discourse-wp-plugin-blocking-paypal-installation-in-easy-digital-downloads-wp-plugin/206172 "2021-10-15T18:28:23Z")
**Posts on this page:** 14
**Page:** 1

<div class="post-metadata">

### Author: ![JMJ](https://avatars.discourse-cdn.com/v4/letter/j/b5e925/32.png) [@JMJ](https://meta.discourse.org/u/JMJ)
#### Post date: [2021年十月15日 18:28 UTC](https://meta.discourse.org/t/discourse-wp-plugin-blocking-paypal-installation-in-easy-digital-downloads-wp-plugin/206172/1 "2021-10-15T18:28:23Z")

</div>

我们发现 Discourse WP 插件导致在 Easy Digital Downloads WP 插件（EDD）的新版 PayPal 集成中出现安装问题，影响 API/Webhook 连接。

换句话说，当 Discourse WP 插件处于激活状态时，EDD PayPal API/Webhook 无法连接；但当 Discourse 被停用后，EDD PayPal API/Webhook 可以正常连接。不过，一旦重新激活 Discourse，EDD PayPal API/Webhook 的连接又会断开。

所有插件均已更新至最新版本。

以下是 EDD 插件的相关信息供参考：  
[https://docs.easydigitaldownloads.com/article/2410-paypal](https://docs.easydigitaldownloads.com/article/2410-paypal) [Easy Digital Downloads – eCommerce Payments and Subscriptions made easy – WordPress plugin | WordPress.org](https://wordpress.org/plugins/easy-digital-downloads/)

如有任何帮助，不胜感激，谢谢！

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [2021年十月18日 07:21 UTC](https://meta.discourse.org/t/discourse-wp-plugin-blocking-paypal-installation-in-easy-digital-downloads-wp-plugin/206172/2 "2021-10-18T07:21:34Z")

</div>

感谢您的报告。我将在本周晚些时候测试它们的兼容性，并告知您问题所在。

---

<div class="post-metadata">

### Author: ![JMJ](https://avatars.discourse-cdn.com/v4/letter/j/b5e925/32.png) [@JMJ](https://meta.discourse.org/u/JMJ)
#### Post date: [2021年十月19日 16:57 UTC](https://meta.discourse.org/t/discourse-wp-plugin-blocking-paypal-installation-in-easy-digital-downloads-wp-plugin/206172/3 "2021-10-19T16:57:20Z")

</div>

没问题，Angus，如果您有任何问题，请随时告诉我！

---

<div class="post-metadata">

### Author: ![JMJ](https://avatars.discourse-cdn.com/v4/letter/j/b5e925/32.png) [@JMJ](https://meta.discourse.org/u/JMJ)
#### Post date: [2021年十月21日 17:44 UTC](https://meta.discourse.org/t/discourse-wp-plugin-blocking-paypal-installation-in-easy-digital-downloads-wp-plugin/206172/4 "2021-10-21T17:44:29Z")

</div>

抱歉打扰您 @angus，只是想确认一下您是否有机会查看这个问题？

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [2021年十月22日 05:39 UTC](https://meta.discourse.org/t/discourse-wp-plugin-blocking-paypal-installation-in-easy-digital-downloads-wp-plugin/206172/5 "2021-10-22T05:39:33Z")

</div>

我已成功复现该问题。确定原因将需要更长时间。EDD 拥有内部日志系统，但该操作未记录任何内容。我将在下周继续处理此事。我恰好正在为 [WP Discourse](https://github.com/discourse/wp-discourse) 自身的 webhook 管理编写日志，因此这项工作与此相契合，但这并非易事，因此解决该问题可能还需要几周时间。

这两个插件使用 webhook 的方式在某些方面存在冲突。请注意，这两个插件之间的冲突原因可能同样来自任一插件。事实上，考虑到是 EDD 中的某项操作失败，逻辑上调试该问题的正确位置实际上是在 EDD 插件本身，即由该插件的创建者进行调试。如果您尚未联系他们，也请与他们取得联系。

---

<div class="post-metadata">

### Author: ![JMJ](https://avatars.discourse-cdn.com/v4/letter/j/b5e925/32.png) [@JMJ](https://meta.discourse.org/u/JMJ)
#### Post date: [2021年十月25日 13:45 UTC](https://meta.discourse.org/t/discourse-wp-plugin-blocking-paypal-installation-in-easy-digital-downloads-wp-plugin/206172/6 "2021-10-25T13:45:19Z")

</div>

你好 @angus，以下是来自 EDD 的一些消息：

* * *

我已识别出 [WP Discourse](https://github.com/discourse/wp-discourse) 插件中的问题，希望您能将其转交给开发人员。

问题位于此文件中：

lib/discourse-comment.php

具体涉及以下过滤器：

add\_filter( ‘wp\_kses\_allowed\_html’, array( $this, ‘extend\_allowed\_html’ ), 10, 2 );

默认情况下，他们正在过滤的数组包含以下内容：

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

特别值得注意的是最后一个：‘data-\*’

[WP Discourse](https://github.com/discourse/wp-discourse) 插件正在过滤此数组以添加其 `data-youtube-id` 属性，但在这样做时，他们无意中取消了 data-\* 属性。这意味着所有其他 data 属性在 wp\_kses\_post() 下不再起作用。这导致我们的 PayPal 代码出现问题。

需要明确的是：[WP Discourse](https://github.com/discourse/wp-discourse) 并没有真正断开您与 PayPal 的连接；它只是破坏了检查您是否已连接的代码。这是因为我们在标记中使用了 data 属性，而 [WP Discourse](https://github.com/discourse/wp-discourse) 中的过滤器将其剥离了。

我对开发人员的建议是扩展 $allowedposttags[‘div’] 数组，而不是覆盖它。

不要这样做：  
$allowedposttags[‘div’] = array(  
‘class’ =\> true,  
‘id’ =\> true,  
‘style’ =\> true,  
‘title’ =\> true,  
‘role’ =\> true,  
‘data-youtube-id’ =\> array(),  
);

他们可以这样做：

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

这将解决问题，同时也应确保他们的功能保持不变。

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [2021年十月27日 11:21 UTC](https://meta.discourse.org/t/discourse-wp-plugin-blocking-paypal-installation-in-easy-digital-downloads-wp-plugin/206172/7 "2021-10-27T11:21:31Z")

</div>

太棒了。感谢您促成此事。我将在本周末前准备好修复方案，不过合并可能要到下周才能完成。

---

<div class="post-metadata">

### Author: ![JMJ](https://avatars.discourse-cdn.com/v4/letter/j/b5e925/32.png) [@JMJ](https://meta.discourse.org/u/JMJ)
#### Post date: [2021年十月28日 16:58 UTC](https://meta.discourse.org/t/discourse-wp-plugin-blocking-paypal-installation-in-easy-digital-downloads-wp-plugin/206172/8 "2021-10-28T16:58:23Z")

</div>

没问题，Angus，感谢您对此问题的关注！请随时向我通报进展。

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [2021年十月29日 02:32 UTC](https://meta.discourse.org/t/discourse-wp-plugin-blocking-paypal-installation-in-easy-digital-downloads-wp-plugin/206172/9 "2021-10-29T02:32:07Z")

</div>

此 PR 解决了根本问题。它将在未来一周左右合并。

> <https://github.com/discourse/wp-discourse/pull/425/files>
>
> See https://core.trac.wordpress.org/changeset/43981. Note that the existing usag…e can cause issues with data attributes used by other plugins, e.g: https://meta.discourse.org/t/discourse-wp-plugin-blocking-paypal-installation-in-easy-digital-downloads-wp-plugin/206172

---

<div class="post-metadata">

### Author: ![JMJ](https://avatars.discourse-cdn.com/v4/letter/j/b5e925/32.png) [@JMJ](https://meta.discourse.org/u/JMJ)
#### Post date: [2021年十一月5日 13:07 UTC](https://meta.discourse.org/t/discourse-wp-plugin-blocking-paypal-installation-in-easy-digital-downloads-wp-plugin/206172/10 "2021-11-05T13:07:40Z")

</div>

太棒了，Angus！只是想跟进一下，正如你提到的，大约一周内会合并，有什么更新吗？

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [2021年十一月8日 07:14 UTC](https://meta.discourse.org/t/discourse-wp-plugin-blocking-paypal-installation-in-easy-digital-downloads-wp-plugin/206172/11 "2021-11-08T07:14:53Z")

</div>

我没有合并 PR 的能力，但 Simon 腾出手来时会处理。合并后您的问题就会解决。

---

<div class="post-metadata">

### Author: ![JMJ](https://avatars.discourse-cdn.com/v4/letter/j/b5e925/32.png) [@JMJ](https://meta.discourse.org/u/JMJ)
#### Post date: [2021年十一月9日 16:29 UTC](https://meta.discourse.org/t/discourse-wp-plugin-blocking-paypal-installation-in-easy-digital-downloads-wp-plugin/206172/12 "2021-11-09T16:29:04Z")

</div>

谢谢 Angus。

@simon 知道这个 [PR](https://github.com/discourse/wp-discourse/pull/425) 什么时候会合并吗？

---

<div class="post-metadata">

### Author: ![simon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simon/32/339122_2.png) [@simon](https://meta.discourse.org/u/simon)
#### Post date: [2021年十一月9日 17:43 UTC](https://meta.discourse.org/t/discourse-wp-plugin-blocking-paypal-installation-in-easy-digital-downloads-wp-plugin/206172/13 "2021-11-09T17:43:05Z")

</div>

抱歉延迟了。我今天晚些时候应该可以将其合并。完成合并后，我会在此处回复。

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [2021年十一月10日 03:37 UTC](https://meta.discourse.org/t/discourse-wp-plugin-blocking-paypal-installation-in-easy-digital-downloads-wp-plugin/206172/14 "2021-11-10T03:37:15Z")

</div>

@JMJ PR现已合并，[WP Discourse](https://github.com/discourse/wp-discourse) `2.3.4` [已推送到wordpress.org](http://xn--wordpress-4y4ov84hjlo359k.org)。我已确认EDD在WP Discourse `2.3.4` 的生产环境中按预期工作。
