วิธีแสดงผลิตภัณฑ์ทั้งหมดที่ซื้อโดยผู้ใช้ – ประวัติการซื้อ
เผยแพร่แล้ว: 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 » มีในสต็อก & ออก