pfaffman
(Jay Pfaffman)
2
我试过,但该方法不会在 Discourse 中暂停用户,这意味着他们仍会通过电子邮件收到帖子,并可以通过这种方式与论坛互动。
pfaffman
(Jay Pfaffman)
4
哦,我明白了。我没看到该插件有暂停用户的函数(但可能不知道在哪里找)。最坏的情况下,你可以在订阅失败时触发的钩子中添加一个 API 调用,以暂停用户。你可以通过 Reverse engineer the Discourse API 找到它。
simon
5
暂停和恢复用户权限将是相对简单的一步。关键在于确定要挂钩哪些 WooCommerce 操作。
看起来 woocommerce_subscription_status_updated 这个操作应该可以胜任。该钩子会传递三个参数:$subscription、$new_status 和 $old_status。状态参数是字符串,因此其含义相当直观。$subscription 参数是一个 WC_Subscription 对象。我推测其中包含可用于查找与该订阅关联的用户 ID 的详细信息。不过,我需要实际查看一下才能确认。
或许这些:
Subscriptions Action Reference Documentation - WooCommerce
操作: 'woocommerce_subscription_status_active'
参数: $subscription 一个 WC_Subscription 对象,代表刚刚更改状态的订阅。
说明: 此操作在 $subscription 指定的订阅状态变更为“激活”后触发。订阅状态可能从“待处理”转为“激活”,或从“暂停”转为“激活”,或从其他自定义状态转为“激活”。
操作: 'woocommerce_subscription_status_cancelled'
参数: $subscription 一个 WC_Subscription 对象,代表刚刚更改状态的订阅。
说明: 此操作在 $subscription 指定的订阅状态变更后触发。
订阅状态可能从“待处理”转为“已取消”,或从“暂停”转为“已取消”,或从“待取消”转为“已取消”,或从其他自定义状态转为“已取消”。
操作: 'woocommerce_subscription_status_expired'
参数: $subscription 一个 WC_Subscription 对象,代表刚刚更改状态的订阅。
说明: 当订阅达到其期限结束时触发,前提是在购买订阅产品时设置了期限长度,或者在订阅上设置了其他结束日期。