С помощью подписок WooCommerce я хочу, чтобы при продлении заказа и подписки с наложенным платежом (подписка) статус подписки изменялся на удержание до завершения заказа. До того, как заказ на продление подписки будет оплачен, его статус находится в состоянии ожидания, а когда он оплачен, «обработан»
Текущий код, который у меня есть для «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' );
}
}
}
}
Есть идеи, как это исправить?