안녕하세요 언제나 케이보드가 최고라는데 카톡에서나 외부에서나 앞장서서 케이보드의 우수함을
항상 어필하고있는 케이보드팬입니다. 정말 왠만하면 스스로 처리하려고 했는데
이번은 몇일을 붙잡고있어도 해결이 안되어 질문을 드립니다ㅠ
퍼스트 컨텐츠몰에 기능을 추가하는도중 막혔는데, 그 내용은 아래와 같습니다.
wp_kboard_order_item_meta 디비에서
현재 접속한 회원에 아이디값으로, 이번달에 작성된것중,
price가격의 합을 구하는 디비를 작성하려고 하는데, 몇일밤을 헤매고 있지만
도저히 답이 안나옵니다ㅠㅠ
아래에 내용을 퍼스트 컨텐츠몰에 document.php에 추가하였습니다.
<?php
$current_user = wp_get_current_user();
$userids=$current_user->ID;
<?php include $_SERVER["DOCUMENT_ROOT"]."/dbconfig.php"; //디비접속정보를 넣어둔 파일을 연결하였습니다.
$sql = "SELECT * FROM wp_kboard_order_item_meta WHERE meta_value ='{$userids}'
AND meta_key='order_user_id'
ORDER BY order_item_id DESC";
$result = mysqli_query($conn, $sql);
while($row = mysqli_fetch_array($result)){;
echo $row['order_item_id'].'<br>';}
?>
당연히 출력은 현재 접속한 아이디가 구매한 order_item_id가 주루룩 나열이 됩니다…
여기서 sum으로 order_item_id에 합은 구할수있었지만,, 그 합을 구하는것은 의미가 없기에..ㅠ
case와 in , join등 배운대로 최대한 응용해서 이용해보려했지만 계속 전부 실패하고 있습니다ㅠㅠ
제가 표현하고 싶은것은 아래와 같습니다.
wp_kboard_order_item_meta 테이블에서
현재 로그인 한 아이디와 일치하고, 구매기간은(메타키=datetime) 이번달에 해당해며(12월이면, 12월, 1월이면 1월, 2월이면 2월), meta_key에 order_status가 paid (즉 구매완료된 목록)인 경우에
meta_key=price에 meta_value값의 합을 구하고 싶습니다.
즉 표현하고자하는것은, (이번달 구매액이 10만원 이상일경우, 적립포인트 1%, 이번달 구매액이 20만원 이상일경우 적립포인트 2% 이런식으로 추가개발을 하려고 하고있습니다)
이번달 구매 총합을 받아오는것인데, 디비를 컨트롤 해야하는 부분이라 이부분에서 막혀서 못하고 있습니다ㅠㅠ
언제나 케이보드가 최고라는 알림에 앞장서는 찐 팬중 한명으로, 이번달 구매액 총합을 구하는 부분에 도움좀 꼭 부탁드려봅니다ㅠㅠ
와 역시 정말... 케이보드 자체로 안되는게 없네요...
언제나 너무 감사드립니다. 책 찾아보고 해서 했다면 일주일이 넘게 걸렸을걸 바로 뚝딱 해결해주시네요ㅠㅠ
앞으로도 언제나 케이보드 우수성을 알리는데 더욱 최선을 다하는 찐 팬이 되겠습니다!
언제나 존경하고 감사드립니다ㅠㅠ
안녕하세요~^^
KBoard 플러그인에 내장되어 있는 KBOrderItem 클래스를 활용해보시겠어요?
올려주신 코드를 참고하여 저희 테스트 서버에서
KBOrderItem 클래스를 활용해서 코드를 수정해봤습니다.
아래 코드를 활용해보시겠어요?
<?php
global $wpdb;
$current_user = wp_get_current_user();
$userids=$current_user->ID;
$results = $wpdb->get_results("SELECT * FROM `{$wpdb->prefix}kboard_order_item_meta` WHERE `meta_value`='{$userids}'
AND `meta_key`='order_user_id' ORDER BY `order_item_id` DESC");
$price = 0;
foreach($results as $item){
$order_item = new KBOrderItem();
$order_item->initWithID($item->order_item_id);
if($order_item->order_status == 'paid' && substr($order_item->datetime, 0, 6) == date('Ym', current_time('timestamp'))){
$price += $order_item->price;
}
}
?>
위의 코드를 적용하면 사용자 아이디로 주문 ID를 모두 가져온 후
KBOrderItem 클래스를 활용해서 결제 상태가 paid이면서
결제 날짜가 이번 달인 주문의 가격이 $price 변수에 합쳐져서 계산됩니다.
확인해보시겠어요?
고맙습니다.