วิธีแสดงผลิตภัณฑ์ทั้งหมดที่ซื้อโดยผู้ใช้ – ประวัติการซื้อ
เผยแพร่แล้ว: 2020-08-15
หากคุณต้องการแสดงผลิตภัณฑ์ที่ซื้อโดยผู้ใช้หรือแสดงประวัติการซื้อทั้งหมดสำหรับผู้ใช้เฉพาะ คุณสามารถทำได้โดยใช้รหัสที่แชร์ในโพสต์นี้ ตามหลักการแล้ว คำสั่งซื้อของลูกค้าหรือประวัติการซื้อทั้งหมดจะถูกบันทึกไว้ในตารางโพสต์ในฐานข้อมูล WordPress – wp_posts คุณสามารถรับข้อมูลจากตารางฐานข้อมูลโดยใช้ get_post(). ฟังก์ชั่นตามที่ฉันจะอธิบายโดยใช้ตัวอย่าง
ผลิตภัณฑ์แสดงผล WooCommerce ที่ซื้อโดยผู้ใช้
ขั้นตอนแรกในการแสดงผลิตภัณฑ์ที่ลูกค้าซื้อ เราจำเป็นต้อง ได้รับรายละเอียดของลูกค้า และเราสามารถใช้ wp_get_current_user() ที่ส่งคืนอ็อบเจ็กต์ของผู้ใช้ปัจจุบันได้
ขั้นตอนที่ 1 : สร้างฟังก์ชันเพื่อแสดงประวัติลูกค้าและรับรายละเอียดผู้ใช้
ตัวอย่างเช่นฟังก์ชั่นและรับรายละเอียดผู้ใช้ปัจจุบันดังนี้:
ฟังก์ชัน njengah_get_customer_purchase_history(){
// รับผู้ใช้ปัจจุบัน Object
$current_user = wp_get_current_user();
// ตรวจสอบว่าผู้ใช้ถูกต้องหรือไม่
ถ้า ( 0 == $current_user->ID ) ส่งคืน;
} wp_get_current_user() ดึงข้อมูลอ็อบเจ็กต์ผู้ใช้ และคุณสามารถใช้ฟังก์ชันเช่น get_current_user_id() ที่ดึงข้อมูล ID ผู้ใช้ปัจจุบัน โดยตรง
ขั้นตอนที่ 2: รับคำสั่งซื้อของผู้ใช้ทั้งที่เสร็จสมบูรณ์และกำลังดำเนินการ
ในขั้นตอนนี้ เราจำเป็นต้องใช้ฟังก์ชัน get_posts() และส่ง args ด้วย ID ผู้ใช้ที่เราได้รับในขั้นตอนแรก และในกรณีนี้ ID ผู้ใช้จะถูกส่งเป็น meta_value ใน $args ดังนั้นเราจึงเริ่มต้นด้วยการสร้างอาร์เรย์อาร์กิวเมนต์ที่เราจะส่งต่อไปยังฟังก์ชัน get_posts()
//สร้าง $args array
$args = อาร์เรย์ (
'ตัวเลข' => -1,
'meta_key' => '_customer_user',
'meta_value' => $current_user->ID,
'post_type' => wc_get_order_types(),
'post_status' => array_keys( wc_get_is_paid_statuses() ),
);
หลังจากสร้างอาร์กิวเมนต์แล้ว เราจะไม่ส่งอาร์เรย์ $args ไปยังฟังก์ชัน get_posts() เป็นพารามิเตอร์ดังนี้
$customer_orders = get_posts( $args);
ก่อนที่เราจะไปยังขั้นตอนถัดไป เรา รวมรหัสในขั้นตอนที่ 1 และขั้นตอนที่ 2 และรหัสที่รวมกันควรเป็นดังนี้ :
ฟังก์ชัน njengah_get_customer_purchase_history(){
// รับผู้ใช้ปัจจุบัน Object
$current_user = wp_get_current_user();
// ตรวจสอบว่าผู้ใช้ถูกต้องหรือไม่
ถ้า ( 0 == $current_user->ID ) ส่งคืน;
//สร้าง $args array
$args = อาร์เรย์ (
'ตัวเลข' => -1,
'meta_key' => '_customer_user',
'meta_value' => $current_user->ID,
'post_type' => wc_get_order_types(),
'post_status' => array_keys( wc_get_is_paid_statuses() ),
);
// ส่ง $args ไปที่ get_posts() function
$customer_orders = get_posts( $args);
}ในขั้นตอนนี้ เรามี ประวัติการซื้อทั้งหมดของลูกค้าก่อนหน้านี้เป็นอาร์เรย์ ที่เราจะวนรอบเพื่อรับรหัสผลิตภัณฑ์ในขั้นตอนถัดไป
ขั้นตอนที่ 3: วนซ้ำคำสั่งซื้อของลูกค้า & รหัสสินค้าส่งคืนพร้อมสำหรับแสดง
ในขั้นตอนนี้ เราจำเป็นต้องวนรอบคำสั่งซื้อที่เราได้รับในขั้นตอนก่อนหน้าและส่งคืนอาร์เรย์ที่มีรหัสผลิตภัณฑ์ เราสามารถทำได้โดยใช้โค้ดต่อไปนี้โดยใช้ foreach loop
// วนรอบคำสั่งและส่งคืน IDs
if ( ! $customer_orders ) ส่งคืน;
$product_ids = อาร์เรย์ ();
foreach ( $customer_orders เป็น $customer_order ) {
$order = wc_get_order( $customer_order->ID );
$รายการ = $สั่งซื้อ->get_items();
foreach ( $items เป็น $item ) {
$product_id = $item->get_product_id();
$product_ids[] = $product_id;
}
}
ส่งคืน $product_ids;ตอนนี้เราสามารถรวมรหัสในขั้นตอนที่ 1 ขั้นตอนที่ 2 และขั้นตอนที่ 3 เพื่อให้ได้รหัสที่สมบูรณ์ดังนี้ :

