Comment afficher tous les produits achetés par l'utilisateur - Historique des achats
Publié: 2020-08-15 Si vous souhaitez afficher les produits achetés par utilisateur ou afficher tout l'historique des achats pour un utilisateur spécifique, vous pouvez y parvenir en utilisant le code partagé dans cet article. Idéalement, toutes les commandes des clients ou l'historique des achats sont enregistrés dans la table des articles de la base de données WordPress - wp_posts
. Vous pouvez donc récupérer les données de la table de la base de données à l'aide de get_post().
fonction comme je vais l'illustrer à l'aide d'un exemple.
Produits d'affichage WooCommerce achetés par l'utilisateur
La première étape pour afficher les produits achetés par le client, nous devons obtenir les détails du client et nous pouvons utiliser la fonction wp_get_current_user()
qui renvoie l'objet de l'utilisateur actuel.
Étape 1 : Créer la fonction pour afficher l'historique du client et obtenir les détails de l'utilisateur
Par exemple, la fonction et obtenir les détails de l'utilisateur actuel comme suit :
fonction njengah_get_customer_purchase_history(){ // Récupère l'objet utilisateur courant $current_user = wp_get_current_user(); // Vérifie si l'utilisateur est valide if ( 0 == $current_user->ID ) return; }
La fonction wp_get_current_user()
récupère l'objet utilisateur et vous pouvez également utiliser une fonction comme get_current_user_id()
qui récupère directement l' ID utilisateur actuel .
Étape 2 : Obtenez les commandes des utilisateurs à la fois terminées et en cours de traitement
Dans cette étape, nous devons utiliser la fonction get_posts() et transmettre les arguments avec l'ID utilisateur que nous avons obtenu lors de la première étape. Dans ce cas, l'ID utilisateur sera transmis en tant que meta_value dans $args . Nous commençons donc par créer le tableau d'arguments que nous passerons à la fonction get_posts().
//Créer un tableau $args $args = tableau( 'numberposts' => -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() ), );
Après avoir créé les arguments, nous ne transmettons pas le tableau $args à la fonction get_posts() en tant que paramètre comme suit :
$customer_orders = get_posts( $args);
Avant de passer à l'étape suivante, nous combinons le code des étapes 1 et 2 et le code combiné devrait être le suivant :
fonction njengah_get_customer_purchase_history(){ // Récupère l'objet utilisateur courant $current_user = wp_get_current_user(); // Vérifie si l'utilisateur est valide if ( 0 == $current_user->ID ) return; //Créer un tableau $args $args = tableau( 'numberposts' => -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() ), ); // Passe les $args à la fonction get_posts() $customer_orders = get_posts( $args); }
Dans cette étape, nous avons maintenant tout l'historique des achats du client précédent sous forme de tableau que nous allons parcourir pour obtenir les identifiants des produits à l'étape suivante.
Étape 3 : bouclez les commandes des clients et retournez les identifiants des produits prêts à être affichés
Dans cette étape, nous devons parcourir les commandes que nous avons obtenues à l'étape précédente et renvoyer un tableau avec les ID de produit. Nous pouvons le faire en utilisant le code suivant en utilisant la boucle foreach.
// boucle dans les commandes et renvoie les identifiants si ( ! $customer_orders ) retour ; $product_ids = tableau(); foreach ( $customer_orders as $customer_order ) { $order = wc_get_order( $customer_order->ID ); $items = $order->get_items(); foreach ( $items as $item ) { $product_id = $item->get_product_id(); $product_ids[] = $product_id ; } } renvoie $product_ids ;
Nous pouvons maintenant combiner le code de l'étape 1, de l'étape 2 et de l'étape 3 pour avoir le code complet comme suit :
fonction njengah_get_customer_purchase_history(){ // Récupère l'objet utilisateur courant $current_user = wp_get_current_user(); // Vérifie si l'utilisateur est valide if ( 0 == $current_user->ID ) return; //Créer un tableau $args $args = tableau( 'numberposts' => -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() ), ); // Passe les $args à la fonction get_posts() $customer_orders = get_posts( $args); // boucle dans les commandes et renvoie les identifiants si ( ! $customer_orders ) retour ; $product_ids = tableau(); foreach ( $customer_orders as $customer_order ) { $order = wc_get_order( $customer_order->ID ); $items = $order->get_items(); foreach ( $items as $item ) { $product_id = $item->get_product_id(); $product_ids[] = $product_id ; } } renvoie $product_ids ; }
Etape 4 : Tester le retour de fonction
Dans cette étape, nous pouvons vérifier si les données sont affichées à partir de la fonction de l'étape 3 en utilisant la fonction print_r() comme suit :
print_r(njengah_get_customer_purchase_history());
Si vous avez suivi toutes les étapes de la bonne manière, vous devriez voir les données affichées comme sur l'image ci-dessous où j'ai ajouté l'affichage des données au crochet d'action wp_head .
Vous pouvez maintenant continuer et utiliser ces données dans un shortcode ou dans le développement de votre thème ou plugin pour afficher l'historique des achats où vous le souhaitez.
Conclusion
Dans cet article, j'ai expliqué comment afficher le produit acheté par l'utilisateur dans WooCommerce étape par étape. L'utilisation idéale de ce code peut être dans n'importe quelle logique où vous souhaitez comparer les produits de la commande en cours aux produits précédemment commandés. Dans la plupart des applications pratiques, il convient d'inclure l'attribution de remises en fonction des commandes précédentes ou des ventes croisées et des ventes incitatives.
Articles similaires
- Comment rediriger lors de l'actualisation de la page WordPress » Détecter l'actualisation de la page PHP
- Comment obtenir l'ID de publication par Slug dans WordPress avec un exemple pratique
- Comment obtenir le nom de la catégorie de produit actuelle dans WooCommerce
- Comment obtenir des informations sur les utilisateurs connectés dans WordPress
- Comment masquer un produit dans WooCommerce ou masquer des produits par catégorie ou par rôle
- Comment rediriger l'utilisateur s'il n'est pas connecté à WordPress » Redirection de page
- Comment supprimer les éléments du menu d'administration de WordPress par programmation sans plugin
- Comment masquer la barre d'administration pour les clients WooCommerce ou par rôles d'utilisateur
- Comment créer une pagination numérique dans WordPress sans utiliser de plugin
- Comment modifier le lien de retour à la boutique dans Woocommerce
- Déconnexion de WooCommerce sans confirmation : Comment supprimer "Êtes-vous sûr de vouloir vous déconnecter ?"
- Comment obtenir le rôle d'utilisateur actuel dans WordPress et les rôles d'affichage
- Comment rediriger une page WordPress sans plugins ?
- Comment vérifier si le plugin est actif dans WordPress [3 FAÇONS]
- Comment ajouter une barre latérale à WordPress » Guide ultime étape par étape
- Comment rediriger les utilisateurs après une connexion réussie dans WordPress sans utiliser de plugin
- Comment enregistrer une barre latérale dans un thème WordPress » Étape par étape [ Exemple de widget d'en-tête ]
- Comment rediriger vers le panier après la connexion à WooCommerce
- Comment vérifier si l'utilisateur est connecté à WordPress
- Comment afficher le texte de disponibilité des stocks dans WooCommerce » En stock et épuisé