在WooCommerce中对订阅进行续订成功付款时自动完成订单

时间:2019-04-29 12:21:57

标签: php wordpress woocommerce orders woocommerce-subscriptions

我正在使用WooCommerce订阅插件进行订阅,并且正在续订订阅时重复执行该订单,我需要的是,在成功进行订阅续订付款后创建重复订单时,订单状态应更改为已完成。

我尝试不成功使用以下挂钩:

  • woocommerce_renewal_order_payment_complete
  • woocommerce_order_status_changed
  • woocommerce_payment_complete

2 个答案:

答案 0 :(得分:1)

对于WooCommerce订阅,您需要使用woocommerce_subscription_payment_complete动作挂钩,该动作挂钩是在对订阅进行续订付款时触发的。

您可以尝试以下操作,以将当前订单状态更新为已完成:

add_action('woocommerce_subscription_payment_complete', 'subscription_payment_complete_hook_callback', 10, 1);
function subscription_payment_complete_hook_callback( $subscription ) {
    // Get the current order
    $current_order = $subscription->get_last_order( 'all', 'any' );

    // For Paypal recurring orders
    if( $current_order->get_payment_method() === 'paypal' ) {

        // Update status to completed
        $current_order->update_status('completed');
    }
}

相关文档:WooCommerce Subscriptions action hooks

答案 1 :(得分:1)

我相信续订应该使用的钩子是:woocommerce_subscription_renewal_payment_complete

这也接受 $subscription 参数