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