Cara Menampilkan Semua Produk yang Dibeli Pengguna – Riwayat Pembelian

Diterbitkan: 2020-08-15

Menampilkan Produk yang Dibeli oleh Pengguna Jika Anda ingin menampilkan produk yang dibeli oleh pengguna atau menampilkan semua riwayat pembelian untuk pengguna tertentu, Anda dapat melakukannya menggunakan kode yang dibagikan di pos ini. Idealnya, semua pesanan pelanggan atau riwayat pembelian disimpan ke tabel posting di database WordPress – wp_posts . Oleh karena itu Anda bisa mendapatkan data dari tabel database menggunakan get_post(). fungsi seperti yang akan saya ilustrasikan menggunakan contoh.

Produk Tampilan WooCommerce Dibeli Oleh Pengguna

Langkah pertama untuk menampilkan produk yang dibeli oleh pelanggan, kita perlu mendapatkan detail pelanggan dan kita dapat menggunakan fungsi wp_get_current_user() yang mengembalikan objek pengguna saat ini.

Langkah 1: Buat Fungsi untuk Menampilkan Riwayat Pelanggan & Dapatkan Detail Pengguna

Misalnya fungsi dan dapatkan detail pengguna saat ini sebagai berikut:

 fungsi njengah_get_customer_purchase_history(){

     // Dapatkan Objek pengguna saat ini 
      $current_user = wp_get_current_user();
     // Periksa apakah pengguna valid 
      if ( 0 == $current_user->ID ) kembali;

}

Fungsi wp_get_current_user() mengambil objek pengguna dan Anda juga dapat menggunakan fungsi seperti get_current_user_id() yang secara langsung mengambil ID pengguna saat ini .

Langkah 2: Dapatkan Pesanan Pengguna Selesai dan Diproses

Pada langkah ini kita perlu menggunakan fungsi get_posts() dan meneruskan args dengan ID pengguna yang kita peroleh pada langkah pertama dan dalam hal ini id pengguna akan diteruskan sebagai meta_value dalam $args . Jadi kita mulai dengan membuat array argumen yang akan kita berikan ke fungsi get_posts().

 //Buat array $args 
    $args = array(
	'numberposts' => -1,
	'meta_key' => '_pelanggan_pengguna',
	'meta_value' => $current_user->ID,
  	'post_type' => wc_get_order_types(),
	'post_status' => array_keys( wc_get_is_paid_statuses() ),
    );

Setelah membuat argumen, kami tidak meneruskan array $args ke fungsi get_posts() sebagai parameter sebagai berikut:

 $customer_orders = get_posts( $args);

Sebelum kita pindah ke langkah selanjutnya kita gabungkan kode pada langkah 1 dan langkah 2 dan kode gabungan harus sebagai berikut :

 fungsi njengah_get_customer_purchase_history(){

     // Dapatkan Objek pengguna saat ini 
       $current_user = wp_get_current_user();
	  
     // Periksa apakah pengguna valid 
       if ( 0 == $current_user->ID ) kembali;
	  
	 //Buat array $args 
	   $args = array(
		   'numberposts' => -1,
			'meta_key' => '_pelanggan_pengguna',
			'meta_value' => $current_user->ID,
			'post_type' => wc_get_order_types(),
			'post_status' => array_keys( wc_get_is_paid_statuses() ),
		);
	  
	  // Berikan fungsi $args ke get_posts() 
	  $customer_orders = get_posts( $args);
	   

}

Pada langkah ini, kita sekarang telah mendapatkan semua riwayat pembelian pelanggan sebelumnya sebagai larik yang akan kita ulangi untuk mendapatkan ID produk di langkah berikutnya.

Langkah 3: Ulangi Pesanan Pelanggan & Kembalikan ID Produk Siap Ditampilkan

Pada langkah ini kita perlu mengulang pesanan yang kita peroleh pada langkah sebelumnya dan mengembalikan array dengan ID produk. Kita dapat melakukannya dengan menggunakan kode berikut menggunakan foreach loop.

 // mengulang perintah dan mengembalikan ID 
    jika ( ! $customer_orders ) kembali;
	$produk_id = array();
	foreach ( $customer_orders sebagai $customer_order ) {
	    $pesanan = wc_get_order( $customer_order->ID );
		$item = $order->get_items();
		foreach ( $items sebagai $item ) {
			$produk_id = $barang->get_produk_id();
			$produk_id[] = $id_produk;
		}
	}
		
   kembalikan $produk_id;

Kita sekarang dapat menggabungkan kode pada langkah 1, langkah 2 dan langkah 3 untuk memiliki kode lengkap sebagai berikut:

 fungsi njengah_get_customer_purchase_history(){

     // Dapatkan Objek pengguna saat ini 
       $current_user = wp_get_current_user();
	  
     // Periksa apakah pengguna valid 
       if ( 0 == $current_user->ID ) kembali;
	  
	 //Buat array $args 
	   $args = array(
		   'numberposts' => -1,
			'meta_key' => '_pelanggan_pengguna',
			'meta_value' => $current_user->ID,
			'post_type' => wc_get_order_types(),
			'post_status' => array_keys( wc_get_is_paid_statuses() ),
		);
	  
	  // Berikan fungsi $args ke get_posts() 
	  $customer_orders = get_posts( $args);
	  
	  // mengulang perintah dan mengembalikan ID 
		jika ( ! $customer_orders ) kembali;
		$produk_id = array();
		foreach ( $customer_orders sebagai $customer_order ) {
			$pesanan = wc_get_order( $customer_order->ID );
			$item = $order->get_items();
			foreach ( $items sebagai $item ) {
				$produk_id = $barang->get_produk_id();
				$produk_id[] = $id_produk;
			}
		}
		
		kembalikan $produk_id;
	   
}

Langkah 4: Menguji Pengembalian Fungsi

Pada langkah ini kita dapat memeriksa untuk melihat apakah data ditampilkan dari fungsi pada langkah 3 menggunakan fungsi print_r() sebagai berikut:

 print_r(njengah_get_customer_purchase_history());

Jika Anda mengikuti semua langkah dengan cara yang benar, Anda akan melihat data yang ditampilkan seperti yang terlihat pada gambar di bawah ini di mana saya telah menambahkan tampilan data ke wp_head action hook .

menampilkan produk yang dibeli oleh pengguna

Anda sekarang dapat melanjutkan dan menggunakan data ini dalam kode pendek atau dalam pengembangan tema atau plugin Anda untuk menampilkan riwayat pembelian di mana pun Anda inginkan.

Kesimpulan

Dalam posting ini saya telah menjelaskan cara menampilkan produk yang dibeli oleh pengguna di WooCommerce secara bertahap. Penggunaan ideal kode ini dapat dalam logika apa pun di mana Anda ingin membandingkan produk pesanan saat ini dengan produk yang dipesan sebelumnya. Dalam sebagian besar aplikasi praktis termasuk alokasi diskon berdasarkan pesanan sebelumnya atau penjualan silang dan penjualan naik.

Artikel Serupa