Welcart標準で “usces_member_history()” というテンプレートタグ(関数)で購入履歴を取得出来るようになっていますが、キャンセルの注文は含まれないようでした。
“usces_member_history()” の中で呼び出している “get_member_history()” を覗いてみるとキャンセルの注文は除外するようになっていましたので、”get_member_history()” をベースに新規関数を独自に作って対応することにしました。
会員IDに該当する購入情報の履歴を全て取得する
以下の関数では、キャンセル含むすべてのステータスの購入履歴を取得することに加えて元々購入履歴のテーブルで情報をもっている商品の合計金額、送料、消費税、配送先のフィールドも合わせて取得するようにしました。
/**
* 会員IDに該当する購入情報の履歴を全て取得する
*/
function ag_get_member_history($mem_id)
{
global $wpdb;
$order_table = $wpdb->prefix . "usces_order";
$query = $wpdb->prepare("SELECT * FROM $order_table WHERE mem_id = %d ORDER BY order_date DESC", $mem_id);
$results = $wpdb->get_results( $query );
$res = array();
foreach ( $results as $value ) {
$res[] = array(
'ID' => $value->ID,
'cart' => usces_get_ordercartdata( $value->ID ),
'condition' => unserialize($value->order_condition),
'total_price' => $value->order_item_total_price,//商品合計金額
'shipping_charge' => $value->order_shipping_charge,//送料
'tax' => $value->order_tax,//消費税
'getpoint' => $value->order_getpoint,
'usedpoint' => $value->order_usedpoint,
'discount' => $value->order_discount,
'shipping_charge' => $value->order_shipping_charge,
'payment_name' => $value->order_payment_name,
'cod_fee' => $value->order_cod_fee,
'tax' => $value->order_tax,
'order_status' => $value->order_status,
'date' => mysql2date(__('Y/m/d'), $value->order_date),
'order_date' => $value->order_date,
'order_delidue_date' => $value->order_delidue_date,
'order_delivery' => unserialize($value->order_delivery), //配送先
'order_delivery_method' => $value->order_delivery_method,
'order_delivery_method_name' => usces_delivery_method_name( $value->order_delivery_method, 'return' ),
'order_delivery_date' => $value->order_delivery_date,
'order_modified' => $value->order_modified
);
}
return $res;
}
動作環境情報
エックスサーバー(x10) PHP 7.3.16 MySQL 5.7 WordPress 5.4.1 Welcart e-Commerce 1.9.30
コメント