Cum să oferi reduceri în funcție de cantitate în WooCommerce
Publicat: 2020-01-27În mod obișnuit, în calitate de proprietar de magazin, poate doriți să oferiți reduceri dacă clienții cumpără mai mult de o cantitate dintr-un anumit produs. Acest lucru poate fi fie pentru a crește vânzările, fie pentru a finaliza stocurile în exces. În această postare, veți învăța cum să oferi reduceri bazate pe cantitate în WooCommerce folosind atât fragmente de cod, cât și plugin-uri.
Cum să oferi reduceri în funcție de cantitate în WooCommerce folosind fragmente de cod
Să explorăm cum să folosiți un fragment de cod pentru a face acest lucru. Cu acest fragment de cod, oferim clienților o reducere de 5% dacă achiziționează peste 2 cantități din același produs.
Pentru a face acest lucru, va trebui să adăugați codul de mai jos în fișierul functions.php al temei copilului dvs.:
add_filter('woocommerce_add_cart_item_data', 'ts_add_default_price_as_custom', 20, 3 ); funcția ts_add_default_price_as_custom( $cart_item_data, $product_id, $variation_id ){ $produs_id = $variation_id > 0 ? $variation_id : $product_id; ## ----- SETĂ REDUCEREA AICI ----- ## $discount_percentage = 5; // Reducere (5%) // Obiectul WC_Product $produs = wc_get_product($product_id); $pret = (float) $produs->get_price(); // Setați prețul de bază implicit al produsului ca date personalizate ale articolului de coș $cart_item_data['base_price'] = $pret; // Setați prețul redus al produsului ca date personalizate ale articolului de coș $cart_item_data['new_price'] = $pret * (100 - $discount_percentage) / 100; // Setați procentul ca date personalizate ale articolului de coș $cart_item_data['percentage'] = $discount_percentage; returnează $cart_item_data; } // Afișează prețul inițial al produsului add_filter('woocommerce_cart_item_price', 'ts_display_cart_items_default_price', 20, 3 ); funcția ts_display_cart_items_default_price( $product_price, $cart_item, $cart_item_key ){ if( isset($cart_item['baz_price']) ) { $produs = $cart_item['date']; $produs_preț = wc_price( wc_get_price_to_display( $produs, matrice( 'preț' => $articol_coș['preț_de_bază'] ) ) ); } returnează $produs_preț; } // Afișează numele produsului cu procentul de reducere add_filter( 'woocommerce_cart_item_name', 'ts_add_percentage_to_item_name', 20, 3 ); funcția ts_add_percentage_to_item_name( $nume_produs, $articol_coș, $cheie_articol_coș ){ if( isset($cart_item['procentaj']) && isset($cart_item['base_price']) ) { if( $cart_item['date']->get_price() != $cart_item['base_price'] ) $product_name .= ' <em>(' . $cart_item['procent'] . '% reducere)</em>'; } returnează $nume_produs; } add_action( 'woocommerce_before_calculate_totals', 'ts_custom_discounted_cart_item_price', 20, 1 ); funcția ts_custom_discounted_cart_item_price( $cart ) { if ( is_admin() && ! defined( 'DOING_AJAX' ) ) întoarcere; if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 ) întoarcere; ## ----- SETĂ AICI CANTITATEA ----- ## $targeted_qty = 2; // Cantitatea vizată // Buclă prin articolele din coș foreach ( $cart->get_cart() as $cart_item ) { // Pentru o cantitate de articole de 2 sau mai multe if( $cart_item['cantity'] >= $targeted_qty && isset($cart_item['new_price']) ){ // Setați prețul redus al articolului din coș $cart_item['date']->set_price($cart_item['new_price']); } } }
Codul de mai sus va adăuga o reducere de 5% dacă cantitatea de produs este peste 2. Puteți modifica acest lucru pentru a se potrivi cerințelor dvs. modificând variabila $discount_percentage pentru a seta reducerea dorită și $targeted_qty pentru a seta cantitatea peste care doriți să aplicați reducerea.
Acum veți putea vedea un preț redus dacă adăugați 2 sau mai multe cantități din același produs în coș.
Am folosit patru cârlige majore în codul de mai sus:
woocommerce_add_cart_item_data : Acest cârlig de filtru este folosit pentru a modifica conținutul / metadatele coșului.
woocommerce_cart_item_price : Acest cârlig de filtru este folosit pentru a schimba modul în care prețurile sunt afișate în coș.
woocommerce_cart_item_name : Acest cârlig de filtru poate fi folosit pentru a schimba numele produsului din coș. În exemplul nostru, îl folosim pentru a adăuga procentul de reducere la numele produsului.
woocommerce_before_calculate_totals : Acest cârlig de acțiune este folosit pentru a suprascrie prețul produsului din coș.
Cum să oferi reduceri bazate pe cantitate numai pentru articolele care NU sunt la vânzare:
Dacă doriți să restricționați acest lucru doar la acele produse care nu sunt la vânzare, trebuie pur și simplu să editați fragmentul de cod de mai sus pentru a adăuga o condiție în interiorul funcției care este adăugată la hook woocommerce_add_cart_item_data:

add_filter('woocommerce_add_cart_item_data', 'ts_add_default_price_as_custom', 20, 3 ); funcția ts_add_default_price_as_custom( $cart_item_data, $product_id, $variation_id ){ $produs_id = $variation_id > 0 ? $variation_id : $product_id; ## ----- SETĂ REDUCEREA AICI ----- ## $discount_percentage = 5; // Reducere (5%) // Obiectul WC_Product $produs = wc_get_product($product_id); // ADĂUGAȚI AICI O CONDIȚIE pentru a oferi REDUCERE NUMAI pentru Produsele NEVânzare dacă( ! $produs->este_la_vânzare() ){ $pret = (float) $produs->get_price(); // Setați prețul de bază implicit al produsului ca date personalizate ale articolului de coș $cart_item_data['base_price'] = $pret; // Setați prețul redus al produsului ca date personalizate ale articolului de coș $cart_item_data['new_price'] = $pret * (100 - $discount_percentage) / 100; // Setați procentul ca date personalizate ale articolului de coș $cart_item_data['percentage'] = $discount_percentage; } returnează $cart_item_data; } // Afișează prețul inițial al produsului add_filter('woocommerce_cart_item_price', 'ts_display_cart_items_default_price', 20, 3 ); funcția ts_display_cart_items_default_price( $product_price, $cart_item, $cart_item_key ){ if( isset($cart_item['baz_price']) ) { $produs = $cart_item['date']; $produs_preț = wc_price( wc_get_price_to_display( $produs, matrice( 'preț' => $articol_coș['preț_de_bază'] ) ) ); } returnează $produs_preț; } // Afișează numele produsului cu procentul de reducere add_filter( 'woocommerce_cart_item_name', 'ts_add_percentage_to_item_name', 20, 3 ); funcția ts_add_percentage_to_item_name( $nume_produs, $articol_coș, $cheie_articol_coș ){ if( isset($cart_item['procentaj']) && isset($cart_item['base_price']) ) { if( $cart_item['date']->get_price() != $cart_item['base_price'] ) $product_name .= ' <em>(' . $cart_item['procent'] . '% reducere)</em>'; } returnează $nume_produs; } add_action( 'woocommerce_before_calculate_totals', 'ts_custom_discounted_cart_item_price', 20, 1 ); funcția ts_custom_discounted_cart_item_price( $cart ) { if ( is_admin() && ! defined( 'DOING_AJAX' ) ) întoarcere; if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 ) întoarcere; ## ----- SETĂ AICI CANTITATEA ----- ## $targeted_qty = 2; // Cantitatea vizată // Buclă prin articolele din coș foreach ( $cart->get_cart() as $cart_item ) { // Pentru o cantitate de articole de 2 sau mai multe if( $cart_item['cantity'] >= $targeted_qty && isset($cart_item['new_price']) ){ // Setați prețul redus al articolului din coș $cart_item['date']->set_price($cart_item['new_price']); } } }
În acest fel, puteți oferi reduceri bazate pe cantitate folosind fragmente de cod pentru non-vânzare, vânzare sau toate produsele, adică la nivelul întregului magazin, precizând condiția corespunzătoare în interiorul funcției care este adăugată la cârligul de filtru woocommerce_add_cart_item_data .
Cum să oferi reduceri în funcție de cantitate în WooCommerce folosind pluginuri
Dacă nu sunteți confortabil să adăugați un fragment de cod la fișierele site-ului dvs., puteți utiliza și pluginuri pentru a face acest lucru:
- Reguli de reducere pentru WooCommerce : Acesta este un plugin gratuit care vă permite să adăugați reduceri procentuale nu doar pe baza cantităților de produse, ci și în cazul în care clienții dvs. depășesc o anumită limită de preț. De asemenea, puteți adăuga reduceri procentuale la un anumit număr de articole (nu neapărat ale aceluiași produs). Versiunea PRO a acestui plugin vă permite să adăugați reduceri la nivel de categorie, oferte BOGO (Cumpărați unul, primiți unul gratuit), o reducere de preț fix în loc de o reducere procentuală și multe altele.
- Reduceri condiționate pentru WooCommerce: Acesta este un alt plugin care oferă aproape toate funcțiile importante în versiunea sa gratuită - Puteți adăuga reduceri în funcție de cantitate, numărul de articole din coș, pentru anumite categorii, pe anumite produse, pe caracteristici variabile (cămașă albastră, mărime medie). etc.), pentru anumite roluri de magazin sau chiar anumiți clienți. Versiunea sa PRO are câteva caracteristici suplimentare, una dintre ele fiind adăugarea gratuită a unui produs în coș la achiziționarea unui anumit produs.
- Cupoane inteligente: În afară de carduri cadou, credite de magazin, cupoane URL și restricții avansate, puteți, de asemenea, să restricționați un cupon pe baza numărului de produse specifice din coș (exemplu – 10 cămăși) și, de asemenea, a cantității totale de produse din mai multe produse din coș. cărucior (exemplu – 5 cămăși + 2 pantaloni + 3 curele).
În acest fel, puteți utiliza fie fragmente de cod, fie pluginuri pentru a oferi reduceri clienților dvs. în funcție de cantitățile de produse.