ฟังก์ชัน njengah_get_customer_purchase_history(){
// รับผู้ใช้ปัจจุบัน Object
$current_user = wp_get_current_user();
// ตรวจสอบว่าผู้ใช้ถูกต้องหรือไม่
ถ้า ( 0 == $current_user->ID ) ส่งคืน;
//สร้าง $args array
$args = อาร์เรย์ (
'ตัวเลข' => -1,
'meta_key' => '_customer_user',
'meta_value' => $current_user->ID,
'post_type' => wc_get_order_types(),
'post_status' => array_keys( wc_get_is_paid_statuses() ),
);
// ส่ง $args ไปที่ get_posts() function
$customer_orders = get_posts( $args);
// วนรอบคำสั่งและส่งคืน IDs
if ( ! $customer_orders ) ส่งคืน;
$product_ids = อาร์เรย์ ();
foreach ( $customer_orders เป็น $customer_order ) {
$order = wc_get_order( $customer_order->ID );
$items = $order->get_items(); $รายการ = $สั่งซื้อ->get_items();
foreach ( $items เป็น $item ) {
$product_id = $item->get_product_id();
$product_ids[] = $product_id;
}
}
ส่งคืน $product_ids;
}ขั้นตอนที่ 4 : ทดสอบฟังก์ชัน Return
ในขั้นตอนนี้ เราสามารถตรวจสอบว่าข้อมูลแสดงจากฟังก์ชันในขั้นตอนที่ 3 หรือไม่ โดยใช้ฟังก์ชัน print_r() ดังต่อไปนี้:
print_r(njengah_get_customer_purchase_history());
หากคุณทำตามขั้นตอนทั้งหมดอย่างถูกต้อง คุณควรเห็นข้อมูลที่แสดงตามที่เห็นในภาพด้านล่าง ซึ่งฉันได้เพิ่มการแสดงข้อมูลลงใน wp_head action hook

