根据付款方式在续订中设置WooCommerce订阅状态

时间:2019-10-20 19:47:52

标签: php wordpress woocommerce

我想要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' );
        }
      }
    }
}

有什么主意我可以解决这个问题吗?

0 个答案:

没有答案