2017-04-12 104 views
0

在WooCommerce管理中,有取消订阅选项。 我可以将其挂钩,以便在订阅被取消时进行陷印。 但是,如果我在WooCommerce中取消网关并取消网关上的订阅之前,我更愿意。WooCommerce订阅扩展 - 在取消WooCommerce前在网关上取消

它需要

  1. 用户/管理员选择“取消订阅”
  2. API请求到达网关给成功/失败的响应。
  3. 成功后,WooCommerce取消订阅。

之后挂钩的当前设置中,取消订阅可能导致API调用失败。出现的订阅在用户可以继续处理付款时在网关处取消。

我发现发布状态挂钩更改将在订阅发生变化之前触发,但我无法停止进一步处理失败(die)()。

有谁知道处理这种情况的最佳方法?

回答

1

而不是试图重新排列事情的完成顺序,你应该写一个函数,在网关调用后,如果失败,那么它应该重新激活订阅,然后告诉用户再试一次。当然,它应该被记录下来并向你发送通知。

我建议这种方法的原因是,它更不可能在WooCommerce更新中破坏。

+0

好的建议。 有没有问题重新激活订阅?如在,重新激活后是否触发任何其他事件?它是一个简单的'WC_Subscriptions_Manager :: activate_subscriptions_for_order()' 或者一个 '$ order-> update_status('completed');'? –

+0

不,我不这么认为,但当然总是需要测试。激活函数应该处理所有的依赖关系。请务必对该重新激活进行尝试/捕获。 请喜欢我,如果你喜欢我的答案。我正在努力争取我的声望点。 :) – Difster