회원 레벨별로 상품 노출을 제한하고 싶습니다.

회원 레벨별로 상품 노출을 제한하고 싶습니다.

QA

회원 레벨별로 상품 노출을 제한하고 싶습니다.

답변 3

본문

안녕하세요?

영카트5를 이용해서 사이트 제작중입니다.

 

회원 레벨별로 상품 노출을 제한하고 싶습니다.

 

우선, 관리자 페이지에서 상품관리의 여분필드를 이용해서 "주문가능회원등급" 을 설정했습니다.

예를 들어, A상품의 경우, 상품관리의 여분필드중 하나에 3 이라고 적어 두었습니다.

그러면 A상품은 레벨3 이상 회원만 볼 수 있어야 합니다.

 

상품 상세보기에서 레벨 제한은 할 수 있을것 같은데요...

리스트에서 조차 보이지 않게 하려니, 복잡하네요.

php 는 좀 안다고 생각했는데 상품 리스트 출력하는 부분의 소스를 보니 클래스를 이용하네요.

그래서 머리 아파하고 있습니다. 제 내공은 아직도 한없이 부족한가 봅니다.

 

소스를 잘 살펴보니... $list->set_query 를 이용하면 뭔가 될것 같긴한데...

정확하게 어찌해야 할지 좀 막막하네요...

 

도움 주시면 정말 감사감사 드리겠습니다~!! 

이 질문에 댓글 쓰기 :

답변 3

lib/shop.lib.php에서 function run() 부분을 찾으세요

globla ~~다음 행에 추가하세요

 

$where[] = " 여분필드중 하나 >= '$member[mb_level]' "; //여분필드중 하나 --> it_1 ~ it_10 중 하나

 

 

 

이정도는 간단하게 설명을 드릴 수가 없고 제작의뢰를 하시거나 따로 작업을 진행 하셔야 할 것 같네요..

단순히 리스트에서 출력을 막는게 아니라 상품을 가져오는 쿼리 부분을 수정해야 할 것 같아요.. 

/shop/list.php 에서 목록을 불러오기 위해 쿼리를 만드는 $list->set_category, $list->set_view 등을 무시하고 (주석처리 또는 삭제) set_query 로 쿼리를 만드시면 되구요.

쿼리에서 요청하신 사항만 말씀드리자면 "주문가능회원등급"이 지정된 여분필드가 it_1 이라 가정했을때

아래와 같이 하시면 될것으로 보이네요.

$sql = " select * from {$g5['g5_shop_item_table']} where it_1 >= '{$member['mb_level']}'";

$list->set_query($sql);

 

where 절에서는 요청하신 조건만 표기한 것으로 카테고리 및 다른 기타의 목록을 불러오기 위한 조건들은 따로 지정하셔야 합니다.  

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
  • 질문이 없습니다.
전체 0
© SIRSOFT
현재 페이지 제일 처음으로