Woocommerce 订阅挂钩案例

Posted

技术标签:

【中文标题】Woocommerce 订阅挂钩案例【英文标题】:Woocommerce subscription hooks case 【发布时间】:2018-05-12 06:14:23 【问题描述】:

我正在使用 Woocommerce 订阅插件进行“赞助孤儿”项目。可以按月或按年订阅。

当一个新的订阅被创建时,我会在这样的支付完成时为订阅分配一个孤儿......

add_action('woocommerce_subscription_payment_complete', 'allocate_orphans');

它为新订阅正确分配了新的孤儿,但它也在每次续订时分配了一个孤儿。

我认为我使用了错误的动作挂钩。对于新孤儿的新订阅(不应在下次付款时分配孤儿),我应该使用哪个操作挂钩?

任何帮助将不胜感激。

【问题讨论】:

我应该对每个孤儿的每个订阅使用操作“woocommerce_subscription_status_active”吗? 【参考方案1】:

我自己也遇到了同样的问题。我觉得很奇怪 WC 没有把它变成自己的钩子,很容易在 if 中添加一个 else 语句来创建存在的“非初始”支付钩子......

无论如何,至少我们可以在我们的行动中使用他们的逻辑:

function assign_orphan($subscription) 

    $last_order = $subscription->get_last_order( 'all', 'any' );
    if ( false !== $last_order || wcs_order_contains_renewal( $last_order ) ) 
        //get out of here
        return;
    

    //go ahead and allocate on initial sign up


add_action('woocommerce_subscription_payment_complete','assign_orphan',10,1);

【讨论】:

以上是关于Woocommerce 订阅挂钩案例的主要内容,如果未能解决你的问题,请参考以下文章

如何从functions.php中的简码挂钩中排除产品类别ID - WooCommerce

Woocommerce 订阅中的订阅频率和价格变化挂钩

Woocommerce如何处理订阅结算?

WooCommerce订阅 - 续订时未触发动作挂钩

如何显示用户的 WooCommerce 订阅详情?

如何在自定义 woocommerce 结帐字段中显示 $_SESSION 变量?