게시판에 myCRED 포인트 표시

안녕하세요? 오랜만에 글을 남김니다.

이번에 굉장히 오래만에 밀린 업데이트를 하고, myCRED 플러그인도 추가로 설치해서 포인트를 활용하고자 하는데요.

모두 설치하고 테스트로 게시판에 글을 올렸는데... 설정한 포인트가 표시가 되질 않습니다.

따로 추가 설정을 해야하는지요?

감사합니다.

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • KBoard 게시판 플러그인과 댓글 플러그인에서 작성자명 옆에

    myCRED 플러그인의 보유 포인트를 표시하시려면

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

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

    add_filter('kboard_user_display', 'my_kboard_user_display', 10, 5);
    function my_kboard_user_display($user_display, $user_id, $user_name, $plugin, $builder){
    	$user_display = $user_display .' ('. number_format(mycred_get_users_cred($user_id)) . ' Point)';
    	
    	return $user_display;
    }

    추가로 아래의 링크도 참고해보시면 도움이 되실 듯합니다.

    https://codex.mycred.me/shortcodes/mycred_my_balance/

    고맙습니다.

  • 안녕하세요~^^

    KBoard 게시판 플러그인에서 포인트를 설정하신 후에

    게시판에 표시하시려면 직접 코드를 추가해주셔야 합니다.

    어떤 포인트(글쓰기 증가 포인트, 글쓰기 감소 포인트 등)를

    게시판의 어느 곳에 표시하시려는지 알려주시면 도움을 드리겠습니다.

    고맙습니다.

  • 아래 첨부 이미지 오류 내용과,

    말씀하신 코드 수정 부분 입니다.

    디버그 부분..

    define('WP_DEBUG', false);  / 코드가 파일에 없습니다.

    define('WP_DEBUG', true); / 입력해 보았습니다.

     

  • 디버그 모드 관련 코드는 wp-config.php 파일에 추가하신 건지요?

    테마 쪽에 추가한 아래의 코드는

    add_filter('kboard_user_display_20200707', 'kboard_user_display_20200707', 10, 5);

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

    add_filter('kboard_user_display', 'kboard_user_display_20200707', 10, 5);

     

    추가하신 코드를 지우면 에러 메시지가 표시되지 않는지요?

    어느 부분에서 문제가 생기는지 확인해보셔야 할 듯합니다.

    /wp-content/debug.log 파일에 에러 메시지를 기록하는 방법도 활용해보셔야 할 듯합니다.

    고맙습니다.

  • Fatal error: Cannot redeclare my_kboard_user_display() (previously declared in /home/u732644658/domains/thema.monster/public_html/test/wp-content/themes/em4u-child/functions.php:49) in /home/u732644658/domains/thema.monster/public_html/test/wp-content/themes/em4u-child/functions.php on line 86

    디버깅 관련 이렇게 표기 됩니다.

  • Fatal error: Cannot redeclare 에러 메시지는

    이전 댓글에도 설명드린 것처럼 PHP 함수명 중복 문제입니다.

    워드프레스 필터는 여러 개 사용할 수 있지만

    PHP 함수명은 중복되면 안 됩니다.

     

    아래와 같은 코드가 중복해서 functions.php 파일에 추가되어 있다면

    add_filter('kboard_user_display', 'my_kboard_user_display', 10, 5);
    function my_kboard_user_display($user_display, $user_id, $user_name, $plugin, $builder){
    	...
    }
    ...
    add_filter('kboard_user_display', 'my_kboard_user_display', 10, 5);
    function my_kboard_user_display($user_display, $user_id, $user_name, $plugin, $builder){
    	...
    }

    아래처럼 함수명이 중복되지 않게 적용해보시겠어요?

    add_filter('kboard_user_display', 'my_kboard_user_display', 10, 5);
    function my_kboard_user_display($user_display, $user_id, $user_name, $plugin, $builder){
    	...
    }
    ...
    add_filter('kboard_user_display', 'my_kboard_user_display1', 10, 5);
    function my_kboard_user_display1($user_display, $user_id, $user_name, $plugin, $builder){
    	...
    }

    고맙습니다.

  • 울랄라~^^ 포인트 표기 잘나오네요.

    1) 적용후 생각치도 못한 메뉴단에 해당 코드들이 난무하네요..(아래 코드 첨부)

     

    megamenu/inc/class-ova-megamenu-process.php on line 350
    
    Notice: Undefined property: stdClass::$menu_height in /home/u732644658/domains/thema.monster/public_html/test/wp-content/plugins/ova-megamenu/inc/class-ova-megamenu-process.php on line 356
    
    Notice: Undefined property: stdClass::$shortcode_megamenu in /home/u732644658/domains/thema.monster/public_html/test/wp-content/plugins/ova-megamenu/inc/class-ova-megamenu-process.php on line 357
    
    Notice: Undefined property: stdClass::$menu_column in /home/u732644658/domains/thema.monster/public_html/test/wp-content/plugins/ova-megamenu/inc/class-ova-megamenu-process.php on line 350
    
    Notice: Undefined property: stdClass::$menu_height in /home/u732644658/domains/thema.monster/public_html/test/wp-content/plugins/ova-megamenu/inc/class-ova-megamenu-process.php on line 356
    
    Notice: Undefined property: stdClass::$shortcode_megamenu in /home/u732644658/domains/thema.monster/public_html/test/wp-content/plugins/ova-megamenu/inc/class-ova-megamenu-process.php on line 357

    2) 게시판리스트에서는 사용자 포인트말고 원래 방식으로 사용자명으로만 노출하는 방법을 알고 싶습니다. 

     

    고맙습니다.

  • 안녕하세요.

    1. 해당 메시지는 ova-megamenu 플러그인 쪽에서 표시하고 있습니다.

    저희가 모든 플러그인의 코드를 알 수 없기 때문에

    해당 플러그인 제작자에게도 문의해보시는 게 좋을 듯합니다.

     

    2. 게시글 리스트에서는 해당 코드를 적용하지 않으시려면

    아래의 코드를 활용해보시겠어요?

    add_filter('kboard_user_display', 'my_kboard_user_display', 10, 5);
    function my_kboard_user_display($user_display, $user_id, $user_name, $plugin, $builder){
    	if(kboard_mod() != 'list'){
    		// 이곳에 코드를 추가해보세요.
    	}
    }

     

    아래의 코드처럼 활용하시면 특정 게시판에만 적용하실 수 있습니다.

    add_filter('kboard_user_display', 'my_kboard_user_display', 10, 5);
    function my_kboard_user_display($user_display, $user_id, $user_name, $plugin, $builder){
    	$board = $builder->board;
    	if($board->id == '1' && kboard_mod() != 'list'){
    		// 이곳에 코드를 추가해보세요.
    	}
    }
    

    고맙습니다.

  • 네, 답변 고맙습니다.

    말씀하신 방법으로 적용해보니 게시판 리스트에서 사용자 부분에 포인트는 없어졌지만...

    작성 게시글 정보 목록을 보니 포인트 나오던 부분도 없어지네요..

    번거롭게해 죄송 스럽지만 요것만 확인 부탁드려봅니다.

    수고하세요.

    게시글리스트 - 포인트 안보임

    작성된 게시글에서는 - 포인트가 보이게 

  • 커뮤니티에서는 100% 해결을 보장해드리긴 어렵습니다.

    이전에 안내해드린 if문에 kboard_mod() != 'list' 조건을 추가하는 방법을 참고하셔서

    코드 수정해보시겠어요?

    if문에 kboard_mod() != 'list' 조건이 추가된다면

    게시글 목록이 아닐 때 실행됩니다.

    if문에 kboard_mod() == 'list' 이런 식으로 조건이 추가된다면

    게시글 목록 페이지에서만 코드가 실행됩니다.

    고맙습니다.

  • 네, 답변 감사합니다.

    그렇다면 유상 의뢰를 요청한다면 어떨까요? 가능한 것일까요?

    의뢰를 하게 된다면...

    1) 포인트금액 표시를 숏코드 형식으로 하여 어느 부분에 입력을 해도 보여지게 하는 방법.

       예) 마이페이지, 개인소개페이지 등등등..

    2) 해당 포인트 관련하여 이전 문의자 분이 남기셨던 게시판을 참고하여 해당 방법으로 게시판에 포인트가 표시되는 방법.

    https://www.habkorea.net/korea-travel-forum/  

    3) 우커머스와 연동가능할지? 예를들어 1000원을 주문하면 1000포인트가 해당 포인트 표시 구간에 자동으로 표시되는 방법.

    답변 부탁드리며 금액과 관련되어 민감한 부분이니 이메일로 답변 주셔도 괜찮습니다.

    답변 부탁드리겠습니다. 고맙습니다.

  • 올려주신 내용만으로는 원인을 파악하기 어렵습니다

    정확한 원인을 파악하기 위해서는 디버그 모드를 활성화해서

    페이지에 어떤 에러 메시지가 표시되는지 확인해주셔야 합니다.

     

    디버그 모드 활성화는 어떻게 진행하셨는지요?

    디버그 모드 활성화하신 방법과 화면에 표시되는 메시지를

    imgur에 이미지로 업로드한 뒤 링크 걸어주시겠어요?

    고맙습니다.

  • 항상 친절한 답변 고맙습니다.^^

    말씀처럼 코드 모두 변경을 해보았으나 여전히 디버깅 오류가 표시가 되므로

    디버깅 부분 역시 참고적으로 해당 코드가 없어서 삽입하고 시도해 보았으나 여전히 입니다.!!!

    알 수가 없는 상태입니다.

  • 스레드봇 (10551 Point) 

    이런 형태로 표시되게 설정 하고 자 합니다. 

  • 잘 적용되네요~ 감사합니다. 

    좋은하루 보네세요~

     

  • 아, 적용하고 나서 보니 댓글에만 점수가 표시되는데, 현재 본 게시판처럼 HaB Korea Tour (7 Point) 본문에도 점수가 나오게 하려면 어떻게 해야 하나요? 

    사실 제가 개발자가 아니다보니, 보여주신 링크를 봐서는 잘 모르겠습니다. ㅜㅜ

  • 안내해드린 코드는 KBoard 게시판 플러그인과 댓글 플러그인 모두 적용이 됩니다.

    현재 사용 중인 KBoard 게시판 플러그인의 버전이 어떻게 되시는지요?

    최신 버전이 아니라면 업데이트 후에 다시 한번 확인해보시겠어요?

    업데이트 방법은 아래의 링크를 참고해보세요.

    KBoard(케이보드) 플러그인 업데이트 방법

    최신 버전을 이용 중이시라면 확인 가능한 페이지 알려주시면 확인해보겠습니다.

    고맙습니다.

  • 최신 버전 사용 중입니다. 확인 가능한 페이지는 아래 링크 참조 바랍니다. 

    https://www.habkorea.net/korea-travel-forum/

     

  • 안녕하세요.

    사용 중인 KBoard 플러그인이 최신 버전이라면

    게시판 스킨도 최신 버전으로 업데이트하신 후에 다시 확인해보시겠어요?

    스킨 업데이트는 워드프레스 관리자 -> 스토어 페이지에서 할 수 있습니다.

    스킨을 플러그인으로 설치하셨다면 구매 목록 및 다운로드 페이지에서 다운로드 가능합니다.

    압축 해제후 FTP로 접속해서 파일을 업로드(덮어쓰기) 해주시면 됩니다. (반드시 백업 후 진행해주세요.)

    고맙습니다.

  • 넵, 스킨까지 업데이트 하니까 정상적으로 모두 표시가 됩니다. 

    감사합니다. 좋은 하루 되세요~

     

  • 이 기능 정말 사용 하고 싶네요. " 유현아부지 (39 Point) "

    그런데 적혀진 해당 코드를 적용하면 "디버깅오류"가 표시 됩니다.

    스킨에 따라 설정 법이 다른것인가요????

    참고적으로 커뮤니티에서 얻은 정보 아래 코드를 functions.php 에 이미 삽입하여 정상 출력을 확인했습니다.

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

    add_action( 'wp_enqueue_scripts', 'em4u_child_scripts' );
    function em4u_child_scripts() {
        wp_enqueue_style( 'parent-style', get_template_directory_uri(). '/style.css' );
    }
    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($board_id == '1' && is_user_logged_in() && !$board->isAdmin()){
            $user_id = get_current_user_id();
            $userdata = get_userdata($user_id);
            
            $date = date('Ymd000000', current_time('timestamp'));
            
            if(in_array('subscriber', $userdata->roles)){
                $content_count = 1;
            }
            else if(in_array('editor', $userdata->roles)){
                $content_count = 3;
            }
            else{
                $content_count = 5;
            }
            
            $count = $wpdb->get_var("SELECT COUNT(*) FROM `{$wpdb->prefix}kboard_board_content` WHERE `member_uid` = '{$user_id}' AND `date` > '{$date}'");
            
            if($count >= $content_count){
                die("<script>alert('사용 가능한 ♪표가 없습니다.'); history.go(-1);</script>");
            }
        }
    }
    add_filter('kboard_user_display', 'my_kboard_user_display', 10, 5);
    function my_kboard_user_display($user_display, $user_id, $user_name, $plugin, $builder){
        if($builder->board->id == '1'){
            $user = get_userdata($user_id);
            $user_roles = $user->roles;
            
            if(in_array('subscriber', $user_roles, true)){
                $user_display = '<img src="/test/wp-content/crotchet1.png">' . $user_display;
            }
            else if(in_array('editor', $user_roles, true)){
                $user_display = '<img src="/test/wp-content/quaver1.png">' . $user_display;
            }
            else{
                $user_display = '<img src="/test/wp-content/minim1.png">' . $user_display;
            }
        }
        
        return $user_display;
    }

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

    조언 부탁드립니다.~

  • 안녕하세요.

    프로그램 코드를 올려야 할 경우 에디터의 코드 스니펫 삽입 기능을 사용해주시길 부탁드립니다. (가독성이 좋아집니다)

    올려주신 코드는 기존 테마 쪽 functions.php 파일에 추가되어 있는 코드인지요?

     

    올려주신 코드 아래에 이전 댓글에 안내되어 있는 코드를 그대로 복사 -> 붙여넣기 할 경우

    PHP 함수명 중복으로 인해 문제가 생깁니다.

    그렇기 때문에 my_kboard_user_display 부분을 kboard_user_display_20200707 이런 식으로 모두 교체해서 확인해보시겠어요?

     

    추가로, 디버그 모드를 활성화하시면 에러 메시지를 확인해보실 수 있습니다.

    워드프레스 에러 확인하기 - 디버그 모드 활성화 방법

    고맙습니다.

  • 유료 기술지원 관련해서는 커뮤니티에서 답변을 드리지 않고 있습니다.

    유료 기술지원은 저희 고객지원 쪽 이메일로 연락 부탁드립니다.

    고맙습니다.

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