코스모스팜 회원관리 플러그인의 정기결제를 테스트하고 있습니다.
정기결제시 cosmosfarm_members_subscription_request_pay 액션과 wp_mail 함수를 이용해서 메일을 보내실 수 있는 것을 알았습니다.
그럼 정기결제를 취소하면 어떤 액션이 발생하나요? 이때도 알림 메일을 받을 수 있을까요?
안녕하세요~^^
코스모스팜 회원관리 플러그인에서 cosmosfarm_members_subscription_request_pay 액션을 활용하시면
말씀하신 것처럼 정기결제 시 코드를 추가하고 실행되게 하실 수 있습니다.
정기결제 만료 시에는 cosmosfarm_members_subscription_expiry 액션을 활용하시면
코드를 추가하고 실행되게 하실 수 있습니다.
아래 링크들을 참고해보시면 도움이 되실 듯합니다.
https://www.cosmosfarm.com/threads/document/33396
https://www.cosmosfarm.com/threads/document/39270
고맙습니다.
워드프레스 정기결제 유료회원제 다른 플랫폼 연동 방법도 참고 부탁드립니다.
고맙습니다.
아래처럼 구현해서 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_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;
}
최신 버전의 코스모스팜 회원관리 플러그인을 사용 중이시라면
워드프레스 관리자 -> 정기결제 -> 상품 -> 상품 선택 -> 구매자 설정 탭에서
자동결제 상태 및 중지 관련해서 설정하실 수 있습니다.
고맙습니다.
아래처럼 적용해서 성공적으로 알림 메일을 받았습니다.
감사합니다.
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;
}