제품 구매를 한 고객만 리뷰글을 쓰게하고싶습니다.

안녕하세요! 현재 오션 별점 스킨으로 리뷰게시판을 운영중인데요!

 

리뷰글을 쓸 수 있는 기준은 제품을 구매하면 리뷰글을 작성할 수 있는데요.

현재 문제점은

1번 구매한 제품에 대해 리뷰를 작성할 수 있는 횟수는 1번이여야 하는데 무제한으로 글을 작성하게 되어있으며, 

제품을 구매한 이력이 없는 고객도 리뷰글을 쓸 수 있게 되어있습니다.

 

해결하고자 하는 방안은

1. 제품을 구매했을 때 리뷰글을 쓸 수 있으며 제품을 구매할 시 작성할 수 있는 리뷰글 갯수는 1개입니다.

EX) 크림 제품 1개 구매 -> 리뷰글 1개 / 크림 제품 1개 재구매 -> 리뷰글 1개 / 크림, 세럼 제품 1개 씩 구매 -> 제품당 리뷰글 1개

 

2. 제품을 구매하지 않은 고객은 리뷰글을 쓸 수 없게 하고싶습니다. (리뷰 쓰기 버튼을 보이지 않게)

 

상품 페이지 링크입니다.

http://moduwith.dothome.co.kr/shop/%EC%A0%84%EC%B2%B4/%EB%A7%88%EC%8A%A4%ED%81%AC-%ED%8C%A9/cellpiderm_mask/

 

해당 페이지내에 있는 REVIEW Tap을 누르게되면 리뷰게시판이 나오게됩니다.

 

방법이 있을까요?

 

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

  • 이전 댓글에 안내해드린 코드는 제품을 한 번 구매하면 제품 구매 횟수에 상관없이

    게시글을 한 번만 작성할 수 있는 코드입니다.

    저희가 모든 코드를 커뮤니티에서 만들어드리긴 현실적으로 불가능합니다.

     

    코드를 수정하기 어렵거나 수정해야 하는 부분이 많다면

    프로젝트 의뢰에 상세한 내용을 등록해보세요.

    https://www.cosmosfarm.com/project

    고맙습니다.

  • 답변 감사드립니다.

     

    알려주신 코드는 제품 구매 횟수와 상관없이 제품당 1번만 게시글을 작성할 수 있게 하는 코드인가요?


     

    제품을 구매할 때마다 리뷰글을 쓸 수 있으며,

    구매한 제품에 대한 리뷰글은 1개만 작성할 수 있게 하고싶습니다. 

     

    ex) 02월 제품 구매 -> 구매 1회 = 리뷰글 1개 

         04월 제품 구매 -> 동일 제품구매 1회 = 동일 제품구매 리뷰글 1개

     

  • 한 제품 당 1번의 상품평만 작성되게 하시려면

    기존의 코드 대신 아래의 코드로 교체해보시겠어요?

    add_action('kboard_pre_document_insert', 'kboard_pre_document_insert_20210219', 10, 4);
    function kboard_pre_document_insert_20210219($content_uid, $board_id, $content, $board){
    	if($board_id == '1'){ // 실제 게시판 id로 적용해보세요.
    		$user = wp_get_current_user();
    		
    		$check = wc_customer_bought_product($user->user_email, $content->member_uid, $content->category1);
    		if(!$check){
    			echo '<script>alert("상품을 구매한 사용자만 글을 작성할 수 있습니다.")</script>';
    			echo '<script>window.history.back()</script>';
    			exit;
    		}
    		
    		$list = new KBContentList($board_id);
    		$list->category1 = $content->category1;
    		$list->member_uid = $content->member_uid;
    		$results = $list->getList();
    		if($results){
    			echo '<script>alert("상품평은 1회만 작성하실 수 있습니다.")</script>';
    			echo '<script>window.history.back()</script>';
    			exit;
    		}
    	}
    }

    고맙습니다.

  • 인터넷 쿠키와 데이터등 삭제 후 다시 실행하니 코드가 정상적으로 동작됩니다!

     

    한 가지더 여쭙고 싶은 부분이 있는데요!

    지금 작동되는걸 확인해보니 구매 후 계속해서 리뷰를 남길 수 있게 되어있는데요~

    리뷰글을 쓸 수 있는 횟수를 정할 수는 없을까요??

    예를들어 제품을 1번 구매할 때 제품 당 리뷰글 1번만 작성 가능하게요!

     

  • wc_customer_bought_product 함수는 우커머스에서

    구매자가 상품을 구매했는지 체크하는 함수입니다.

    해당 코드를 적용하면 저희 쪽 테스트 서버에서는 정상적으로 동작하는 것을 확인했습니다.

    해당 코드가 정상적으로 동작하지 않는다면

    우커머스 문서 쪽에 관련 자료가 있는지도 확인해보시겠어요?

    https://docs.woocommerce.com/

    고맙습니다.

  • 답변 감사드립니다.

     

    알려주신 코드를 입력 후 체크해보았는데요.

     

    제품을 구매한 고객도 상품을 구매한 사용자만 글을 작성할 수 있습니다. 라는 문구가 뜹니다.

  • 우커머스 상품에 KBoard 연결 시

    상품을 구매한 사용자만 글을 쓸 수 있게 하시려면

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

    add_action('kboard_pre_document_insert', 'kboard_pre_document_insert_20210219', 10, 4);
    function kboard_pre_document_insert_20210219($content_uid, $board_id, $content, $board){
    	if($board_id == '1'){ // 실제 게시판 id로 적용해보세요.
    		$user = wp_get_current_user();
    		
    		$check = wc_customer_bought_product($user->user_email, $content->member_uid, $content->category1);
    		if(!$check){
    			echo '<script>alert("상품을 구매한 사용자만 글을 작성할 수 있습니다.")</script>';
    			echo '<script>window.history.back()</script>';
    			exit;
    		}
    	}
    }

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

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

    고맙습니다.

  • 답변 감사드립니다.

     

    권해주신 액션코드를 잘 모르겠어서

    어떻게 사용해야하는지 알려주실 수 있으실까요?

  • 안녕하세요~^^

    우커머스 상품에 KBoard 게시판 연결할 때

    KBoard 카테고리1에 우커머스 상품 ID와 연동하고 있습니다.

    게시글 등록 전에 코드를 추가하고 체크를 하시려면

    kboard_pre_document_insert 액션을 활용해보시겠어요?

    kboard_pre_document_insert 액션은 아래의 코드를 활용해보세요.

    add_action('kboard_pre_document_insert', 'kboard_pre_document_insert_20210218', 10, 4);
    function kboard_pre_document_insert_20210218($content_uid, $board_id, $content, $board){
    	// 이곳에 코드를 추가해보세요.
    }

     

    사용자가 해당 상품을 구매했는지 체크하시려면

    우커머스 내장 함수인 wc_customer_bought_product 함수를 활용해보시겠어요?

    자세한 내용은 아래 링크를 참고 부탁드립니다.

    http://hookr.io/functions/wc_customer_bought_product/

    고맙습니다.

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