누적 주문금액에 따라 레벨업 할려고 합니다.

누적 주문금액에 따라 레벨업 할려고 합니다.

QA

누적 주문금액에 따라 레벨업 할려고 합니다.

본문

누적 주문금액에 따라 권한 자동 올리기 할려고 합니다.

포인트 획득에 따른 자동등업 소스를 아래처럼 수정햇는데 자동등업이 작동 하지 않습니다.

어디가 문제 인지 고수님 도와주세요

감사 합니다.


$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

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);
?>

 

답변을 작성하시기 전에 로그인 해주세요.
전체 129,672 | RSS
QA 내용 검색

회원로그인

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