아, 그렇군요. 플러그인에 사용자를 정지하는 기능이 있는지 모르겠습니다(어디를 봐야 할지 몰라서). 최악의 경우, 구독이 실패할 때 호출되는 훅에 API 호출을 추가해서 사용자를 정지하도록 할 수 있습니다. 여기에서 찾아볼 수 있습니다: Reverse engineer the Discourse API
사용자를 일시 정지하고 해제하는 부분은 쉬운 작업입니다. 핵심은 어떤 WooCommerce 액션에 훅을 연결해야 하는지 파악하는 것입니다.
woocommerce_subscription_status_updated 액션이 작동할 것으로 보입니다. 이 훅은 세 가지 매개변수를 전달합니다: $subscription, $new_status, $old_status. 상태 매개변수는 문자열이므로 그 값은 비교적 자명할 것입니다. $subscription 매개변수는 WC_Subscription 객체입니다. 이 객체에는 구독이 연결된 사용자 ID를 찾을 수 있는 세부 정보가 포함되어 있을 것으로 추정됩니다. 다만 확인을 위해 직접 살펴봐야 할 것 같습니다.
매개변수:$subscription 방금 상태가 변경된 구독을 나타내는 WC_Subscription 객체입니다.
설명:$subscription으로 지정된 구독의 상태가 활성화(activated)로 변경된 후에 이 액션이 트리거됩니다. 구독의 상태는 대기(pending)에서 활성(active)로, 보류(on-hold)에서 활성으로, 또는 기타 사용자 정의 상태에서 활성으로 전환되었을 수 있습니다.
액션:'woocommerce_subscription_status_cancelled'
매개변수:$subscription 방금 상태가 변경된 구독을 나타내는 WC_Subscription 객체입니다.
설명:$subscription으로 지정된 구독의 상태가 변경된 후에 이 액션이 트리거됩니다.
구독의 상태는 대기에서 취소(cancelled)로, 보류에서 취소로, 취소 대기(pending cancellation)에서 취소로, 또는 기타 사용자 정의 상태에서 취소로 전환되었을 수 있습니다.
액션:'woocommerce_subscription_status_expired'
매개변수:$subscription 방금 상태가 변경된 구독을 나타내는 WC_Subscription 객체입니다.
설명: 구독이 기간을 마감했을 때 트리거됩니다. 구독 제품 구매 시 기간이 설정되었거나, 구독에 종료 날짜가 별도로 설정된 경우 해당됩니다.