So zeigen Sie alle vom Benutzer gekauften Produkte an – Kaufhistorie

Veröffentlicht: 2020-08-15

Vom Benutzer gekaufte Produkte anzeigen Wenn Sie vom Benutzer gekaufte Produkte oder die gesamte Kaufhistorie für einen bestimmten Benutzer anzeigen möchten, können Sie dies mit dem in diesem Beitrag geteilten Code erreichen. Idealerweise werden alle Kundenbestellungen oder Kaufhistorien in der Posts-Tabelle in der WordPress-Datenbank – wp_posts – gespeichert. Sie können also die Daten mit get_post(). funktionieren, wie ich anhand eines Beispiels veranschaulichen werde.

WooCommerce Display-Produkte, die vom Benutzer gekauft wurden

Als ersten Schritt zur Anzeige von Produkten, die vom Kunden gekauft wurden, müssen wir die Details des Kunden abrufen und können die Funktion wp_get_current_user() verwenden, die das Objekt des aktuellen Benutzers zurückgibt.

Schritt 1: Erstellen Sie die Funktion zum Anzeigen der Kundenhistorie und zum Abrufen von Benutzerdetails

Zum Beispiel die Funktion und die aktuellen Benutzerdetails wie folgt abrufen:

 Funktion njengah_get_customer_purchase_history(){

     // Holen Sie sich das aktuelle Benutzerobjekt 
      $aktueller_Benutzer = wp_get_aktueller_Benutzer();
     // Überprüfen Sie, ob der Benutzer gültig ist 
      if ( 0 == $aktueller_Benutzer->ID ) return;

}

Die Funktion wp_get_current_user() ruft das Benutzerobjekt ab und Sie können alternativ eine Funktion wie get_current_user_id() verwenden, die direkt die aktuelle Benutzer-ID abruft.

Schritt 2: Holen Sie sich die Benutzeraufträge sowohl abgeschlossen als auch verarbeitet

In diesem Schritt müssen wir die Funktion get_posts() verwenden und die Argumente mit der Benutzer-ID übergeben, die wir im ersten Schritt erhalten haben, und in diesem Fall wird die Benutzer-ID als meta_value in $args übergeben. Wir beginnen also damit, das Argumentarray zu erstellen, das wir an die Funktion get_posts() übergeben.

 // $args-Array erstellen 
    $args = array(
	'Nummernposten' => -1,
	'meta_key' => '_customer_user',
	'meta_value' => $aktueller_Benutzer->ID,
  	'post_type' => wc_get_order_types(),
	'post_status' => array_keys( wc_get_is_paid_statuses() ),
    );

Nach dem Erstellen der Argumente übergeben wir das Array $args nicht als Parameter an die Funktion get_posts() wie folgt:

 $customer_orders = get_posts( $args);

Bevor wir zum nächsten Schritt übergehen , kombinieren wir den Code in Schritt 1 und Schritt 2 und der kombinierte Code sollte wie folgt lauten:

 Funktion njengah_get_customer_purchase_history(){

     // Holen Sie sich das aktuelle Benutzerobjekt 
       $aktueller_Benutzer = wp_get_aktueller_Benutzer();
	  
     // Überprüfen Sie, ob der Benutzer gültig ist 
       if ( 0 == $aktueller_Benutzer->ID ) return;
	  
	 // $args-Array erstellen 
	   $args = array(
		   'Nummernposten' => -1,
			'meta_key' => '_customer_user',
			'meta_value' => $aktueller_Benutzer->ID,
			'post_type' => wc_get_order_types(),
			'post_status' => array_keys( wc_get_is_paid_statuses() ),
		);
	  
	  // Übergeben Sie die $args an die Funktion get_posts() 
	  $customer_orders = get_posts( $args);
	   

}

In diesem Schritt haben wir nun die gesamte Kaufhistorie des vorherigen Kunden als Array , das wir durchlaufen werden, um im nächsten Schritt die Produkt-IDs zu erhalten.

Schritt 3: Kundenbestellungen durchlaufen und Produkt-IDs zurücksenden, die zur Anzeige bereit sind

In diesem Schritt müssen wir die im vorherigen Schritt erhaltenen Bestellungen durchlaufen und ein Array mit den Produkt-IDs zurückgeben. Wir können dies mit dem folgenden Code mit foreach-Schleife tun.

 // die Aufträge durchlaufen und die IDs zurückgeben 
    if ( ! $customer_orders ) return;
	$product_ids = array();
	foreach ( $customer_orders als $customer_order ) {
	    $order = wc_get_order( $customer_order->ID );
		$artikel = $order->get_items();
		foreach ( $items als $item ) {
			$product_id = $item->get_product_id();
			$product_ids[] = $product_id;
		}
	}
		
   $product_ids zurückgeben;

Wir können jetzt den Code in Schritt 1, Schritt 2 und Schritt 3 kombinieren, um den vollständigen Code wie folgt zu erhalten:

 Funktion njengah_get_customer_purchase_history(){

     // Holen Sie sich das aktuelle Benutzerobjekt 
       $aktueller_Benutzer = wp_get_aktueller_Benutzer();
	  
     // Überprüfen Sie, ob der Benutzer gültig ist 
       if ( 0 == $aktueller_Benutzer->ID ) return;
	  
	 // $args-Array erstellen 
	   $args = array(
		   'Nummernposten' => -1,
			'meta_key' => '_customer_user',
			'meta_value' => $aktueller_Benutzer->ID,
			'post_type' => wc_get_order_types(),
			'post_status' => array_keys( wc_get_is_paid_statuses() ),
		);
	  
	  // Übergeben Sie die $args an die Funktion get_posts() 
	  $customer_orders = get_posts( $args);
	  
	  // die Aufträge durchlaufen und die IDs zurückgeben 
		if ( ! $customer_orders ) return;
		$product_ids = array();
		foreach ( $customer_orders als $customer_order ) {
			$order = wc_get_order( $customer_order->ID );
			$artikel = $order->get_items();
			foreach ( $items als $item ) {
				$product_id = $item->get_product_id();
				$product_ids[] = $product_id;
			}
		}
		
		$product_ids zurückgeben;
	   
}

Schritt 4: Testen der Funktionsrückgabe

In diesem Schritt können wir überprüfen, ob die Daten von der Funktion in Schritt 3 mit der Funktion print_r() wie folgt angezeigt werden:

 print_r(njengah_get_customer_purchase_history());

Wenn Sie alle Schritte richtig befolgt haben, sollten Sie die angezeigten Daten sehen, wie auf dem Bild unten zu sehen, wo ich die Datenanzeige zum Aktionshaken wp_head hinzugefügt habe.

Anzeigen von Produkten, die vom Benutzer gekauft wurden

Sie können diese Daten jetzt in einem Shortcode oder in Ihrer Design- oder Plugin-Entwicklung verwenden, um die Kaufhistorie an beliebiger Stelle anzuzeigen.

Fazit

In diesem Beitrag habe ich Schritt für Schritt erklärt, wie das vom Benutzer gekaufte Produkt in WooCommerce angezeigt wird. Die ideale Verwendung dieses Codes kann in jeder Logik sein, in der Sie die aktuell bestellten Produkte mit den zuvor bestellten Produkten vergleichen möchten. Zu den meisten praktischen Anwendungen gehören die Vergabe von Rabatten auf Basis früherer Bestellungen oder Cross-Sells und Up-Sells.

Ähnliche Artikel