게시글에 특정시간 이후 수정 제한 설정

안녕하세요,

kboard 게시판에서 회원들에게 특정한 날짜가 되면 글 작성 및 수정이 불가능하도록 막는 방법도 있을까요?

예를들어, 2020-12-30 23:59 으로 설정해놓으면 그 이전까지는 수정/신규 작성이 가능하지만

위 시간이 지나면 수정, 작성 버튼이 사라지거나, 또는 버튼을 눌러도 alert 메시지만 띄우는 방법이 있는지 여쭤봅니다.

감사합니다.

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

    시간 설정은 전제 게시판에 적용되는 건지요?

    올려주신 내용만으로는 어떻게 하고 싶으신 건지 이해가 잘 가지 않습니다.

    게시글도 볼 수 없게 하는 건지요?

    좀 더 구체적인 상황을 설명해주시겠어요?

    고맙습니다.

  • 안녕하세요!

    게시판 한 곳([kboard id=4])에만 수정 시간 제한 설정을 하고 싶습니다.

    관리자 - 게시판 설정에서 본인이 작성한 글만 볼 수 있도록 해두어서 1:1게시판 형식이 될 것 같구요,

    제한시간이 지난 후, 본인의 게시글 내용, 첨부파일 내역 등 은 기존과 같이 볼 수 있었으면 합니다. 단지 수정, 삭제를 제한시간에 맞추어 불가능하게 하고 싶습니다!

    설명이 충분했는지 모르겠네요. 감사합니다!

  • 특정 시간 이후로 수정 삭제 버튼을 안 보이게 하시려면

    kboard_is_editor 필터를 활용해보시겠어요?

    아래의 코드를 활용해보세요.

    add_filter('kboard_is_editor', 'kboard_is_editor_20201202', 10, 4);
    function kboard_is_editor_20201202($is_editor, $user_id, $use_prevent_modify_delete, $board){
    	if(!$board->isAdmin() && $board->id == '1'){ // 실제 게시판 id로 적용해주세요.
    		$current_date = date('YmdHis', current_time('timestamp'));
    		$set_date = '20201202120000';
    		
    		if($current_date >= $set_date){
    			$is_editor = false;
    		}
    	}
    	
    	return $is_editor;
    }

    위의 코드에서 $board->id == '1' 부분은 실제 게시판 id로 적용해주세요.

    $set_date = '20201202120000' 부분에는 연월일시분초로 적용해보세요.

    위와 같이 적용하면 2020년 12월 02일 12시 00분 00초가 지나면

    수정 삭제 버튼을 표시하지 않습니다.

     

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

    고맙습니다.

  • 답변 감사합니다ㅠ 아주 잘 작동하네요!! 한가지만 더 여쭤봐도 될까요..?

     

    혹시 게시글 리스트에서 글쓰기 버튼도 같은 시간 이후 숨겨지게 가능할까요.?

    시간 이후 작성 금지 기능처럼요.

  • 게시글 목록 페이지에서 글쓰기 버튼도 시간 설정을 하시려면

    kboard_is_writer 필터를 활용해보시겠어요?

    아래의 코드를 활용해보세요.

    add_filter('kboard_is_writer', 'kboard_is_writer_20201204', 10, 2);
    function kboard_is_writer_20201204($is_writer, $board){
    	if(!$board->isAdmin() && $board->id == '1'){ // 실제 게시판 id로 적용해주세요.
    		$current_date = date('YmdHis', current_time('timestamp'));
    		$set_date = '20201202120000';
    		
    		if($current_date >= $set_date){
    			$is_writer = false;
    		}
    	}
    	
    	return $is_writer;
    }

    위의 코드에서 $board->id == '1' 부분은 실제 게시판 id로 적용해주세요.

    $set_date = '20201202120000' 부분에는 연월일시분초로 적용해보세요.

    고맙습니다.

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