在 WooCommerce 中订阅续订成功付款时自动完成订单
Auto complete orders when a renewal successful payment is made on a subscription in WooCommerce
我正在使用 WooCommerce 订阅插件进行订阅,它在订阅续订时重复订单,我需要的是在成功订阅续订付款后创建订单重复订单时,订单状态应更改为已完成。
我尝试使用以下挂钩但未成功:
woocommerce_renewal_order_payment_complete
woocommerce_order_status_changed
woocommerce_payment_complete
对于 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_subscription_renewal_payment_complete
这也接受 $subscription 参数
2021 年,由于 WooCommerce Subscription API 发生了变化,这似乎行得通:
/*Auto Complete all WooCommerce orders.*/
add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_order' );
function custom_woocommerce_auto_complete_order( $order_id ) {
if ( ! $order_id ) {
return;
}
$order = wc_get_order( $order_id );
$order->update_status( 'completed' );
}
/*Auto Complete all WooCommerce Renewal Subscription orders.*/
add_action('woocommerce_subscription_renewal_payment_complete', 'subscription_renewal_payment_complete_callback', 10, 2);
function subscription_renewal_payment_complete_callback( $subscription, $order ) {
$order->update_status('completed');
}
我正在使用 WooCommerce 订阅插件进行订阅,它在订阅续订时重复订单,我需要的是在成功订阅续订付款后创建订单重复订单时,订单状态应更改为已完成。
我尝试使用以下挂钩但未成功:
woocommerce_renewal_order_payment_complete
woocommerce_order_status_changed
woocommerce_payment_complete
对于 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_subscription_renewal_payment_complete
这也接受 $subscription 参数
2021 年,由于 WooCommerce Subscription API 发生了变化,这似乎行得通:
/*Auto Complete all WooCommerce orders.*/
add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_order' );
function custom_woocommerce_auto_complete_order( $order_id ) {
if ( ! $order_id ) {
return;
}
$order = wc_get_order( $order_id );
$order->update_status( 'completed' );
}
/*Auto Complete all WooCommerce Renewal Subscription orders.*/
add_action('woocommerce_subscription_renewal_payment_complete', 'subscription_renewal_payment_complete_callback', 10, 2);
function subscription_renewal_payment_complete_callback( $subscription, $order ) {
$order->update_status('completed');
}