Cum să afișați toate produsele achiziționate de utilizator – Istoricul achizițiilor
Publicat: 2020-08-15 Dacă doriți să afișați produsele achiziționate de către utilizator sau să afișați întregul istoric de achiziții pentru un anumit utilizator, puteți realiza acest lucru folosind codul distribuit în această postare. În mod ideal, toate comenzile clienților sau istoricul achizițiilor sunt salvate în tabelul de postări din baza de date WordPress – wp_posts
. Prin urmare, puteți obține datele din tabelul bazei de date folosind get_post().
funcția așa cum voi ilustra folosind un exemplu.
Afișează produse WooCommerce achiziționate de utilizator
Primul pas pentru a afișa produsele achiziționate de client, trebuie să obținem detaliile clientului și putem folosi funcția wp_get_current_user()
care returnează obiectul utilizatorului curent.
Pasul 1: Creați funcția pentru a afișa istoricul clienților și pentru a obține detalii despre utilizator
De exemplu, funcția și obțineți detaliile utilizatorului curent după cum urmează:
funcția njengah_get_customer_purchase_history(){ // Obține obiectul utilizatorului curent $current_user = wp_get_current_user(); // Verificați dacă utilizatorul este valid if ( 0 == $ curent_utilizator->ID ) return; }
Funcția wp_get_current_user()
preia obiectul utilizator și, alternativ, puteți utiliza o funcție precum get_current_user_id()
care preia direct ID-ul utilizatorului curent .
Pasul 2: Obțineți comenzile utilizatorilor atât finalizate, cât și procesate
În acest pas trebuie să folosim funcția get_posts() și să transmitem arg -urile cu ID-ul utilizatorului pe care l-am obținut în primul pas și în acest caz id-ul utilizatorului va fi transmis ca meta_value în $args . Așa că începem prin a crea matricea de argumente pe care o vom transmite funcției get_posts().
//Creează o matrice $args $args = matrice( '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() ), );
După crearea argumentelor, nu trecem matricea $args funcției get_posts() ca parametru, după cum urmează:
$comenzi_client = get_posts( $args);
Înainte de a trece la pasul următor, combinăm codul din pasul 1 și pasul 2 , iar codul combinat ar trebui să fie după cum urmează:
funcția njengah_get_customer_purchase_history(){ // Obține obiectul utilizatorului curent $current_user = wp_get_current_user(); // Verificați dacă utilizatorul este valid if ( 0 == $ curent_utilizator->ID ) return; //Creează o matrice $args $args = matrice( '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() ), ); // Transmite $args la funcția get_posts(). $comenzi_client = get_posts( $args); }
În acest pas, avem acum tot istoricul de achiziții al clientului anterior ca o matrice pe care o vom parcurge pentru a obține ID-urile produselor în pasul următor.
Pasul 3: Buclă prin comenzile clienților și codurile de returnare a produselor gata pentru afișare
În acest pas trebuie să parcurgem comenzile pe care le-am obținut în pasul anterior și să returnăm o matrice cu ID-urile produsului. Putem face acest lucru folosind următorul cod folosind bucla foreach.
// parcurge comenzile și returnează ID-urile if ( ! $comenzi_client ) return; $produs_ids = array(); foreach ( $comenzi_client ca $comanda_client ) { $comanda = wc_get_order( $comanda_client->ID ); $articole = $comanda->get_items(); foreach ( $articole ca $item ) { $product_id = $articol->get_product_id(); $product_ids[] = $product_id; } } returnează $product_ids;
Acum putem combina codul din pasul 1, pasul 2 și pasul 3 pentru a avea codul complet după cum urmează:
funcția njengah_get_customer_purchase_history(){ // Obține obiectul utilizatorului curent $current_user = wp_get_current_user(); // Verificați dacă utilizatorul este valid if ( 0 == $ curent_utilizator->ID ) return; //Creează o matrice $args $args = matrice( '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() ), ); // Transmite $args la funcția get_posts(). $comenzi_client = get_posts( $args); // parcurge comenzile și returnează ID-urile if ( ! $comenzi_client ) return; $produs_ids = array(); foreach ( $comenzi_client ca $comanda_client ) { $comanda = wc_get_order( $comanda_client->ID ); $articole = $comanda->get_items(); foreach ( $articole ca $item ) { $product_id = $articol->get_product_id(); $product_ids[] = $product_id; } } returnează $product_ids; }
Pasul 4: Testarea revenirii funcției
În acest pas putem verifica dacă datele sunt afișate din funcția din pasul 3 folosind funcția print_r() după cum urmează:
print_r(njengah_get_customer_purchase_history());
Dacă ați urmat toți pașii în mod corect, ar trebui să vedeți datele afișate așa cum se vede în imaginea de mai jos, unde am adăugat afișarea datelor la cârligul de acțiune wp_head .
Acum puteți continua și utiliza aceste date într-un cod scurt sau în dezvoltarea temei sau a pluginului pentru a afișa istoricul achizițiilor oriunde doriți.
Concluzie
În această postare am explicat pas cu pas cum să afișați produsul achiziționat de utilizator în WooCommerce. Utilizarea ideală a acestui cod poate fi în orice logică în care doriți să comparați produsele comandate curent cu produsele comandate anterior. În cele mai multe aplicații practice includ alocarea de reduceri pe baza comenzilor anterioare sau vânzări încrucișate și vânzări superioare.
Articole similare
- Cum să redirecționezi la reîmprospătarea paginii WordPress » Detectează pagina Reîmprospătează PHP
- Cum să obțineți ID-ul postării de către Slug în WordPress cu un exemplu practic
- Cum să obțineți numele curent al categoriei de produse în WooCommerce
- Cum să vă conectați Informații despre utilizator în WordPress
- Cum să ascundeți un produs în WooCommerce sau să ascundeți produsele după categorie sau roluri
- Cum să redirecționați utilizatorul dacă nu este autentificat în WordPress » Redirecționare pagină
- Cum să eliminați elementele din meniul de administrare WordPress în mod programatic fără plugin
- Cum să ascundeți bara de administrare pentru clienții WooCommerce sau după rolurile de utilizator
- Cum se creează paginarea numerelor în WordPress fără a utiliza pluginul
- Cum se schimbă linkul de revenire la magazin în Woocommerce
- Deconectare WooCommerce fără confirmare: Cum să eliminați „Sunteți sigur că doriți să vă deconectați?”
- Cum să obțineți rolul de utilizator actual în rolurile WordPress și afișare
- Cum să redirecționezi o pagină WordPress fără pluginuri?
- Cum să verificați dacă pluginul este activ în WordPress [ 3 MODI ]
- Cum să adăugați o bară laterală la WordPress » Ghid final pas cu pas
- Cum să redirecționați utilizatorii după conectarea cu succes la WordPress fără a utiliza un plugin
- Cum să înregistrați o bară laterală în tema WordPress » Pas cu pas [ Exemplu de widget pentru antet ]
- Cum să redirecționați către coș după autentificare în WooCommerce
- Cum să verificați dacă utilizatorul este autentificat în WordPress
- Cum să afișați textul disponibilității stocului în WooCommerce » În stoc și epuizat