Kullanıcı Tarafından Satın Alınan Tüm Ürünler Nasıl Görüntülenir – Satın Alma Geçmişi

Yayınlanan: 2020-08-15

Kullanıcı Tarafından Satın Alınan Ürünleri Görüntüle Kullanıcı tarafından satın alınan ürünleri görüntülemek veya belirli bir kullanıcı için tüm satın alma geçmişini görüntülemek istiyorsanız, bunu bu gönderide paylaşılan kodu kullanarak yapabilirsiniz. İdeal olarak, tüm müşteri siparişleri veya satın alma geçmişi, WordPress veritabanındaki gönderiler tablosuna kaydedilir - wp_posts . Bu nedenle, get_post(). bir örnek kullanarak göstereceğim gibi işlev.

Kullanıcı Tarafından Satın Alınan WooCommerce Görüntülü Ürünler

Müşteri tarafından satın alınan ürünleri görüntülemek için ilk adım, müşterinin detaylarını almamız gerekiyor ve mevcut kullanıcının nesnesini döndüren wp_get_current_user() işlevini kullanabiliriz.

Adım 1: Müşteri Geçmişini Görüntüleme ve Kullanıcı Ayrıntılarını Alma İşlevini Oluşturun

Örneğin, işlev ve mevcut kullanıcı ayrıntılarını aşağıdaki gibi alın:

 function njengah_get_customer_purchase_history(){

     // Geçerli kullanıcı Nesnesini al 
      $current_user = wp_get_current_user();
     // Kullanıcının geçerli olup olmadığını kontrol edin 
      if ( 0 == $current_user->ID ) dönüş;

}

wp_get_current_user() işlevi, kullanıcı nesnesini alır ve alternatif olarak, geçerli kullanıcı kimliğini doğrudan alan get_current_user_id() gibi bir işlevi kullanabilirsiniz.

2. Adım : Hem Tamamlanan hem de İşlenen Kullanıcı Siparişlerini Alın

Bu adımda get_posts() işlevini kullanmamız ve argümanları ilk adımda elde ettiğimiz kullanıcı kimliği ile geçirmemiz gerekiyor ve bu durumda kullanıcı kimliği $args içinde meta_değer olarak iletilecektir. Böylece get_posts() fonksiyonuna ileteceğimiz argümanlar dizisini oluşturarak başlıyoruz.

 // $args dizisi oluştur 
    $args = dizi(
	'sayı işaretleri' => -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() ),
    );

Argümanları oluşturduktan sonra, $args dizisini get_posts() işlevine aşağıdaki gibi bir parametre olarak iletmiyoruz:

 $customer_orders = get_posts( $args);

Bir sonraki adıma geçmeden önce 1. ve 2. adımdaki kodu birleştiririz ve birleşik kod aşağıdaki gibi olmalıdır:

 function njengah_get_customer_purchase_history(){

     // Geçerli kullanıcı Nesnesini al 
       $current_user = wp_get_current_user();
	  
     // Kullanıcının geçerli olup olmadığını kontrol edin 
       if ( 0 == $current_user->ID ) dönüş;
	  
	 // $args dizisi oluştur 
	   $args = dizi(
		   'sayı işaretleri' => -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() işlevine iletin 
	  $customer_orders = get_posts( $args);
	   

}

Bu adımda, bir sonraki adımda ürün kimliklerini almak için döngüye gireceğimiz bir dizi olarak önceki müşterinin tüm satın alma geçmişine sahibiz.

3. Adım : Müşteri Siparişleri ve İade Edilen Ürün Kimlikleri Arasında Döngü Görüntülemeye Hazır

Bu adımda, önceki adımda elde ettiğimiz siparişler arasında dolaşmamız ve ürün kimlikleriyle bir dizi döndürmemiz gerekiyor. Bunu foreach döngüsünü kullanarak aşağıdaki kodu kullanarak yapabiliriz.

 // siparişler arasında dolaş ve kimlikleri döndür 
    eğer ( ! $müşteri_siparişleri ) iade edilirse;
	$product_ids = dizi();
	foreach ( $customer_orders as $customer_order ) {
	    $sipariş = wc_get_order( $customer_order->ID );
		$items = $sipariş->get_items();
		foreach ( $item as $item ) {
			$product_id = $item->get_product_id();
			$product_ids[] = $product_id;
		}
	}
		
   $product_ids döndür;

Şimdi kodun tamamını aşağıdaki gibi elde etmek için 1. adım, 2. adım ve 3. adımdaki kodu birleştirebiliriz:

 function njengah_get_customer_purchase_history(){

     // Geçerli kullanıcı Nesnesini al 
       $current_user = wp_get_current_user();
	  
     // Kullanıcının geçerli olup olmadığını kontrol edin 
       if ( 0 == $current_user->ID ) dönüş;
	  
	 // $args dizisi oluştur 
	   $args = dizi(
		   'sayı işaretleri' => -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() işlevine iletin 
	  $customer_orders = get_posts( $args);
	  
	  // siparişler arasında dolaş ve kimlikleri döndür 
		eğer ( ! $müşteri_siparişleri ) iade edilirse;
		$product_ids = dizi();
		foreach ( $customer_orders as $customer_order ) {
			$sipariş = wc_get_order( $customer_order->ID );
			$items = $sipariş->get_items();
			foreach ( $item as $item ) {
				$product_id = $item->get_product_id();
				$product_ids[] = $product_id;
			}
		}
		
		$product_ids döndür;
	   
}

Adım 4 : Fonksiyon Dönüşünün Test Edilmesi

Bu adımda, aşağıdaki gibi print_r() fonksiyonunu kullanarak 3. adımdaki fonksiyondan verilerin görüntülenip görüntülenmediğini kontrol edebiliriz:

 print_r(njengah_get_customer_purchase_history());

Tüm adımları doğru bir şekilde takip ettiyseniz data displayini wp_head action hook'a eklediğim aşağıdaki resimde görüldüğü gibi datanın görüntülendiğini görmelisiniz.

kullanıcı tarafından satın alınan ürünleri göster

Şimdi devam edebilir ve satın alma geçmişini istediğiniz yerde görüntülemek için bu verileri bir kısa kodda veya temanızda veya eklenti geliştirmenizde kullanabilirsiniz.

Çözüm

Bu yazımda adım adım WooCommerce'de kullanıcı tarafından satın alınan ürünün nasıl görüntüleneceğini anlattım. Bu kodun ideal kullanımı, mevcut sipariş ürünlerini önceden sipariş edilen ürünlerle karşılaştırmak istediğiniz herhangi bir mantıkta olabilir. Çoğu pratik uygulamada, indirimlerin önceki siparişlere veya çapraz satışlara ve yukarı satışlara dayalı olarak tahsis edilmesini içerir.

Benzer Makaleler