비회원주문시, 추천인에게 포인트 지급방법

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
비회원주문시, 추천인에게 포인트 지급방법

QA

비회원주문시, 추천인에게 포인트 지급방법

본문

안녕하세요.

 

서브도메인을 회원id로 넣고 추천인을 자동 등록되게 했습니다

 http://sir.co.kr/qa/88505#answer_88506

skin/member/basic/register_form.skin.php 
그래서 현재, 회원들이
회원 가입하여 구매할 때 추천인에게 구매액의 몇%를 포인트로 주게 했습니다.
그런데 비회원이 주문해도 추천인에게 포인트가 적립되도록 하고 싶어서
lib/shop.lib.php 파일에 삽입햇는데, 사이트가 먹통이 되어 버리네요..
비회원이 상품을 구매할 때도 접속 링크는 서브도메인이 유지됩니다.
그래서, 접속주소 중에서 첫번째 "추천인아이디"를 배열로 추출해서
회원 아이디랑 일치하는 경우에
비회원이 구매한 구매액의 일정 %를 포인트를 주고 싶은데요..
고수님들의 조언을 부탁드립니다.​

function save_order_point($ct_status="완료")
{
    global $g5, $default;
    $beforedays = date("Y-m-d H:i:s", ( time() - (86400 * (int)$default['de_point_days']) ) ); // 86400초는 하루
    $sql = " select * from {$g5['g5_shop_cart_table']} where ct_status = '$ct_status' and ct_point_use = '0' and ct_time <= '$beforedays' ";
    $result = sql_query($sql);
    for ($i=0; $row=sql_fetch_array($result); $i++) {
        // 회원 ID 를 얻는다.
        $od_row = sql_fetch("select od_id, mb_id from {$g5['g5_shop_order_table']} where od_id = '{$row['od_id']}' ");
        if ($od_row['mb_id'] && $row['ct_point'] > 0) { // 회원이면서 포인트가 0보다 크다면
            $po_point = $row['ct_point'] * $row['ct_qty'];
            $mb = get_member($od_row['mb_id']);
            $po_content = "소개해 주신 {$mb['mb_id']} 님의 주문번호 {$od_row['od_id']} ({$row['ct_id']}) 배송완료";
            //insert_point($od_row['mb_id'], $po_point, $po_content, "@delivery", $od_row['mb_id'], "{$od_row['od_id']},{$row['ct_id']}");
            //추천인에게 포인트 주기 시작, 윗줄 제거
            if ($mb['mb_recommend']){
                $recom_mb = get_member($mb['mb_recommend']);
                if ($recom_mb['mb_id']){
                    insert_point($recom_mb['mb_id'], $po_point, $po_content, "@delivery", $od_row['mb_id'], "{$od_row['od_id']},{$row['ct_id']}");
                }
            }
            //여기까지는 아주 잘 되는데
            //비회원 구매시 결제액의 몇%를 서브도메인 추천인에게 포인트 주기
            //여기부터 안됨
        }else if{
            $domain_arr = explode('.',$_SERVER[HTTP_HOST]);
            $dom = sql_fetch("select count(*) as cnt from g5_member where mb_id='".$domain_arr[0]."' and mb_level > '2'");
            if ($domain_arr[0] == $dom['mb_id'])
                insert_point($dom['mb_id'], $po_point, $po_content, "@delivery", $od_row['mb_id'], "{$od_row['od_id']},{$row['ct_id']}");
            }
        }
// 추천인에게 포인트주기 삽입 끝
        sql_query("update {$g5['g5_shop_cart_table']} set ct_point_use = '1' where ct_id = '{$row['ct_id']}' ");
    }
}

이 질문에 댓글 쓰기 :

답변 1

25행 if문이 틀렷습니다

if ($od_row['mb_id'] && $row['ct_point'] > 0) {

~~

}else if --> else if( !$row[mb_id] && $row['ct_point'] > 0) 위의 조건문 때문에 이렇게 되어야겠군요

 

그리고 

and mb_level > '2' <---이 부분은 특별한 레벨 조건이 아니라면 and mb_level > '1' 이 되어야할 것 같군요 

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

회원로그인

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