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

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

QA

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

본문

안녕하세요?

영카트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 절에서는 요청하신 조건만 표기한 것으로 카테고리 및 다른 기타의 목록을 불러오기 위한 조건들은 따로 지정하셔야 합니다.  

답변을 작성하시기 전에 로그인 해주세요.
전체 4

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT