배송 완료 후 포인트 부여가 되지 않습니다.
본문
//------------------------------------------------------------------------------
// 주문포인트를 적립한다.
// 설정일이 지난 포인트 부여되지 않은 배송완료된 장바구니 자료에 포인트 부여
// 설정일이 0 이면 주문서 완료 설정 시점에서 포인트를 바로 부여합니다.
//------------------------------------------------------------------------------
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'];
$po_content = "주문번호 {$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']}");
}
sql_query("update {$g5['g5_shop_cart_table']} set ct_point_use = '1' where ct_id = '{$row['ct_id']}' ");
$od_row2 = sql_fetch("select * from {$g5['g5_shop_default_table']}");
if(strcmp($od_row2['de_gibu_type'], "퍼센트")){
$percent = (int)$od_row2['de_gibu_percent'] * (int)$od_row['od_cart_price'];
sql_query("update {$g5['g5_shop_order_table']} set od_gibu = '$percent' where od_id = '{$row['od_id']}'");
}
if(strcmp($od_row2['de_gibu_type'], "금액")){
$money = (int)$od_row2['de_gibu_money'];
sql_query("update {$g5['g5_shop_order_table']} set od_gibu = '$money' where od_id = '{$row['od_id']}'");
}
}
}
이 소스는 lib/shop.lib.php에 있는 배송완료후 n일 이후로 포인트가 부여 되는 함수입니다.
추가적으로 제가 일부 판매 금액은 '기부금'형태로 해서 해당 테이블에 수정된 값을 집어 넣으려 하는데 저 쿼리 부분도 안되더 군요ㅠ
답변 부탁드립니다.
p.s 추가적으로 만약 포인트가 부여 된다면 부여된 포인트를 확인할수 있는 페이지도 알려 주시면 감사하겠습니다.
!-->답변 2
포인트가 부여되는 파일 -> adm/shop_admin/orderform.php 15라인
포인트 보는 페이지 -> adm/point_list.php
입니다.
포인트 반영은 관리자페이지에서 반영 기간을 설정한 기간에 맞춰서 작동됩니다.
0으로 입력하시면 주문시 바로 포인트 지급됩니다. 참고하세요.
답변을 작성하시기 전에 로그인 해주세요.