안녕하세요
이전에 덧글남겨주셔서 감사합니다.
코스모스팜 회원관리를 했을때 등급별 페이지 접근제한을 두는것은 알려주셔서 잘 이해했습니다.
혹시 회원계정 마다 활성화되는 유효기간을 설정할수있는지 궁굼합니다.
예를들어 A회원은 6개월 유효기간을, B회원은 1년의 유효기간을 설정하여,
설정한 시간부터 A회원은6개월이 지나면 로그인을 해도 유효기간 만료페이지로만 가고
B회원은 계속 홈페이지를 이용하는 것입니다.
비슷한 개념으로 구독결제 서비스가 있으나 결제를 해야된다는 점이 제가 만드려는 홈페이지와 맞지 않아서 사용하지 못하고 있습니다.
또 코스모스팜에서 웹사이트 제작도 가능한지도 궁굼합니다!
감사합니다!
안녕하세요~^^
유효기간 설정은 어떤 방식을 말씀하시는 걸까요?
회원가입 날짜 또는 관리자가 직접 설정하는 건지요?
워드프레스 wp_login 액션을 활용하시면
로그인 시에 실행되는 코드를 추가해서 회원 관련 정보를 체크하실 수 있습니다.
자세한 내용은 아래의 링크를 참고해보세요.
https://codex.wordpress.org/Plugin_API/Action_Reference/wp_login
wp_get_current_user 함수 또는 WP_User 클래스를 활용하시면 사용자 정보를 가져올 수 있습니다.
아래 관련 링크도 참고해보세요.
https://codex.wordpress.org/ko:함수_레퍼런스/wp_get_current_user
https://codex.wordpress.org/Class_Reference/WP_User
고맙습니다.
네 회원이 가입을하면 관리자가 직접 설정하는 기능을 구현하고싶습니다
관리자가 유효기간을 직접 설정하게 하시려면
워드프레스 관리자 -> 설정 -> WP-Members -> 필드 탭에서 새로운 필드를 추가해주세요.
아래 이미지처럼 설정해주셔야 관리자 페이지에서 관리자가 입력할 수 있습니다.
필드를 추가하셨다면
워드프레스 관리자 -> 사용자 -> 모든 사용자 -> 사용자 선택하신 후
WP-Members 추가 필드 쪽에 제한 필드에 20191022 이런 식으로 만료기간을 입력해보세요.
그 다음, 워드프레스 관리자 -> 외모 -> 테마 편집기 페이지에서 functions.php 파일 하단에
아래의 코드를 추가해보세요.
add_action('template_redirect', 'my_template_redirect');
function my_template_redirect(){
$user_id = get_current_user_id();
if($user_id){
$user = new WP_User($user_id);
$limit_date = strtotime($user->limit);
$limit_date = date('Ymd', $limit_date);
$today = date('Ymd', current_time('timestamp'));
$page_id = '1'; // 실제 페이지 ID로 적용해주세요::
if($limit_date <= $today && get_the_ID() != $page_id){
wp_redirect(site_url("?page_id={$page_id}"));
exit;
}
}
}
위의 코드에서 $page_id = '1'; 부분의 숫자는 만료 페이지의 실제 페이지 ID로 적용해보세요.
워드프레스에서 페이지 ID를 찾는 방법은 아래 블로그 링크를 확인해주세요.
고맙습니다.
정말 감사합니다!!