: 주문 구독은 '처리의 상태를 가지고 포함 woocommerce_thankyou
액션 후크 걸어 맞춤 기능으로
1), 우리는 업데이트 구독 상태 '보류'에 :
add_action('woocommerce_thankyou', 'custom_thankyou_subscription_action', 50, 1);
function custom_thankyou_subscription_action($order_id){
if(! $order_id) return;
$order = wc_get_order($order_id); // Get an instance of the WC_Order object
// If the order has a 'processing' status and contains a subscription
if(wcs_order_contains_subscription($order) && $order->has_status('processing')){
// 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');
}
}
}
코드는 플러그인 파일도 function.php의 활성 자식 테마 (또는 테마)의 파일이나 간다. 주문 상태가 「완료」로 변경 woocommerce_order_status_completed
액션 후크 꺾어 지정 함수와
2) 그 것이다 자동 변경 "활성"에 가입 상태 :
// When Order is "completed" auto-change the status of the WC_Subscription object to 'on-hold'
add_action('woocommerce_order_status_completed','updating_order_status_completed_with_subscription');
function updating_order_status_completed_with_subscription($order_id) {
$order = wc_get_order($order_id); // Get an instance of the WC_Order object
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('active');
}
}
}
코드는 활성 자녀 테마 (또는 테마)의 function.php 파일 또는 모든 플러그인 파일에 있습니다.
모든 코드가 Woocommerce 3+와 작품에 테스트됩니다.
정말 고마워요! 그것은 완벽하게 작동했습니다. 같은 시간에 설명하면서 해결책을 제시해 주셔서 감사합니다. – Daniel
나는 WooCommerce Subscription Status On Hold에 관한 튜토리얼을 읽었습니다. 나는 이것이 당신에게 도움이 될 것이라고 생각합니다. https://www.cloudways.com/blog/woocommerce-subscription-status-on-hold/ –