So zeigen Sie alle vom Benutzer gekauften Produkte an – Kaufhistorie
Veröffentlicht: 2020-08-15 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.
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
- So leiten Sie beim Aktualisieren der WordPress-Seite um » PHP-Seitenaktualisierung erkennen
- So erhalten Sie eine Post-ID per Slug in WordPress mit einem praktischen Beispiel
- So erhalten Sie den aktuellen Produktkategorienamen in WooCommerce
- So erhalten Sie eingeloggte Benutzerinformationen in WordPress
- So verstecken Sie ein Produkt in WooCommerce oder verstecken Produkte nach Kategorie oder Rolle
- So leiten Sie Benutzer um, wenn sie nicht in WordPress angemeldet sind » Seitenumleitung
- So entfernen Sie Elemente des WordPress-Admin-Menüs programmgesteuert ohne Plugin
- So verstecken Sie die Admin-Leiste für WooCommerce-Kunden oder nach Benutzerrollen
- So erstellen Sie eine Nummernnummerierung in WordPress, ohne ein Plugin zu verwenden
- So ändern Sie den Return to Shop-Link in Woocommerce
- WooCommerce-Abmeldung ohne Bestätigung: So entfernen Sie „Möchten Sie sich wirklich abmelden?“
- So erhalten Sie die aktuelle Benutzerrolle in WordPress & Anzeigerollen
- Wie leite ich eine WordPress-Seite ohne Plugins um?
- So überprüfen Sie, ob das Plugin in WordPress aktiv ist [3 WEGE]
- So fügen Sie eine Seitenleiste zu WordPress hinzu » Ultimative Schritt-für-Schritt-Anleitung
- So leiten Sie Benutzer nach erfolgreicher Anmeldung in WordPress um, ohne ein Plugin zu verwenden
- So registrieren Sie eine Seitenleiste im WordPress-Design » Schritt für Schritt [Beispiel für ein Header-Widget]
- So leiten Sie nach dem Login in WooCommerce zum Warenkorb weiter
- So überprüfen Sie, ob der Benutzer in WordPress angemeldet ist
- So zeigen Sie den Verfügbarkeitstext in WooCommerce an » In Stock & Out