2

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

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

add_action('woocommerce_subscription_payment_complete', 'allocate_orphans');

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

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

任何帮助将不胜感激。

4

1 回答 1

3

我自己也遇到了同样的问题。我认为很奇怪 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);
于 2018-04-13T17:47:20.990 回答