엑셀 내보내기 문의
안녕하세요.
그누보드4 기반 영카트 사용중입니다.
엑셀 내보내기에서 기존 영카트에서 출력되던 주문 상품 금액, 상품메모가 출력되지 않는데요...
출력되도록 변경하려면 어떻게 해야 되는지요?
바쁘시겠지만 검토 부탁드립니다.
|
답변 2개 / 댓글 2개
그누커머스 1.2.8 버젼에 엑셀 내보내기에서 항목을 추가할수 있도록 코드를 추가했습니다.
그러니 1.2.8 버젼으로 업데이트 하시고, 아래 코드를 참고 해서 항목을 추가해 보세요.
( 주문합계금액과 상점메모란을 추가했습니다. )
아래 코드는 사용하는테마 functions.php 나 또는 다른 적당한 곳에 넣으시면 됩니다.
Copy
add_filter('gnucommerce_get_order_query_fields', 'custom_gnucommerce_add_order_fields'); function custom_gnucommerce_add_order_fields($fields){ $fields[] = 'od_receipt_price'; //결제한금액 $fields[] = 'od_cart_price'; //총 상품 금액 $fields[] = 'od_send_cost'; //배송비 $fields[] = 'od_send_cost2'; //추가 배송비 $fields[] = 'od_shop_memo'; //상점메모 return $fields;} add_action('gnucommerce_export_orderdata', 'custom_gnucommerce_export_xml', 10, 3); function custom_gnucommerce_export_xml($params, $csv, $gc_order){ global $wpdb; if( !class_exists('gnucommerce') ){ //그누커머스 플러그인이 있으면 return; } if ($csv == 'xls'){ //엑셀인경우 extract($params); if( !gc_get_upload_path() ) { gc_alert(__('데이터 쓰기 권한이 없습니다.', GC_NAME)); } $fr_date = gc_date_conv($fr_date); $to_date = gc_date_conv($to_date); $get_order = $gc_order->get_order_query($fr_date, $to_date, $fr_od_id, $to_od_id, $ct_status, $case); extract($get_order); if (!$cnt) gc_alert(__('출력할 내역이 없습니다.', GC_NAME)); /*================================================================================ php_writeexcel http://www.bettina-attack.de/jonny/view.php/projects/php_writeexcel/ =================================================================================*/ include_once(GC_DIR_PATH.'lib/Excel/php_writeexcel/class.writeexcel_workbook.inc.php'); include_once(GC_DIR_PATH.'lib/Excel/php_writeexcel/class.writeexcel_worksheet.inc.php'); $fname = tempnam(gc_get_upload_path().'/tmp/', "tmp-orderlist.xls"); $workbook = new writeexcel_workbook($fname); $worksheet = $workbook->addworksheet(); // Put Excel data $data = array('우편번호', '주소', '이름', '전화1', '전화2', '상품명', '수량', '선택사항', '배송비', '상품코드', '주문번호', '운송장번호', '전하실말씀', '주문합계', '상점메모'); $data = array_map('gc_iconv_euckr', $data); $col = 0; foreach($data as $cell) { $worksheet->write(0, $col++, $cell); } $save_it_id = ''; $i = 1; foreach($results as $row) { if( empty($row) ) continue; if($save_it_id != $row['it_id']) { // 합계금액 계산 $sql = $wpdb->prepare(" select SUM(IF(io_type = 1, (io_price * ct_qty), ((ct_price + io_price) * ct_qty))) as price, SUM(ct_qty) as qty from {$gc['shop_cart_table']} where it_id = %.0f and od_id = %.0f ", $row['it_id'], $row['od_id']); $sum = $wpdb->get_row($sql, ARRAY_A); switch($row['ct_send_cost']) { case 1: $ct_send_cost = '착불'; break; case 2: $ct_send_cost = '무료'; break; default: $ct_send_cost = '선불'; break; } // 조건부무료 if($row['it_sc_type'] == 2) { $sendcost = gc_get_item_sendcost($row['it_id'], $sum['price'], $sum['qty'], $row['od_id']); if($sendcost == 0) $ct_send_cost = '무료'; } $save_it_id = $row['it_id']; $ct_send_cost = gc_iconv_euckr($ct_send_cost); } $row = array_map('gc_iconv_euckr', $row); $worksheet->write($i, 0, ' '.$row['od_b_zip']); $worksheet->write($i, 1, gc_print_address($row['od_b_addr1'], $row['od_b_addr2'], $row['od_b_addr3'], $row['od_b_addr_jibeon'])); $worksheet->write($i, 2, $row['od_b_name']); $worksheet->write($i, 3, ' '.$row['od_b_tel']); $worksheet->write($i, 4, ' '.$row['od_b_hp']); $worksheet->write($i, 5, $row['it_name']); $worksheet->write($i, 6, $row['ct_qty']); $worksheet->write($i, 7, $row['ct_option']); $worksheet->write($i, 8, $ct_send_cost); $worksheet->write($i, 9, ' '.$row['it_id']); $worksheet->write($i, 10, ' '.$row['od_id']); $worksheet->write($i, 11, $row['od_invoice']); $worksheet->write($i, 12, $row['od_memo']); $worksheet->write($i, 13, $row['od_cart_price'] + $row['od_send_cost'] + $row['od_send_cost2']); //주문합계(선불배송비포함) $worksheet->write($i, 14, $row['od_shop_memo']); //상점메모 $i++; } //end foreach $workbook->close(); header("Content-Type: application/x-msexcel; name=\"orderlist-".date("ymd", GC_SERVER_TIME).".xls\""); header("Content-Disposition: inline; filename=\"orderlist-".date("ymd", GC_SERVER_TIME).".xls\""); $fh=fopen($fname, "rb"); fpassthru($fh); @unlink($fname); exit; } }
답변에 대한 댓글 1개
그누커머스에 대한 질문 인가요?
아니면 영카트에 대한 질문인가요?
질문 내용을 보니 그누커머스에 대한 질문 같기도 하고...
안녕하세요.
그누보드4 기반 영카트 사용중입니다. <<< 이렇게 쓰신걸 보니 영카트에 대한 질문글 같기도 하고...
좀 더 명확하게 질문을 올려 주셨으면 합니다.
답변에 대한 댓글 1개
2016-08-03 (수) 10:24:48
그누커머스 질문입니다.^^;;
엑셀주문내역 내보내기에서 항목을 추가하는 방법을 알고 싶습니다.^^
엑셀주문내역 내보내기에서 항목을 추가하는 방법을 알고 싶습니다.^^
답변을 작성하려면 로그인이 필요합니다.