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

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

QA

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

답변 1

본문

안녕하세요.

 

서브도메인을 회원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' 이 되어야할 것 같군요 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 0
© SIRSOFT
현재 페이지 제일 처음으로