วิธีแสดงผลิตภัณฑ์ทั้งหมดที่ซื้อโดยผู้ใช้ – ประวัติการซื้อ
เผยแพร่แล้ว: 2020-08-15 หากคุณต้องการแสดงผลิตภัณฑ์ที่ซื้อโดยผู้ใช้หรือแสดงประวัติการซื้อทั้งหมดสำหรับผู้ใช้เฉพาะ คุณสามารถทำได้โดยใช้รหัสที่แชร์ในโพสต์นี้ ตามหลักการแล้ว คำสั่งซื้อของลูกค้าหรือประวัติการซื้อทั้งหมดจะถูกบันทึกไว้ในตารางโพสต์ในฐานข้อมูล WordPress –
 หากคุณต้องการแสดงผลิตภัณฑ์ที่ซื้อโดยผู้ใช้หรือแสดงประวัติการซื้อทั้งหมดสำหรับผู้ใช้เฉพาะ คุณสามารถทำได้โดยใช้รหัสที่แชร์ในโพสต์นี้ ตามหลักการแล้ว คำสั่งซื้อของลูกค้าหรือประวัติการซื้อทั้งหมดจะถูกบันทึกไว้ในตารางโพสต์ในฐานข้อมูล 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 » มีในสต็อก & ออก
