我想要WooCommerce订阅,当您续订订单并使用货到付款(cod)进行订阅时,订阅状态应更改为保留状态,直到订单完成。在支付续订订购单之前,其状态为“待处理”,付款状态为“已处理”
我在“ woocommerce_thankyou”上拥有的当前代码仅适用于新订阅,而不适用于续订。 我尝试了如下所示的“ woocommerce_order_status_changed”,但不起作用。
add_action( 'woocommerce_order_status_changed', 'change_order_status_conditionally', 10, 4 );
function change_order_status_conditionally( $order_id, $status_from, $status_to, $order ) {
if( $order->get_payment_method() === 'stripe' ) {
$order->update_status( 'completed' );
} else if($order->get_payment_method() === 'cod' && $status_to === 'processing') {
if( wcs_order_contains_subscription( $order )) {
// Get an array of WC_Subscription objects
$subscriptions = wcs_get_subscriptions_for_order( $order_id );
foreach( $subscriptions as $subscription_id => $subscription ){
// Change the status of the WC_Subscription object
$subscription->update_status( 'on-hold' );
}
}
}
}
有什么主意我可以解决这个问题吗?