회원 최대 포인트 획득 제한
본문
하루 획득 가능 포인트는 다른 분께서 도움을 주셨는데요.
이것에 더해서 총 보유 할 수 있는 최대 포인트를 지정해서 제한하려고 하는데
어떻게 수정하면 될까요 ?
가령, 회원당 하루에 30포인트 까지만 최대로 포인트를 받는데,
다음 날 다시 30, 다음 날 다시 30 이렇게 누적되다가
누적 최대치가 300에 닿으면 날이 바뀌어도 소모 전 까지는 추가 누적이 되지 않도록 할 수 있으면 합니다.
/lib/common.lib.php
// 포인트 부여
function insert_point($mb_id, $point, $content='', $rel_table='', $rel_id='', $rel_action='', $expire=0, $repeat=0)
{
global $config;
global $g5;
global $is_admin;
// ★ 여기부터
// 1일 지정 포인트 이상 보유시 return
$limit_point = '30'; // 제한점수 수정
$sql = "select SUM(po_point) as point FROM `{$g5['point_table']}` WHERE mb_id ='{$mb_id}' and TO_DAYS(po_datetime) = TO_DAYS('" . G5_TIME_YMDHIS . "')";
$today_point = sql_fetch($sql);
if($point > 0 && $today_point['point'] >= $limit_point) { return 0; }
// 여기까지 ★
// 포인트 사용을 하지 않는다면 return
답변 3
하루 최대치 제한 위에 해당 소스를 붙이시면 될거 같네요.
/ ★ 여기부터
// 1일 지정 포인트 이상 보유시 return
$limit_point = '300'; // 제한점수 수정
$sql
= "select SUM(po_point) as point FROM `{$g5['point_table']}` WHERE
mb_id ='{$mb_id}' ";
$total_point = sql_fetch($sql);
if($point > 0 && $total_point['point'] >= $limit_point) { return 0; }
// 여기까지 ★
이렇게 하시면 될거 같네요.
날짜 비교를 제거하시면 총포인트가 되실거 같습니다.
// ★ 여기부터
// 1일 지정 포인트 이상 보유시 return
$limit_point = '300'; // 제한점수 수정
$sql
= "select SUM(po_point) as point FROM `{$g5['point_table']}` WHERE
mb_id ='{$mb_id}' ";
$total_point = sql_fetch($sql);
$total_point['point'] =
$total_point['point'] + $point; // 합산포인트 + 현재포인트
if($point > 0 && $total_point['point'] >= $limit_point) { return 0; }
// 여기까지 ★
해당 부분을 추가하면 전체포인트 + 현재추가포인트를 합산한 포인트가 제한보다
클경우 적립되지 않도록 처리할수 있습니다. 그대신 제한포인트까지 적립이 되지 않음
// ★ 여기부터
// 1일 지정 포인트 이상 보유시 return
$limit_point = '300'; // 제한점수 수정
$sql
= "select SUM(po_point) as point FROM `{$g5['point_table']}` WHERE
mb_id ='{$mb_id}' ";
$total_point = sql_fetch($sql);
$total_point_sum =
$total_point['point'] + $point; // 합산포인트 + 현재포인트
if (
$total_point_sum
>= $limit_point ) {
$point =
$limit_point -
$total_point['point']
;
}
if($point > 0 && $total_point['point'] >= $limit_point) { return 0; }
// 여기까지 ★
전체포인트 + 현재적립포인트가 제한포인트보다 클경우
제한포인트 - 현재적립포인트를 계산하여 전체 포인트를 제한포인트까지는
적립하게 하는 소스입니다.
실제 실행은 안해봤는데 참고하셔서 고쳐쓰시면 될거 같습니다.
답변을 작성하시기 전에 로그인 해주세요.