코스모스팜 스레드

글쓰기 하루 개수 제한 문의

케이보드 글쓰기 하루 개수 제한
케이보드 댓글쓰기 하루 개수 제한
콘텐츠몰 상품등록 하루 개수 제한

위 3가지를 설정하려면 어떻게 해야 하나요?

 

무제한으로 웹사이트를 만드세요. (코스모스팜 무제한 라이센스)
무제한으로 웹사이트를 만드세요. (코스모스팜 무제한 라이센스)
  • 안녕하세요~^^

    KBoard 플러그인에서 게시글이나 댓글을 하루에 특정 개수만 작성할 수 있게 하시려면

    쓰기권한을 로그인 사용자나 특정 역할만 쓸 수 있게 설정하셔야 할 듯합니다.

    워드프레스 관리자 -> KBoard -> 게시판 목록 -> 게시판 선택 -> 권한설정 페이지에서

    쓰기권한을 설정하실 수 있습니다.

     

    워드프레스 관리자 -> 외모 -> 테마 편집기 페이지에서 functions.php 파일 하단에

    아래의 코드를 추가해보시겠어요?

    add_action('kboard_pre_document_insert', 'my_kboard_pre_document_insert', 10, 4);
    function my_kboard_pre_document_insert($content_uid, $board_id, $content, $board){
    	global $wpdb;
    	
    	if(is_user_logged_in() && !$board->isAdmin() && $board_id == '1'){
    		$user_id = get_current_user_id();
    		
    		$date = date('Ymd000000', current_time('timestamp'));
    		$content_count = 1;
    		
    		$where[] = "`board_id`='{$board_id}'";
    		$where[] = "`member_uid`='{$user_id}'";
    		$where[] = "`date` > '{$date}'";
    		$where[] = "(`status`='' OR `status` IS NULL OR `status`='pending_approval')";
    		$where = implode(' AND', $where);
    		
    		$count = $wpdb->get_var("SELECT COUNT(*) FROM `{$wpdb->prefix}kboard_board_content` WHERE {$where}");
    		
    		if($count >= $content_count){
    			die("<script>alert('오늘은 더 이상 등록할 수 없습니다.'); history.go(-1);</script>");
    		}
    	}
    }
    
    add_action('kboard_comments_pre_insert', 'my_kboard_comments_pre_insert', 10, 3);
    function my_kboard_comments_pre_insert($comment_uid, $content_uid, $board){
    	global $wpdb;
    	
    	if(is_user_logged_in() && !$board->isAdmin() && $board->id == '1'){
    		$user_id = get_current_user_id();
    		
    		$date = date('Ymd000000', current_time('timestamp'));
    		$content_count = 1;
    		
    		$from[] = "`{$wpdb->prefix}kboard_comments` AS `comment`";
    		$from[] = "INNER JOIN `{$wpdb->prefix}kboard_board_content` AS `content` on `content`.`uid` = `comment`.`content_uid`";
    		$from = implode(' ', $from);
    		
    		$where[] = "`user_uid` = '{$user_id}'";
    		$where[] = "`created` > '{$date}'";
    		$where[] = "(`content`.`status`='' OR `content`.`status` IS NULL OR `content`.`status`='pending_approval')";
    		$where[] = "`content`.`board_id` = '{$board->id}'";
    		$where = implode(' AND', $where);
    		
    		$count = $wpdb->get_var("SELECT COUNT(*) FROM {$from} WHERE {$where}");
    		
    		if($count >= $content_count){
    			die("<script>alert('오늘은 더 이상 등록할 수 없습니다.'); history.go(-1);</script>");
    		}
    	}
    }

    위의 코드에서 $board_id == '1' 부분과 $board_id == '1' 부분은 실제 게시판 id로 적용해보세요.

    $content_count = 1 부분은 실제 하루에 쓸 수 있는 개수로 각각 설정해보시겠어요?

    고맙습니다.

이미지 사진은 imgur에 업로드한 뒤 링크 걸어주세요.
무제한으로 웹사이트를 만드세요. (코스모스팜 무제한 라이센스)