Php 签出后创建一个cron,以便在特定日期暂停Woocommerce订阅

Php 签出后创建一个cron,以便在特定日期暂停Woocommerce订阅,php,wordpress,woocommerce,cron,Php,Wordpress,Woocommerce,Cron,我有一个Woocommerce订阅签出,在订单中只有一个订阅。一个用户只能有一个订阅,并且在一次签出中只能订购一个订阅 我需要能够设置一个CRON作业,以便在特定时间(由用户在签出内设置)将订阅状态更改为“保留”,然后设置另一个在日期之后执行的CRON,以将订阅恢复为“活动”。这样做的原因是,在结账过程中,用户可以选择某个日期,但他们不想取消订阅(只需在该周暂停订阅) 我可以在签出期间计算出日期部分,但我似乎无法让CRON在运行时更新订阅状态 我在woocommerce\u checkout\u

我有一个Woocommerce订阅签出,在订单中只有一个订阅。一个用户只能有一个订阅,并且在一次签出中只能订购一个订阅

我需要能够设置一个CRON作业,以便在特定时间(由用户在签出内设置)将订阅状态更改为“保留”,然后设置另一个在日期之后执行的CRON,以将订阅恢复为“活动”。这样做的原因是,在结账过程中,用户可以选择某个日期,但他们不想取消订阅(只需在该周暂停订阅)

我可以在签出期间计算出日期部分,但我似乎无法让CRON在运行时更新订阅状态

我在
woocommerce\u checkout\u subscription\u创建的
操作中创建了cron,如下所示:

add_action( 'woocommerce_checkout_subscription_created', 
'checkout_custom_fields_update_subscription_meta', 10, 3 );

function checkout_custom_fields_update_subscription_meta( $subscription ) {
    wp_schedule_single_event( strtotime('+1 day', time()), 'pause_the_woo_subscription', array($subscription) );
}
然后是函数:

function pause_the_woo_subscription($subscription) {
    $subscription->update_status( 'on-hold' );     
}
function pause_the_woo_subscription($subscription, $subscription_id) {
  foreach( $subscription as $subscription_id => $subscriptio ){
      $subscriptio->update_status( 'on-hold' );
  }
}
但当cron执行时,它似乎不起作用。我还尝试在函数中循环订阅:

function pause_the_woo_subscription($subscription) {
    $subscription->update_status( 'on-hold' );     
}
function pause_the_woo_subscription($subscription, $subscription_id) {
  foreach( $subscription as $subscription_id => $subscriptio ){
      $subscriptio->update_status( 'on-hold' );
  }
}
这也没用。我哪里做错了

编辑:

我不明白为什么这不起作用:

add_action( 'woocommerce_checkout_subscription_created', 'checkout_custom_fields_update_subscription_meta', 10, 3 );

function checkout_custom_fields_update_subscription_meta( $subscription, $order, $recurring_cart ) {

$orderID = $order->get_id();
wp_schedule_single_event( strtotime('+1 minute', time()), 'pause_the_woo_subscription', array($orderID) );

}
我将订单ID作为参数传递到pause\u\u-woo\u订阅函数中,创建一个CRON来运行该函数,然后从该订单循环订阅并暂停它们

但它在CRON中不起作用