게시판 작성자명 마스킹하고 관리자 작성자명은 모두 보이게 수정

안녕하세요 

사용중인 쇼핑몰 게시판에 게시판 작성자명을 *표로 마스킹하고 싶습니다.

기존 답변글을 검색해보니 아래와 같이  functions.php 파일 하단에 코드를 삽입하려고 하는데 

추가로 궁금한게 2가지 있습니다. 

첫째...  $board->id == '1'    <--- 요기에 1 대신 실제 적용하려는 게시판  ID 번호를 입력하며 된다고 하셨는데...

저같은 경우는 여러개의 게시판에 모두 적용하려면 어떻게 입력하면 될까요? 

다국어 쇼핑몰의 게시판이라서 각 언어별로  ID가  1, 2 , 4 , 5,  6  (총 5개)에 일괄 적용하고 싶습니다.  

두번째... 작성자명의 맨 앞 첫 문자만 보이고 나머지는 모두 * 표시되는게 아니라 맨앞과 맨 끝문자만 보이게 하려면  코드를 어떻게 수정해야 하나요?

예를 들어 홍길동은 홍*동...  David 는 D***d...

참고로 실제 사용중인 쇼핑몰은 https://gem.dollsoom.com/support/qna/ 입니다.  

제가 이런 쪽으로 너무 초보자입니다. 아시는 분의 답변 부탁드립니다. 감사합니다. 

    

/* K-board 게시판 작성자명 마스킹하고 관리자 작성자명은 모두 보이게 수정 */
add_filter('kboard_user_display', 'my_kboard_user_display', 10, 5);
function my_kboard_user_display($user_display, $user_id, $user_name, $plugins, $boardBuilder){
	$board = $boardBuilder->board;
	$userdata = get_userdata($user_id);
	
	if($board->id == '1' && !$board->isAdmin() && !in_array('administrator', $userdata->roles)){
		$strlen = mb_strlen($user_name, 'utf-8');
		
		if($strlen > 3){
			$showlen = 2;
		}
		else{
			$showlen = 1;
		}
		
		$user_display = mb_substr($user_name, 0, $showlen, 'utf-8') . str_repeat('*', $strlen-$showlen);
	}
	
	return $user_display;
}

 

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 안녕하세요~^^

    여러 개의 게시판에 적용하시려면

    $board->id == '1' 부분을 in_array($board->id, array('1', '2', '3', '4', '5')) 이런 식으로 적용해보시겠어요?

     

    작성자명 맨 앞과 맨 끝만 표시되게 하고 나머지는 별표 처리하시려면

    올려주신 코드 중 아래의 코드를 찾아서

    $user_display = mb_substr($user_name, 0, $showlen, 'utf-8') . str_repeat('*', $strlen-$showlen);

    아래의 코드로 교체해보세요.

    $user_display = mb_substr($user_name, 0, 1, 'utf-8') . str_repeat('*', $strlen-2) . mb_substr($user_name, $strlen-1, 1, 'utf-8');

    고맙습니다.

  • 안녕하세요 답변 감사합니다. 

    알려주신 대로 적용하니 잘 됩니다. ^^

    그런데 아래와 같이 2가지 문제가 발견됩니다. ;;;  

    1. 최상단 공지글의 경우 관리자 작성자(soomcs)명인데도 별표로 마스킹 됩니다. 

    2. 관리자의  답변글에 또다시 고객이 답변을 달게되면 작성자명이 노출됩니다. ㅋㅋ 

    혹시  2가지 오류의 개선 방법이 있을까요?  

    <blockquote class="imgur-embed-pub" lang="en" data-id="a/0BkcgGq"><a href="//imgur.com/a/0BkcgGq"></a></blockquote><script async src="//s.imgur.com/min/embed.js" charset="utf-8"></script>

     

  • 오류를 캡처한 이미지 링크입니다. https://imgur.com/2sZlj0q

  • 해당 코드를 적용하시면 현재 로그인한 사용자가 게시판 관리자가 아니면서

    게시글 작성자가 관리자 역할이 아닐 경우에 작성자 마스킹이 됩니다.

    답글에도 마찬가지로 적용됩니다.

    FTP로 접속해서 /wp-content/plugins/kboard/skin/사용중인스킨/reply-template.php 파일의 내용을

    에디터의 코드 스니펫 삽입 기능으로 올려주시겠어요?

    고맙습니다.

이미지 사진은 imgur에 업로드한 뒤 링크 걸어주세요.
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기