我是顽固的 .NET 家伙。涉足 PHP,我仅将 WordPress 用作个人博客和摄影爱好的临时用户。但是,我想曝光已经足够让我的老板让我创建一个 WooCommerce 订阅插件。
业务逻辑如下:
客户提供三种订阅
- 3 个月 $x
- 6 个月 $x - 10%
- 1 年 $x - 20%
如果用户注册了 6 个月或 1 年的订阅,然后在 6 个月或 1 年到期之前取消,则企业主不会立即取消订阅。他想要做的是将订阅的续订从自动更改为手动,因此客户将继续每月付款,直到原始订阅期限到期。(请不要对此逻辑发表评论。这不是我的。)
所以,我正在阅读和消化所有我能拿到的文档,我对这个动作有疑问:woocommerce_subscription_status_cancelled
文档说:
说明:在 $subscription 指定的订阅状态发生变化后触发此操作。
第一个问题:
我想知道的是......当它说after the subscription specified with $subscription has had its status changed
......这是否意味着在用户更改状态之后?还是在实际状态已更改并记录后?
换句话说,当我触发这个动作时,状态是否已经改变了?还是在用户选择取消之后,但在状态更改到达数据库之前,该操作会发生?
第二个问题:
我是否正确假设我可以将自己的方法分配给可以防止(或撤消)实际取消的操作,而只是将续订类型从自动更改为手动?