Discourse 구독 - "주기 종료 시 취소" 명확히 하기

결국 사용자가 내가 요청한 작업을 할 수 있는 것으로 드러났습니다(제목의 "허용(allow)"을 "설명(clarify)"으로 변경했습니다)… 그래서 여기 두 가지 새로운 하지만 관련 있는 항목이 있습니다.

기능 요청: 기본 문구는 취소의 두 가지 유형을 명확히 해야 합니다. 관리자 인터페이스에는 사용자 인터페이스와 동일한 “상태(Status)” 열이 있어야 합니다.

다음은 몇 가지 세부 사항입니다…

Discourse Subscriptions에서 "취소(cancel)"는 누가 실행하는지에 따라 두 가지 다른 의미를 가지는 것 같습니다! 사용자의 경우 자동 갱신만 취소하는 반면, 관리자의 경우 구독 전체를 즉시 취소합니다.

  1. 사용자가 u/.../billing/subscriptions에서 휴지통 아이콘을 클릭하면 "이 구독을 취소하시겠습니까?"라는 프롬프트가 표시됩니다.

    예(Yes)를 선택하면 customer.subscription.updated 웹훅이 트리거됩니다.

    응답의 주목할 만한 두 부분은 "cancel_at_period_end": true와 "status": "active"입니다. 사용자의 구독 페이지는 여전히 "상태: 활성"으로 표시되지만 “갱신” 항목에는 이제 "취소됨"이라고 표시됩니다. 사용자는 여전히 구독 그룹에 유지됩니다.

    짜증나는 점은, 관리자 인터페이스에서 자동 갱신이 취소되었음을 이제 표시하지 않는다는 것입니다 – 단순히 "상태: 활성"만 표시됩니다.

  2. 관리자가 /admin/plugins/discourse-subscriptions/subscriptions에서 "취소"를 클릭하면 다시 "이 구독을 취소하시겠습니까?"라는 프롬프트가 표시됩니다(환불 여부를 묻기도 합니다).

    예(Yes)를 선택하면 customer.subscription.deleted 웹훅이 트리거됩니다.

    응답에는 "status": "canceled"가 포함됩니다. 구독은 모든 곳에서 삭제되고 사용자는 구독 그룹에서 제거됩니다.