첨부파일 다운로드 차감 포인트를 다르게 설정

안녕하십니까.

화이클 다운로드 / Default 스킨으로 다운로드 페이지를 제작하고싶습니다.

게시판 설정에서 첨부파일 다운로드 포인트 차감은 일괄적으로 xx 포인트를 차감하는데요. 첨부파일마다 포인트를 다르게 차감할 수 있을까요? ^-^

예를들어 글쓰기할때 숏코드 [kboard_attachment_deduct id='MyPoint' point='3'] 를 추가하면 3포인트가 차감되는 형식이나.. 다른 방법이 있을지 문의드립니다.

항상 많은 도움에 감사합니다.

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

    KBoard 플러그인에서 첨부파일 다운로드 감소 포인트를 게시글 별로 다르게 적용하시려면

    포인트설정 기능 대신 별도의 코드를 작성해주셔야 할 듯합니다.

    게시글 작성 시 차감 포인트를 설정할 수 있는 필드를 생성하신 후에

    첨부파일 다운로드 시 포인트 차감 필드에 설정된 포인트만큼 차감하는 방식으로 진행해주셔야 할 듯합니다.

     

    입력 필드는

    워드프레스 관리자 -> KBoard -> 게시판 목록 -> 게시판 선택 -> 입력필드 설정 탭에서 설정하실 수 있습니다.

    입력필드 설정 기능을 지원하지 않는 스킨을 사용 중이시라면

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

    워드프레스 게시판 KBoard(케이보드) 새로운 입력 필드 추가 방법 (커스터마이징)

     

    KBoard 내장 액션인 kboard_file_download 액션을 활용하시면

    첨부파일 다운로드 시 코드를 추가하고 실행되게 하실 수 있습니다.

    기본 사용법은 아래와 같습니다.

    add_action('kboard_file_download', 'kboard_file_download_2020_01_10', 10, 4);
    function kboard_file_download_2020_01_10($file_info, $content, $board, $comment){
    	// 이곳에 코드를 추가해보세요.
    }

     

    myCRED 플러그인의 mycred_add 함수를 사용하시면

    직접 코드를 추가해서 사용자의 포인트 증가 또는 감소하도록 설정하실 수 있습니다.

    mycred_add 함수에 대한 자세한 설명은 아래 링크를 확인해주세요.

    https://codex.mycred.me/functions/mycred_add/

    고맙습니다.

  • 운영자님 안녕하세요?

    게시판에 추가한 '포인트 차감 필드'의 값은 어떻게 받아와야 하나요?

    밑에 코드에서 -5 를 게시판별 'download_point' 라는 필드메타키 값으로 수정하고 싶습니다.

    // K보드 첨부파일 다운로드 게시판별 포인트 차감 //
    add_action('kboard_file_download', 'kboard_file_download_2020_01_10', 10, 4);
    function kboard_file_download_2020_01_10($file_info, $content, $board, $comment){
        if($board->id == '3') {
            $user_id = get_current_user_id();
            mycred_add( 'file_download', $user_id, -5, '파일 다운로드 포인트 차감' );
        }
    }

    추가로, 기존 다운로드 했던 파일의 경우는 포인트 차감없이 다운로드 가능하도록 설정 가능할까요?

    감사합니다.

  • 안녕하세요~! ^^*

    아래처럼 코드 추가해서 첫번째 문제는 해결했습니다.

    다운로드 skin editor.php 에 코드 추가

    <!-- editor.php 파일에 다운로드 포인트 추가 -->
    <div class="kboard-attr-row">
        <label class="attr-name" for="kboard_option_download_point">다운로드포인트</label>
        <div class="attr-value"><input type="text" id="kboard_option_download_point" name="kboard_option_download_point" value="<?php echo $content->option->download_point?>"></div>
    </div>

    function.php 에 아래 코드 추가

    // K보드 다운로드 포인트 차감 //
    add_action('kboard_file_download', 'kboard_file_download_2020_01_10', 10, 4);
    function kboard_file_download_2020_01_10($file_info, $content, $board, $comment){
        if($board->id == '3') {
            $user_id = get_current_user_id();
            $point = $content->option->download_point;
    		mycred_add( 'file_download', $user_id, $point, '파일 다운로드 포인트 차감' );
        }
    }

    궁금한점은, 기존 다운로드했던 파일은 추가 포인트 차감이 되지 않도록 하고 싶은데, 방법이 궁금합니다.

    빠른 피드백 감사드립니다 ^-^~

  • 안녕하세요.

    기존 다운로드한 파일을 다시 다운로드해도 포인트 차감이 되지 않게 하시려면

    워드프레스 User Meta를 활용해보시겠어요?

    update_user_meta 함수를 활용하여 게시글 고유 uid를 배열로 저장하고

    get_user_meta 함수로 체크를 하는 방법입니다.

    각 함수에 대한 자세한 내용은

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

    https://developer.wordpress.org/reference/functions/update_user_meta/
    https://developer.wordpress.org/reference/functions/get_user_meta/

    고맙습니다.

  • 위 내용 중 (아래)   아래 코드를 화이클 다운로드 스킨/ funtion.php 에 적용시키는것인가요?

    게시판에서 첨부파일별로 포인트를 입력하고 다운로드시 차감되게 구현하려고 합니다.

     

    -------------------------

    KBoard 내장 액션인 kboard_file_download 액션을 활용하시면

    첨부파일 다운로드 시 코드를 추가하고 실행되게 하실 수 있습니다.

    기본 사용법은 아래와 같습니다.

    add_action('kboard_file_download', 'kboard_file_download_2020_01_10', 10, 4);
    function kboard_file_download_2020_01_10($file_info, $content, $board, $comment){
    	// 이곳에 코드를 추가해보세요.
    }
  • 테마의 functions.php 파일에 코드를 추가하거나 Code Snippets 플러그인을 사용해서 코드를 추가할 수 있습니다.

    kboard_file_download 액션을 활용해서 게시글마다 첨부파일 다운로드 시

    차감되는 포인트를 다르게 적용하시려면 차감 포인트를 입력할 수 있는 필드도 추가해주셔야 합니다.

     

    입력 필드 설정을 지원하는 스킨을 사용 중이시라면

    워드프레스 관리자 -> KBoard -> 게시판 목록 -> 게시판 선택 -> 입력필드 설정 탭에서

    필드를 추가하실 수 있습니다.

     

    입력 필드 설정을 지원하지 않는다면 이전 댓글의 내용들을 참고해보시겠어요?

    고맙습니다.

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요