WooCommerce 一直缺少一個(gè)功能,就是在單個(gè)訂單管理頁(yè)面上查看歷史訂單,我們可以通過(guò)這個(gè)功能快速查看客戶過(guò)去的購(gòu)買(mǎi)記錄,購(gòu)買(mǎi)了哪些產(chǎn)品,有多少消費(fèi)、購(gòu)買(mǎi)的頻率是多少。
其實(shí)我們只需一個(gè)簡(jiǎn)單的 PHP 代碼段,就可以添加此功能,下面,我將為大家介紹實(shí)現(xiàn)此功能所需的步驟,為你提供在訂單管理頁(yè)面上顯示訂單歷史詳細(xì)信息所需的 PHP 代碼。

在單個(gè)訂單管理界面,我們添加了一個(gè)新的 「元數(shù)據(jù)框」,其中包含當(dāng)前 WooCommerce 客戶 ID 的最新 10 個(gè)訂單信息
實(shí)現(xiàn)訂單在訂單管理頁(yè)顯示客戶最近10個(gè)訂單的PHP代碼
首先我們使用 add_meta_boxes 鉤子可在 WooCommerce 單筆訂單管理頁(yè)面上添加一個(gè)元數(shù)據(jù)框。add_meta_box函數(shù)會(huì)將標(biāo)題設(shè)置為 “客戶歷史訂單”,并將其與shop_order文章類(lèi)型關(guān)聯(lián)。
wprs_display_order_history 函數(shù)在元數(shù)據(jù)框加載時(shí)觸發(fā),它會(huì)使用 wc_get_order 和 wc_get_orders 函數(shù)相關(guān)的客戶訂單歷史記錄,并以表格格式輸出。
訂單檢索:代碼會(huì)獲取當(dāng)前訂單的客戶 ID,以加載該客戶之前的多達(dá) 10 個(gè)訂單。通過(guò)使用'return' => 'ids',它只檢索訂單 ID,從而加快了查詢速度。
輸出格式化:對(duì)于每個(gè)過(guò)去的訂單,代碼都會(huì)顯示訂單 ID、日期、產(chǎn)品名稱(chēng)(用| 分隔)和狀態(tài),從而在單個(gè)訂單管理頁(yè)面上提供客戶訂單歷史的有序視圖。
add_action( 'add_meta_boxes', function() {
add_meta_box( 'order_history', 'Customer Order History', 'wprs_display_order_history', 'shop_order', 'normal', 'default' );
}, 1 );
function wprs_display_order_history() {
global $post;
$order = wc_get_order( $post->ID );
if ( ! $order ) return;
$orders = array();
if ( $id = $order->get_customer_id() ) {
$orders = wc_get_orders( [ 'customer_id' => $id, 'return' => 'ids', 'limit' => 10 ] );
}
if ( ! $orders ) return;
echo '<table style="width:100%"><thead><tr><th>ID</th><th>DATE</th><th>ITEMS</th><th>STATUS</th></tr></thead><tbody>';
foreach ( $orders as $order_id ) {
$order = wc_get_order( $order_id );
if ( ! $order ) continue;
$items = array();
foreach ( $order->get_items() as $item_id => $item ) {
$items[] = $item->get_name();
}
echo '<tr><td>' . $order_id . '</td><td>' . wc_format_datetime( $order->get_date_created() ) . '</td><td>' . implode( ' | ', $items ) . '</td><td>' . $order->get_status() . '</td></tr>';
}
echo '</tbody></table>';
}
把上面的代碼添加到主題或插件中,我們就可以實(shí)現(xiàn)在訂單詳情頁(yè)顯示客戶訂單歷史記錄的功能,從而更方便的在管理訂單的時(shí)候了解客戶的訂單歷史信息,除了顯示歷史訂單,如果需要,我們還可以在訂單詳情頁(yè)面顯示和客戶相關(guān)的其他信息,有需要的朋友可以在評(píng)論中提出,我可以幫大家研究一下怎么實(shí)現(xiàn)。


