누적 주문금액에 따라 레벨업 할려고 합니다.
본문
누적 주문금액에 따라 권한 자동 올리기 할려고 합니다.
포인트 획득에 따른 자동등업 소스를 아래처럼 수정햇는데 자동등업이 작동 하지 않습니다.
어디가 문제 인지 고수님 도와주세요
감사 합니다.
$mb_level = sql_fetch(" select mb_level from {$g5['member_table']} where mb_id = '$mb_id' ");
if($mb_level['mb_level'] < 9){
if($od_cart_price <= 300000){ //2000 포인트 이하면 권한 2
$level_up = 2;
}else if($od_cart_price <= 1000000){
$level_up = 3;
}else if($od_cart_price <= 5000000){
$level_up = 4;
}else if($od_cart_price <= 10000000){
$level_up = 5;
}else if($od_cart_price <= 30000000){
$level_up = 6;
}else if($od_cart_price <= 50000000){
$level_up = 7;
}else if($od_cart_price <= 100000000){
$level_up = 8;
}
sql_query(" update {$g5['member_table']} set mb_level = '$level_up' where mb_id = '$mb_id' ");
}
답변 4
위의 소스를 어느 파일에서 실행하는지에 따라서 다릅니다.
$od_cart_price 와 $mb_id 값이 있는지 먼저 체크해보세요.
echo $od_cart_price.' / '.$mb_id;
sql문에 중가로가 빠져서 그런거아닐까요?
$mb_level = sql_fetch(" select mb_level from {$g5['member_table']} where mb_id = '{$mb_id}' ");
sql_query(" update {$g5['member_table']} set mb_level = '{$level_up}' where mb_id = '{$mb_id}' ");
1. 회원별로 $od_cart_price 합계를 구해야 하는데 코드는 어디있나요?
2. $mb_id는 어떻게 구해오는지
3. 자동 등업이라면 extend폴더 내에서 실행 되어야 할텐데 어떤 화일에서 실행하도록 하였는가요?
질문이 상세해야 답변이 가능 합니다
포인트 등업코드를 수정하면 당연히 안되죠.
회원의 누적구매량 $od_* 변수를 가져올수 없으니까요..
그리고 어디에 넣었는지 모르겠는데 저렇게 하면
계속 계산을 해야하니까 안좋은 방법입니다.
extend 폴더에 php 파일 하나 만들어서 아래 코드를 넣으세요.
회원만 업데이트를 진행하며
전후 레벨이 같다면 실행하지 않습니다.
기본환결설정의 여분필드 1 (cf_1)에 업데이트한 날짜를 기록하여 하루에 한번만 업데이트를 수행합니다.
<?php
if (!defined('_GNUBOARD_')) exit;
// 회원만 실행
if (!$is_member) return;
// 24시간 체크 - cf_1에 마지막 업데이트 날짜 저장
$last_update = isset($config['cf_1']) ? $config['cf_1'] : '';
$current_time = time();
// 마지막 업데이트로부터 24시간(86400초) 경과 체크
if ($last_update && ($current_time - strtotime($last_update)) < 86400) {
return; // 24시간이 지나지 않았으면 실행 안함
}
// 현재 로그인한 회원의 누적 구매금액 조회
$sql = "SELECT SUM(od_receipt_price) as total_amount
FROM {$g5['g5_shop_order_table']}
WHERE mb_id = '{$member['mb_id']}'
AND od_status = '완료'
AND od_receipt_price > 0";
$result = sql_fetch($sql);
$total_amount = $result['total_amount'] ? $result['total_amount'] : 0;
// 누적 금액에 따른 레벨 결정
$new_level = 2; // 기본 레벨
if ($total_amount >= 500000) {
$new_level = 7;
} elseif ($total_amount >= 400000) {
$new_level = 6;
} elseif ($total_amount >= 300000) {
$new_level = 5;
} elseif ($total_amount >= 200000) {
$new_level = 4;
} elseif ($total_amount >= 100000) {
$new_level = 3;
}
// 현재 레벨과 다르면 업데이트
if ($member['mb_level'] != $new_level) {
$sql_update = "UPDATE {$g5['member_table']}
SET mb_level = '{$new_level}'
WHERE mb_id = '{$member['mb_id']}'";
sql_query($sql_update);
}
// 마지막 업데이트 시간 저장 (cf_1에 현재 날짜 저장)
$sql_config = "UPDATE {$g5['config_table']}
SET cf_1 = '" . date('Y-m-d H:i:s') . "'";
sql_query($sql_config);
?>
!-->