안녕하세요?
현재 SNS 회원가입 후 필수 내용을 입력하지 않을경우
https://imgur.com/RKFUwik
회원가입은 되지만 이렇게 빈칸이 출력되네요.
이러한 빈칸이 있을 경우
users-list-item-default.php
<?php
$user_info = get_userdata($user->ID);
$user_name = get_userdata($user->last_name);
if(empty($user_name)){
?>
<tr>
<td>
<div class="add-item-middot item-display-name">
?>
<?php echo $user_display, $user->first_name?>
<div class="mobile_user">
<?php
if($user->open_nick=='open'):
echo $user->first_name;
else :
echo '비공개';
endif;
?>
</div>
</div>
</td>
<td><div class="add-item-middot item-display-name"><?php echo $user->last_name; ?></div></td>
<td><div class="add-item-middot item-display-name"><?php echo $user->cluster; ?></div></td>
<td>
<div class="add-item-middot item-display-name"><?php echo $user->sex; ?>
<div class="mobile_user">
<?php
if($user->open_birth=='open'):
echo $user->birth;
else :
echo '비공개';
endif; ?>
</div>
</div>
</td>
<td>
<div class="add-item-middot item-display-name"><?php
if($user->open_birth=='open'):
echo $user->birth;
else :
echo '비공개';
endif; ?>
</div>
</td>
<td>
<div class="add-item-middot item-display-name"><?php
if($user->open_email=='open'):
echo $user->user_email;
else :
echo '비공개';
endif; ?>
<div class="mobile_user">
<?php if($user->ID != get_current_user_id()):?>
<div class="add-item-middot item-message">
<a href="<?php echo get_cosmosfarm_members_messages_url(array('to_user_id'=>$user->ID, 'redirect_to'=>$_SERVER['REQUEST_URI']))?>" title="쪽지 보내기">쪽지 보내기</a>
</div>
<?php endif?>
</div>
</div>
</td>
<td>
<?php if($user->ID != get_current_user_id()):?>
<div class="add-item-middot item-message"><a href="<?php echo get_cosmosfarm_members_messages_url(array('to_user_id'=>$user->ID, 'redirect_to'=>$_SERVER['REQUEST_URI']))?>" title="쪽지 보내기">쪽지 보내기</a></div>
<?php endif?>
</td>
</tr>
<?php } ?>
위 코드처럼 빈칸이 있는 컬럼은 출력이 안되게끔 하고싶은데
좋은 방법이 있을까요?
안녕하세요~^^
어떻게 표시하고 싶으신 건지 이해가 잘 가지 않습니다.
사용자의 필드 메타 값이 없다면 아예 표시하지 않고 싶으신 건지요?
아니면, 비공개 문구를 표시하고 싶으신 건지요?
좀 더 구체적으로 설명 부탁드립니다.
소셜 로그인으로 회원가입한 사용자는
일반 회원가입 페이지에 표시되는 필수 필드를 입력하지 않고 회원가입이 가능합니다.
소셜 로그인 사용자도 필수 필드를 입력하게 하시려면
워드프레스 관리자 -> 회원가입관리 -> 설정 페이지 보시면 필수정보 반드시 입력 설정을 사용해보시겠어요?
이 설정을 사용으로 해두셨다면 WP-Members 플러그인 필드 설정에서 필수 체크된 필드의 값이 없다면
회원정보 페이지로 항상 이동됩니다.
따라서 회원가입 시 이름이 필수로 설정되어 있다면 소셜 로그인으로 로그인 시에
이름을 반드시 입력하도록 회원정보 페이지로 이동하게 됩니다.
고맙습니다.
네
빈 칸이 있다면 아예 해당 줄이 표시하지않았으면 합니다.
그리고 필수정보 반드시 입력으로 한 상태에서도
SNS 회원이 로그인하고 필수페이지에서 입력을 안하고 그냥 꺼버리면 전체 회원 리스트에서 저렇게 출력됩니다.
그래서 아예 해당 줄이 안보이게끔 하려고합니다.
코스모스팜 회원관리 플러그인 회원리스트 페이지에서
실제 회원 목록은 워드프레스 WP_User_Query 클래스를 활용하고 있습니다.
cosmosfarm_members_users_list_query_args 필터를 활용하시면
회원리스트 페이지에서 회원 목록을 불러오는 쿼리를 수정하실 수 있습니다.
필터 사용법은 아래와 같습니다.
add_filter('cosmosfarm_members_users_list_query_args', 'my_cosmosfarm_members_users_list_query_args', 10, 1);
function my_cosmosfarm_members_users_list_query_args($args){
// 이곳에 코드를 추가해보세요.
return $args;
}
WP_User_Query 클래스에 대한 자세한 내용은
아래의 링크를 참고해보세요.
https://codex.wordpress.org/Class_Reference/WP_User_Query
users-list-item-default.php 파일에서
아래의 코드를 활용하면 이메일과 first_name 필드가 있을 때만 표시되게 할 수 있습니다.
if($user->first_name && $user->user_email){ // 이메일과 first_name 필드에 값이 있을 때만 표시됩니다.
echo $user->first_name;
}
올려주신 코드 중 if(empty($user_name)){ 부분 대신 위의 코드를 활용해보세요.
고맙습니다.