포인트 만료일이 지나도 포인트가 마이너스 되지 않네요~ 부탁드립니다. ㅠㅠ
본문
사이트를 운영한지 1년이 딱 되서
회원들의 포인트 등을 살펴보는데
만료일이 8월19일 이전의 모든 포인트가 그대로 살아있습니다.
테스트 아이디 여러개로 체크 해봤는데도
만료일이라고는 표시되어 있고, 만료는 안되어 있고 여전히 포인트는 그대로 살아있더락요.
무언가 잘못 건들인것 같긴한데... 기억이 나질 않습니다.
혹시나해서 여기 사이트 오랜만에 로그인해보니
로그인 싯점으로 만료포인트가 체크되어 만료 -8500 이런식으로 뜨더라구요.
제 홈페이지는 날짜를 모르는걸까요?ㅠㅠ
왜 만료일은 되어 있는데
이후 로그인해도 만료가 되지 않는걸까요?~ㅠㅠ
어디를 손봐야하는지
부탁드립니다.
답변 2
lib\common.lib.php 파일에 아래부분이 그 역할을 합니다.
// 소멸포인트 삭제
function delete_expire_point($mb_id, $point)
// 유효기간이 있을 때 기간이 지난 포인트 expired 체크
$sql = " update {$g5['point_table']}
set po_expired = '1'
where mb_id = '$mb_id'
and po_expired <> '1'
and po_expire_date <> '9999-12-31'
and po_expire_date < '".G5_TIME_YMD."' ";
sql_query($sql);
!-->!-->
// 소멸포인트 삭제 function delete_expire_point($mb_id, $point) { global $g5, $config; $point1 = abs($point); $sql = " select po_id, po_use_point, po_expired, po_expire_date from {$g5['point_table']} where mb_id = '$mb_id' and po_expired = '1' and po_point >= 0 and po_use_point > 0 order by po_expire_date desc, po_id desc "; $result = sql_query($sql); for($i=0; $row=sql_fetch_array($result); $i++) { $point2 = $row['po_use_point']; $po_expired = '0'; $po_expire_date = '9999-12-31'; if($config['cf_point_term'] > 0) $po_expire_date = date('Y-m-d', strtotime('+'.($config['cf_point_term'] - 1).' days', G5_SERVER_TIME)); if($point2 > $point1) { $sql = " update {$g5['point_table']} set po_use_point = po_use_point - '$point1', po_expired = '$po_expired', po_expire_date = '$po_expire_date' where po_id = '{$row['po_id']}' "; sql_query($sql); break; } else { $sql = " update {$g5['point_table']} set po_use_point = '0', po_expired = '$po_expired', po_expire_date = '$po_expire_date' where po_id = '{$row['po_id']}' "; sql_query($sql); $point1 -= $point2; } } } // 포인트 내역 합계 function get_point_sum($mb_id) { global $g5, $config; if($config['cf_point_term'] > 0) { // 소멸포인트가 있으면 내역 추가 $expire_point = get_expire_point($mb_id); if($expire_point > 0) { $mb = get_member($mb_id, 'mb_point'); $content = '포인트 소멸'; $rel_table = '@expire'; $rel_id = $mb_id; $rel_action = 'expire'.'-'.uniqid(''); $point = $expire_point * (-1); $po_mb_point = $mb['mb_point'] + $point; $po_expire_date = G5_TIME_YMD; $po_expired = 1; $sql = " insert into {$g5['point_table']} set mb_id = '$mb_id', po_datetime = '".G5_TIME_YMDHIS."', po_content = '".addslashes($content)."', po_point = '$point', po_use_point = '0', po_mb_point = '$po_mb_point', po_expired = '$po_expired', po_expire_date = '$po_expire_date', po_rel_table = '$rel_table', po_rel_id = '$rel_id', po_rel_action = '$rel_action' "; sql_query($sql); // 포인트를 사용한 경우 포인트 내역에 사용금액 기록 if($point < 0) { insert_use_point($mb_id, $point); } } // 유효기간이 있을 때 기간이 지난 포인트 expired 체크 $sql = " update {$g5['point_table']} set po_expired = '1' where mb_id = '$mb_id' and po_expired <> '1' and po_expire_date <> '9999-12-31' and po_expire_date < '".G5_TIME_YMD."' "; sql_query($sql); }
답변을 작성하시기 전에 로그인 해주세요.