코스모스팜 회원관리 플러그인의 정기결제를 테스트하고 있습니다.
정기결제시 cosmosfarm_members_subscription_request_pay 액션과 wp_mail 함수를 이용해서 메일을 보내실 수 있는 것을 알았습니다.
그럼 정기결제를 취소하면 어떤 액션이 발생하나요? 이때도 알림 메일을 받을 수 있을까요?
아래처럼 적용해서 성공적으로 알림 메일을 받았습니다.
감사합니다.
add_filter('cosmosfarm_members_subscription_update_result', 'cosmosfarm_members_subscription_update_result_20200604', 10, 1);
function cosmosfarm_members_subscription_update_result_20200604($result){
$subscription_active = isset($result['subscription_active']) ? $result['subscription_active'] : '';
$order_id = isset($result['order_id']) ? $result['order_id'] : 'Unknown';
$current_user = wp_get_current_user();
$to = 'info@mydomain';
if($subscription_active){
// 자동결제 활성화 시 코드를 추가해보세요.
$title = '[구독재개] 자동결제 재개 알림';
$message = '자동결제가 재개되었습니다.';
}
else{
// 자동결제 비활성화 시 코드를 추가해보세요.
$title = '[구독취소] 자동결제 취소 알림';
$message = '자동결제가 취소되었습니다.';
}
$message .= ' user:';
$message .= $current_user->user_login;
$message .= ', order_id:';
$message .= $order_id;
$ret = wp_mail($to, $title, $message);
return $result;
}
cosmosfarm_members_subscription_expiry 액션은 정기결제 만료 시 실행됩니다.
사용자가 자동결제 활성화 비활성화 시에 코드를 추가하고 실행되게 하시려면
cosmosfarm_members_subscription_update_result 필터를 활용해보시겠어요?
예제 코드는 아래와 같습니다.
add_filter('cosmosfarm_members_subscription_update_result', 'cosmosfarm_members_subscription_update_result_20200604', 10, 1);
function cosmosfarm_members_subscription_update_result_20200604($result){
$subscription_active = isset($result['subscription_active']) ? $result['subscription_active'] : '';
if($subscription_active){
// 자동결제 활성화 시 코드를 추가해보세요.
}
else{
// 자동결제 비활성화 시 코드를 추가해보세요.
}
return $result;
}
최신 버전의 코스모스팜 회원관리 플러그인을 사용 중이시라면
워드프레스 관리자 -> 정기결제 -> 상품 -> 상품 선택 -> 구매자 설정 탭에서
자동결제 상태 및 중지 관련해서 설정하실 수 있습니다.
고맙습니다.
아래처럼 구현해서 functions.php에 추가 했는데, 구독 취소시 Email이 발송이 안되더군요. 무엇이 잘못되었을까요?
사용자가 구독을 수동으로 취소하는 것은 해당이 안되나요? 그냥 구독 기간이 만기가 되는 것을 감지하는 것인가요?
info@mydomain.com은 실제 Email주소를 적용했습니다.
add_action('cosmosfarm_members_subscription_expiry', 'my_cosmosfarm_members_subscription_expiry', 10, 2);
function my_cosmosfarm_members_subscription_expiry($old_order, $product){
$to = 'info@mydomain.com';
$title = '[구독종료] 구독 종료 알림';
$message = '구독이 종료되었습니다.';
$ret = wp_mail($to, $title, $message);
}
워드프레스 정기결제 유료회원제 다른 플랫폼 연동 방법도 참고 부탁드립니다.
고맙습니다.
안녕하세요~^^
코스모스팜 회원관리 플러그인에서 cosmosfarm_members_subscription_request_pay 액션을 활용하시면
말씀하신 것처럼 정기결제 시 코드를 추가하고 실행되게 하실 수 있습니다.
정기결제 만료 시에는 cosmosfarm_members_subscription_expiry 액션을 활용하시면
코드를 추가하고 실행되게 하실 수 있습니다.
아래 링크들을 참고해보시면 도움이 되실 듯합니다.
https://www.cosmosfarm.com/threads/document/33396
https://www.cosmosfarm.com/threads/document/39270
고맙습니다.