ตอนนี้คุณสามารถใช้ข้อมูลนี้ในรหัสย่อหรือในการพัฒนาธีมหรือปลั๊กอินของคุณเพื่อแสดงประวัติการซื้อได้ทุกที่ที่คุณต้องการ
บทสรุป
ในโพสต์นี้ ฉันได้อธิบายวิธีการแสดงผลิตภัณฑ์ที่ซื้อโดยผู้ใช้ใน WooCommerce ทีละขั้นตอน การใช้รหัสนี้ในอุดมคติอาจใช้ตรรกะใดก็ได้ที่คุณต้องการเปรียบเทียบผลิตภัณฑ์ที่สั่งซื้อปัจจุบันกับผลิตภัณฑ์ที่สั่งซื้อก่อนหน้านี้ ในการใช้งานจริงส่วนใหญ่จะรวมถึงการจัดสรรส่วนลดตามคำสั่งซื้อก่อนหน้าหรือการขายต่อเนื่องและการขายที่เพิ่มขึ้น
บทความที่คล้ายกัน
- วิธีเปลี่ยนเส้นทางเมื่อรีเฟรชหน้า WordPress » ตรวจหาการรีเฟรชหน้า PHP
- วิธีรับ Post ID โดย Slug ใน WordPress ด้วยตัวอย่างที่ใช้งานได้จริง
- วิธีรับชื่อหมวดหมู่ผลิตภัณฑ์ปัจจุบันใน WooCommerce
- วิธีการเข้าสู่ระบบข้อมูลผู้ใช้ใน WordPress
- วิธีซ่อนผลิตภัณฑ์ใน WooCommerce หรือซ่อนผลิตภัณฑ์ตามหมวดหมู่หรือบทบาท
- วิธีเปลี่ยนเส้นทางผู้ใช้หากไม่ได้ลงชื่อเข้าใช้ WordPress » Page Redirect
- วิธีลบรายการเมนูผู้ดูแลระบบ WordPress โดยทางโปรแกรมโดยไม่ต้องใช้ปลั๊กอิน
- วิธีซ่อนแถบผู้ดูแลระบบสำหรับลูกค้า WooCommerce หรือตามบทบาทของผู้ใช้
- วิธีสร้าง Number Pagination ใน WordPress โดยไม่ต้องใช้ Plugin
- วิธีเปลี่ยนการกลับไปที่ลิงค์ร้านค้าใน Woocommerce
- ออกจากระบบ WooCommerce โดยไม่มีการยืนยัน : วิธีลบ "คุณแน่ใจหรือไม่ว่าต้องการออกจากระบบ"
- วิธีรับบทบาทผู้ใช้ปัจจุบันใน WordPress & แสดงบทบาท
- วิธีการเปลี่ยนเส้นทางหน้า WordPress โดยไม่มีปลั๊กอิน?
- วิธีตรวจสอบว่าปลั๊กอินมีการใช้งานใน WordPress หรือไม่ [ 3 วิธี ]
- วิธีเพิ่มแถบด้านข้างใน WordPress » Ultimate Step by Step Guide
- วิธีเปลี่ยนเส้นทางผู้ใช้หลังจากเข้าสู่ระบบสำเร็จใน WordPress โดยไม่ต้องใช้ปลั๊กอิน
- วิธีลงทะเบียนแถบด้านข้างในธีม WordPress »ทีละขั้นตอน [ตัวอย่างวิดเจ็ตส่วนหัว]
- วิธีเปลี่ยนเส้นทางไปยังรถเข็นหลังจากเข้าสู่ระบบใน WooCommerce
- วิธีตรวจสอบว่าผู้ใช้เข้าสู่ระบบใน WordPress . หรือไม่
- วิธีแสดงข้อความความพร้อมใช้งานของสต็อคใน WooCommerce » มีในสต็อก & ออก
