퍼스트 콘텐츠몰 권한 제한 적용 및 메세지 변경

안녕하세요~

퍼스트 콘텐츠몰 권한 제한 적용 및 메세지 변경 관한 질문드립니다~

특정 권한의 사용자만 쓰기 권한을 주었습니다.

 

1. 쓰기 즉 상품등록 에서만 쓰기권한 제한이 될줄알았는데 판매조회까지 쓰기권한이 동일하게 적용되었습니다.

혹시 상품등록만 쓰기권한이 적용되도록 가능할까요?

 

2. 상품등록 쓰기권한 제한이 될때 메세지 "권한이 없습니다." 라는 메세지를

상품등록 페이지에만 맞추어 커스텀 수정하고싶습니다. 가능할까요?

 

감사합니다.

 

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
  • 안녕하세요~^^

    1. 판매조회는 어떤 사용자에게 표시가 되어야 하는지요?

    2. 쓰기권한이 없으면 상품등록 버튼이 표시되지 않습니다.

    그래도 문구를 변경하시려면 gettext 필터를 활용해보세요.

    자세한 내용은 아래의 링크를 참고해보세요.

    https://developer.wordpress.org/reference/hooks/gettext/

    고맙습니다.

  • 1. 판매조회는 로그인사용자 + 레벨 1 이 볼수있었으면합니다 

       상품등록은 로그인사용자 + 레벨 2 가 가능했으면합니다!

     

    2. gettext 에서 권한이 없습니다. 를 변경시 모든 멘트가 똑같이 변경되는데

    혹시 특정 url 또는 페이지를 구분해서 그 alert 의 멘트만 바꾸기가 가능할까요?/

     

    감사합니다.

  • 1. 퍼스트 콘텐츠몰 스킨에서 판매조회는

    FTP로 접속해서 /wp-content/plugins/kboard/skin/사용중인스킨/list-gallery-style.php 파일에서 표시하고 있습니다.

    <?php if($board->isWriter()):?>
    	<li class="kboard-page-sales<?php if(kboard_mod() == 'sales'):?> kboard-selected<?php endif?>"><a href="<?php echo $url->set('category1', '')->set('category2', '')->set('pageid', '1')->set('start_date', '')->set('end_date', '')->set('target', '')->set('keyword', '')->set('kboard_search_option', '')->set('mod', 'sales')->tostring()?>"><?php echo __('My Sales', 'kboard')?></a></li>
    	<?php if(is_user_logged_in()):?>
    		<li class="kboard-page-new"><a href="<?php echo $url->getContentEditor()?>"><?php echo __('New Product', 'kboard')?></a></li>
    	<?php else:?>
    		<li class="kboard-page-new"><a href="#" onclick="alert('<?php echo __('Please Log in to continue.', 'kboard')?>');top.window.location.href='<?php echo wp_login_url($_SERVER['REQUEST_URI'])?>';return false;"><?php echo __('New Product', 'kboard')?></a></li>
    	<?php endif?>
    <?php endif?>

    아래의 코드로 모두 적용하시면 관리자와 특정 역할을 가진 사용자에게만 표시되게 하실 수 있습니다.

    <?php $user = wp_get_current_user()?>
    <?php if($board->isAdmin() || in_array('author', $user->roles)):?>
    	<li class="kboard-page-sales<?php if(kboard_mod() == 'sales'):?> kboard-selected<?php endif?>"><a href="<?php echo $url->set('category1', '')->set('category2', '')->set('pageid', '1')->set('start_date', '')->set('end_date', '')->set('target', '')->set('keyword', '')->set('kboard_search_option', '')->set('mod', 'sales')->tostring()?>"><?php echo __('My Sales', 'kboard')?></a></li>
    <?php endif?>
    <?php if($board->isWriter()):?>
    	<?php if(is_user_logged_in()):?>
    		<li class="kboard-page-new"><a href="<?php echo $url->getContentEditor()?>"><?php echo __('New Product', 'kboard')?></a></li>
    	<?php else:?>
    		<li class="kboard-page-new"><a href="#" onclick="alert('<?php echo __('Please Log in to continue.', 'kboard')?>');top.window.location.href='<?php echo wp_login_url($_SERVER['REQUEST_URI'])?>';return false;"><?php echo __('New Product', 'kboard')?></a></li>
    	<?php endif?>
    <?php endif?>

    author 부분은 실제 표시하려는 역할로 적용해보세요.

     

    워드프레스 역할과 권한에 대한 설명은

    아래의 링크를 참고해보세요.

    https://wordpress.org/support/article/roles-and-capabilities/

     

    2. 아래의 코드를 활용하기면 KBoard 상품등록(글쓰기) 페이지에서만

    문구를 편집하실 수 있습니다.

    add_action('kboard_skin_header', 'kboard_skin_header_20200901', 10, 1);
    function kboard_skin_header_20200901($builder){
    	$board = $builder->board;
    	if($board->id == '1' && kboard_mod() == 'editor'){ // 실제 게시판 id로 적용해주세요.
    		add_filter('gettext', 'gettext_20200901', 10, 3);
    	}
    }
    
    function gettext_20200901($translated_text, $text, $domain){
    	if($domain == 'kboard'){
    		switch($translated_text){
    			case '권한이 없습니다.': $translated_text = '상품을 등록할 수 없습니다.'; break;
    		}
    	}
    	return $translated_text;
    }

    테마의 functions.php 파일에 코드를 추가하거나 Code Snippets 플러그인을 사용해서 코드를 추가할 수 있습니다.

    고맙습니다.

  • 감사합니다!

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기