테스트 사이트 - 개발 중인 베타 버전입니다

포인트 등급별 가격에 맞게 차등 퍼센트로 지급하고 싶을때

· 16년 전 · 525 · 4

아무리 뒤져도 팁이 없고 질문답변을 봐도 대충 적혀 있어서
정리해서 올려봅니다.

가격이 등급별로 할인률적용하여 적혀 있다고 볼때
할인율된 가격대로 %로 포인트를 주는게 합리적이겠지요??
그래서 생각해서 고쳐보았습니다.

(1)
우선 DB부분에 필드를 추가해주세요.
추가 필드는 it_point2, it_point3 두개를 추가합니다.

(2)
shop/item.php 파일의 수정
300번줄이하에 줄인것 같은데 제 파일은 수정을 많이 해서 라인수가 맞지 않아서 ;;
<input type=hidden name=it_point value='0' /><!--요넘이 있을겁니다. -->
<!-- 요 밑에 두넘을 추가해 주세요 -->
<input type=hidden name=it_point2 value='0' />
<input type=hidden name=it_point3 value='0' />
<!-- 이 두넘이 꼭 넣어야 하는지는 저도 잘 모르겠지만 ~ 우선 넣어봅니다 ㅋ -->

(3)
basic_point 를 에디터로 검색해서 찾으세요. 500번째이하줄에 있는것 같아요
var basic_point  = parseInt('<?=get_point($it)?>');
//var basic_point  = parseFloat('<?=$it[it_point]?>'); <-- 주석처리하고 위에넘으로 변경요.

(4)
lib/shop.lib.php 파일의 수정
137번줄에
// 포인트를 구한다
function get_point($amount, $point)
{
    return (int)($amount * $point / 100);
}
위에 소스를 아래 소스로 대체 하세요

function get_point($it)
{
 global $member;

    if ($member[mb_level] > 2) // 특별회원
        $point = $it[it_point3];
   
    if ($member[mb_level] == 2 || $point == 0) // 회원가격
        $point = $it[it_point2];

    if ($member[mb_level] == 1 || $point == 0) // 비회원가격
        $point = $it[it_point];

    return (int)$point;
}

(5) 이제 관리자화면에서 포인트넣는곳을 수정할 차례입니다.
adm/shop_adm/itemform.php
포인트 항목 들어가는 곳에 2,3를 넣어주셔야 겠죠
<td><input type=text class=ed name=it_point size=8 value='<?=$it[it_point]?>' style='text-align:right; background-color:#cccccc;'></td>
            <td><input type=text class=ed name=it_point2 size=8 value='<?=$it[it_point2]?>' style='text-align:right; background-color:#DDFEDE;'></td>
            <td><input type=text class=ed name=it_point3 size=8 value='<?=$it[it_point3]?>' style='text-align:right; background-color:#FEDDDD;'></td>

(6) 넣은 후에 회원가격에 따라 자동 적용되어야 하니깐 비회원가격 적는 란에 아래처럼
<input type=text class=ed name=it_amount size=8 value='<?=$it[it_amount]?>' style='text-align:right; background-color:#DDE6FE;' onblur="document.fitemform.it_point2.value=document.fitemform.it_amount2.value*.03;document.fitemform.it_point3.value=document.fitemform.it_amount3.value*.03;">

03표시는 3%를 주라는 겁니다. 5%를 주고 싶으면 05 하시면 되겠죠

(7) 마지막으로 값을 넘겨야 하니깐
adm/shop_admin/itemformupdate.php 파일을 수정하셔야합니다.
271줄에
it_point         = '$it_point',  //이것만 되어 있어요 밑에 줄에
it_point2        = '$it_point2',
it_point3        = '$it_point3',  // 두개를 더 추가하세요.


위 처럼 하시면 정상적으로 등급별 회원 가격에 따라서 %로 포인트가 적용됩니다.
저도 초보라~ 고생하시는 분들 있을까봐~ 그리고 제가 정리가 안되어서 여기 올려놓아야 담에 어떻게 고쳤는지 저도 보니깐 올려놓습니다 ㅎ



댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 4개

이상하게도.. it_point2나 3에 0으로 부여하면 item.php페이지 상에서
노출되는값이 it_point 값으로 노출되네요.
방법이 없을까요..
if ($member[mb_level] == 2 && $point == 0) // 회원가격
$point = $it[it_point2];

if ($member[mb_level] == 1 && $point == 0) // 비회원가격
$point = $it[it_point];

이렇게 저장하세요~ || 대신 &&
필요한 정보를 정말 잘 정리해 주셨네요
파코님 고맙습니다.

위에 처럼하고 로그인한 뒤 구매하기나 장바구니 눌리면
"Error..." 라는 메세지가 뜨네요

cartupdate.php 196줄
// 포인트가 다름
// if ((int)$point !== (int)$_POST[it_point])
// die("Error...");
주석 처리하니깐 에러 않 생기네요

저도 다시 필요하면 보려고 올립니다. ^^
비회원0%,정회원2%,특별회원4%,VIP회원6%

게시글 목록

번호 제목
1214
1208
1205
1198
1196
1195
1187
1181
1179
1178
1174
1162
1152
1149
1145
1124
1123
1116
1507
1114