Cum să actualizați prețul produsului în mod programatic în WooCommerce
Publicat: 2020-10-10Doriți să aflați cum să actualizați prețul produsului în mod programatic în WooCommerce ? În acest ghid, vă vom arăta cum să modificați prețurile în WooCommerce fără a utiliza pluginuri sau a instala vreun instrument suplimentar.
Dacă le utilizați inteligent, reducerile vă pot ajuta să vă îmbunătățiți ratele de conversie și să vă creșteți vânzările. Există mai multe moduri de a implementa reduceri în magazinul dvs. de comerț electronic. De exemplu, puteți aplica cupoane WooCommerce în mod programatic.
Cu toate acestea, puteți actualiza și prețul produsului fără a utiliza cupoane . De exemplu, puteți acorda o reducere exclusivă utilizatorilor care sunt abonați la newsletter-ul dvs. sau care au cheltuit mai mult de 100 USD în magazinul dvs.
În acest ghid, veți învăța să modificați prețul atunci când clienții adaugă un produs în coș fără a utiliza niciun cupoane și accesând direct obiectul coș WooCommerce. Vom arunca o privire la câteva exemple și vom aplica o anumită logică la actualizarea prețului. Scopul este să înțelegeți logica, astfel încât să puteți personaliza scripturile și să le aplicați în magazinul dvs.
Cum să actualizați prețul produsului în mod programatic în WooCommerce
În această secțiune, veți afla cum să actualizați prețul produsului în mod programatic în WooCommerce . Vom arunca o privire la diferite exemple pentru a vă oferi câteva idei despre ceea ce puteți face în magazinul dvs.
- Actualizați prețul produsului când este selectată o casetă de selectare
- Adăugați câmpul de introducere a casetei de selectare pe pagina de produse
- Actualizați prețul atunci când un utilizator adaugă un produs în coș
- Recalculați prețul total al coșului
- Editați prețul produsului pe baza rolurilor utilizatorului
- Actualizați prețul produsului în funcție de taxonomia produsului
Rețineți că vom folosi mai multe cârlige WooCommerce, așa că este o idee bună să consultați acest ghid dacă nu sunteți familiarizat cu ele.
Înainte să începem…
Înainte de a începe, deoarece vom face modificări unor fișiere de bază, vă recomandăm să instalați o temă copil pe site-ul dvs. Dacă nu aveți o temă copil și nu știți cum să o instalați, consultați ghidul nostru pentru a crea o temă copil sau lista noastră cu cele mai bune pluginuri pentru teme pentru copii.
NOTĂ : Pentru a aplica aceste scripturi, copiați și lipiți-le în fișierul functions.php
al temei copil. Cu toate acestea, rețineți că sunt destinate doar în scopuri didactice, așa că personalizați-le înainte de a le duce la producție.
1) Actualizați prețul produsului când este selectată o casetă de selectare
În următorul exemplu de script, vom adăuga o casetă de selectare introdusă în formularul de coș de pe pagina produsului . În acest fel, putem aplica logica personalizată și putem actualiza dinamic prețul oricărui produs pe care clienții îl adaugă în coș doar atunci când caseta de selectare este bifată.
1.1 Adăugați câmpul de introducere a casetei de selectare pe pagina de produse
Înainte de a actualiza prețul produsului WooCommerce în mod programatic, să adăugăm caseta de selectare pe pagina produselor . Pentru a face asta, pur și simplu copiați și lipiți următorul script:
add_action('woocommerce_after_add_to_cart_button', 'add_check_box_to_product_page', 30 ); funcția add_check_box_to_product_page(){ ?> <div> <label for="extra_pack"> <?php _e( 'Ambalaj suplimentar', 'quadlayers' ); ?> <input type="checkbox" name="extra_pack" value="extra_pack"> </label> </div> <?php }
Cârligul woocommerce_after_add_to_cart_button
ne permite să tipărim caseta de selectare imediat după buton, așa cum se arată în imaginea de mai sus.
1.2 Actualizați prețul atunci când utilizatorul adaugă un produs în coș
O altă opțiune interesantă este să actualizezi prețul în mod dinamic atunci când clienții adaugă un produs în coșul lor . Deci, în acest caz, pentru a actualiza prețul în mod programatic în WooCommerce, pur și simplu lipiți acest script imediat după cel anterior.
add_filter( 'woocommerce_add_cart_item_data', 'add_cart_item_data', 10, 3 ); funcția add_cart_item_data( $cart_item_data, $product_id, $variation_id ) { // obțineți ID-ul și prețul produsului $produs = wc_get_product( $product_id ); $pret = $produs->get_price(); // caseta de selectare pachet suplimentar dacă( ! gol( $_POST['extra_pack'] ) ) { $cart_item_data['new_price'] = $price + 15; } returnează $cart_item_data; }
woocommerce_add_cart_item_data
este hook-ul WooCommerce care ne va permite să edităm prețul produsului curent. În plus, condiționalul if()
verifică dacă caseta de selectare este selectată sau nu și, dacă este, actualizează prețul în rândul următor. Acum, să defalcăm codul pentru a înțelege mai bine ce face fiecare parte.
-
extra_pack
este numele casetei de selectare pe care am creat-o la pasul anterior -
$price
este prețul curent al produsului. Îl putem modifica după cum dorim cu anumite condiții -
$cart_item_data['new_price'] = $price + 15;
este modul în care creștem prețul cu 15 USD atunci când condiționalulif()
este adevărat, acesta este atunci când utilizatorul selectează caseta de selectare a ambalajului suplimentar. Prin ajustarea codului, puteți alege să creșteți sau să micșorați prețul cu orice sumă doriți.
1.3 Recalculați prețul total al coșului
Deoarece putem apela hook-ul woocommerce_add_cart_item_data
de mai multe ori la încărcarea coșului, trebuie să recalculăm totalurile și subtotalurile coșului pentru a evita ca rezultatele nedorite, cum ar fi prețurile să fie actualizate de mai multe ori sau de fiecare dată când un utilizator adaugă un produs. Pentru a actualiza produsul, lipiți următorul cod după cele două anterioare:
add_action( 'woocommerce_before_calculate_totals', 'before_calculate_totals', 10, 1 ); function before_calculate_totals( $cart_obj ) { if ( is_admin() && ! defined( 'DOING_AJAX' ) ) { întoarcere; } // Iterează prin fiecare articol din coș foreach( $cart_obj->get_cart() as $key=>$value ) { if( isset( $value['new_price'] ) ) { $preț = $valoare['new_price']; $valoare['date']->set_price( ( $pret ) ); } } }
Această funcție ne asigură că actualizăm prețul doar atunci când un produs se potrivește cu logica noastră condiționată (că utilizatorul selectează caseta de selectare a ambalajului suplimentar). Astfel, prevenim toate erorile posibile la calcularea prețului total al coșului.
Prețul produsului crește cu 15 USD
Dacă totul a mers bine și coșul îndeplinește condițiile stabilite de noi, funcția noastră va adăuga o taxă suplimentară de 15 USD la prețul inițial atunci când utilizatorul selectează caseta de selectare de pe pagina produsului, înainte de a face clic pe butonul Adaugă în coș.
Pentru a evita abandonarea coșului și pentru a îmbunătăți experiența de cumpărare, ar trebui să afișați întotdeauna noul preț înainte ca clienții să adauge produsele în coșul lor . În caz contrar, vor vedea prețul final doar pe pagina de finalizare a comenzii.
2. Editați prețul produsului pe baza rolurilor utilizatorului
În mod similar, putem actualiza prețul produsului WooCommerce în mod programatic, pe baza rolurilor de utilizator . De exemplu, puteți oferi utilizatorilor abonați sau înregistrați o reducere exclusivă. Pentru a face asta, copiați și lipiți următorul script:
funcția add_cart_item_data( $cart_item_data, $product_id, $variation_id ) { // obțineți ID-ul și prețul produsului $produs = wc_get_product( $product_id ); $pret = $produs->get_price(); if(// Este autentificat && este rolul clientului is_user_logged_in()==true&& wc_current_user_has_role('client')){ $cart_item_data['new_price'] = $price * 0,8; } returnează $cart_item_data; } add_filter( 'woocommerce_add_cart_item_data', 'add_cart_item_data', 10, 3 );
După cum puteți vedea, singura diferență dintre acest script și cel anterior de la punctul 1.2 este operatorul logic if()
. Aici, verificăm dacă utilizatorul este autentificat sau nu și dacă are un rol de client, pe care îl atribuim utilizatorilor înregistrați care au achiziționat anterior din magazinul nostru.
Când un cumpărător îndeplinește această condiție, înmulțim prețul produsului cu 0,8 , oferindu-i o reducere de 20%. Desigur, puteți edita rolurile de utilizator și le puteți modifica pentru altele, cum ar fi Abonat, Editor sau orice alte roluri pe care le-ați înregistrat pe site-ul dvs. web.
Rețineți că, pentru a funcționa corect, trebuie să utilizați și funcția 'before_calculate_totals'
și cârligul acesteia pentru a recalcula totalurile coșului. Așa că pur și simplu utilizați recalculați prețul total al scriptului coș pe care l-am văzut la pasul 1.3.
3. Actualizați prețul produsului în funcție de taxonomia produsului
În cele din urmă, în WooCommerce putem actualiza dinamic prețul produsului în mod programatic, pe baza taxonomiilor produselor . Pentru a face asta, să aruncăm o privire la următorul script.
add_filter( 'woocommerce_add_cart_item_data', 'add_cart_item_data', 10, 3 ); funcția add_cart_item_data( $cart_item_data, $product_id, $variation_id ) { // obțineți ID-ul și prețul produsului $produs = wc_get_product( $product_id ); $pret = $produs->get_price(); $terms = get_the_terms( $product_id, 'product_cat' ); // Potrivire categorie ! aplica reducere if($terms[0]->name=='Afișe'){ $cart_item_data['new_price'] = $price + 20; } returnează $cart_item_data; }
În acest exemplu, obținem categoria produsului care a fost adăugată în coș folosind funcția încorporată WordPress get_the_terms()
. În rândul următor, aplicăm condiționalul nostru pentru a prelua categoria produsului folosind $terms[0]->name
. Astfel, dacă produsul aparține categoriei Postere, creștem prețul cu 20$.
Acesta este un exemplu de script pe care îl puteți lua ca bază și îl puteți edita pentru a modifica atât taxonomia, cât și suma pe care doriți să o adăugați sau să deduceți din preț.
În cele din urmă, amintiți-vă că trebuie să utilizați funcția 'before_calculate_totals'
și cârligul corespunzător, așa cum am făcut în pasul 1.3.
După cum puteți vedea, cunoștințele de utilizare a funcțiilor condiționate și WordPress/WooCommerce vor oferi o modalitate extrem de flexibilă de a actualiza prețurile produselor în mod programatic. Acestea sunt doar câteva exemple pentru a vă oferi idei despre ceea ce este posibil.
Cu toate acestea, puteți face mult mai multe, astfel încât să vă dezlănțuiți creativitatea și să găsiți noi modalități de a edita prețul produselor dvs. De exemplu, puteți aplica reduceri la anumite ID-uri de produs, pe baza adresei URL de la care au venit utilizatorii, în funcție de locația sau ID-ul utilizatorilor și așa mai departe. Posibilitățile sunt nesfârșite, așa că joacă-te cu scenariul și găsește cele mai bune soluții pentru magazinul tău.
NOTE FINALE
- Aceste exemple de scripturi de la punctele 1, 2 și 3 nu vor funcționa împreună. Va trebui să vă rafinați logica într-una singură dacă doriți să aplicați mai multe funcții în același timp
- Poate fi necesar să includeți funcții de validare suplimentare pentru o logică condiționată mai complexă
- Aplicați întotdeauna o funcție de recalculare – așa cum se vede la punctul 1.3 – atunci când lucrați cu obiectul coș WooCommerce
- Acestea sunt exemple de scripturi și sunt destinate numai în scopuri didactice. Vă rugăm să le ajustați înainte de a le pune în producție
Concluzie
Una peste alta, învățarea cum să actualizați prețul produsului în mod programatic în WooCommerce vă poate oferi multă flexibilitate. Puteți acorda reduceri utilizatorilor abonați, puteți adăuga taxe dacă clienții doresc ambalaj suplimentar sau livrare rapidă și așa mai departe. Și cea mai bună parte este că nu trebuie să instalați niciun plugin pentru a face acest lucru.
În acest ghid, am văzut diferite exemple pentru a schimba dinamic prețul în mod programatic. Cu toate acestea, acesta este doar vârful aisbergului. WooCommerce vă oferă posibilități infinite, așa că vă recomandăm să vă jucați și să personalizați scripturile.
Dacă aveți întrebări despre scripturi, spuneți-ne în comentariile de mai jos. Vom fi bucuroși să vă ajutăm.
În cele din urmă, dacă doriți să vă îmbunătățiți procesul de finalizare a comenzii, aruncați o privire la ghidul nostru pentru a optimiza finalizarea plății.