Come offrire sconti in base alla quantità in WooCommerce
Pubblicato: 2020-01-27Di solito, come proprietario di un negozio, a volte potresti voler offrire sconti se i clienti acquistano più di una quantità di un particolare prodotto. Questo può essere per aumentare le vendite o finire le scorte in eccesso. In questo post imparerai come offrire sconti in base alla quantità in WooCommerce utilizzando sia frammenti di codice che plug-in.
Come offrire sconti in base alla quantità in WooCommerce utilizzando i frammenti di codice
Esaminiamo come utilizzare un frammento di codice per farlo. Con questo frammento di codice, offriamo ai clienti uno sconto del 5% se acquistano più di 2 quantità dello stesso prodotto.
Per fare ciò, dovrai aggiungere il codice seguente al file functions.php del tuo tema figlio:
add_filter('woocommerce_add_cart_item_data', 'ts_add_default_price_as_custom', 20, 3 ); funzione ts_add_default_price_as_custom($cart_item_data, $id_prodotto, $id_variazione){ $id_prodotto = $id_variazione > 0 ? $variation_id: $product_id; ## ----- IMPOSTA QUI LO SCONTO ----- ## $sconto_percentuale = 5; // Sconto (5%) // L'oggetto WC_Product $prodotto = wc_get_product($id_prodotto); $prezzo = (flottante) $prodotto->get_prezzo(); // Imposta il prezzo base predefinito del prodotto come dati dell'articolo del carrello personalizzato $cart_item_data['base_price'] = $prezzo; // Imposta il prezzo scontato del prodotto come dati dell'articolo del carrello personalizzato $cart_item_data['nuovo_prezzo'] = $prezzo * (100 - $sconto_percentuale) / 100; // Imposta la percentuale come dati degli articoli del carrello personalizzati $cart_item_data['percentuale'] = $sconto_percentuale; restituisce $cart_item_data; } // Visualizza il prezzo originale del prodotto add_filter('woocommerce_cart_item_price', 'ts_display_cart_items_default_price', 20, 3 ); funzione ts_display_cart_items_default_price($prezzo_prodotto, $cart_item, $cart_item_key){ if( isset($cart_item['base_price']) ) { $prodotto = $carrello_elemento['dati']; $prezzo_prodotto = prezzo_wc(wc_get_prezzo_da_visualizzare($prodotto, array('prezzo' => $articolo_carrello['prezzo_base']))); } restituire $prezzo_prodotto; } // Visualizza il nome del prodotto con la percentuale di sconto add_filter('woocommerce_cart_item_name', 'ts_add_percentage_to_item_name', 20, 3); funzione ts_add_percentage_to_item_name($nome_prodotto, $cart_item, $cart_item_key ){ if( isset($cart_item['percentage']) && isset($cart_item['base_price']) ) { if( $cart_item['data']->get_price() != $cart_item['base_price'] ) $product_name .= ' <em>(' . $cart_item['percentuale'] . '% di sconto)</em>'; } restituisce $nome_prodotto; } add_action( 'woocommerce_before_calculate_totals', 'ts_custom_discounted_cart_item_price', 20, 1 ); funzione ts_custom_discounted_cart_item_price($carrello) { if ( is_admin() && !defined( 'DOING_AJAX' ) ) Restituzione; if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 ) Restituzione; ## ----- IMPOSTA QUI LA QUANTITÀ ----- ## $qtà_mirata = 2; // Quantità mirata // Scorri gli articoli del carrello foreach ($cart->get_cart() as $cart_item) { // Per quantità di articoli pari o superiori a 2 if( $cart_item['quantity'] >= $targeted_qty && isset($cart_item['new_price']) ){ // Imposta il prezzo scontato dell'articolo del carrello $cart_item['data']->set_price($cart_item['new_price']); } } }
Il codice sopra aggiungerà uno sconto del 5% se la quantità del prodotto è superiore a 2. Puoi modificarlo in base alle tue esigenze modificando la variabile $discount_percentage per impostare lo sconto desiderato e $targeted_qty per impostare la quantità sopra la quale desideri applicare lo sconto.
Ora potrai vedere un prezzo scontato se aggiungi 2 o più quantità dello stesso prodotto nel carrello.
Abbiamo utilizzato quattro hook principali nel codice sopra:
woocommerce_add_cart_item_data : questo gancio filtro viene utilizzato per modificare i contenuti/meta dati del carrello.
woocommerce_cart_item_price : questo gancio filtro viene utilizzato per modificare il modo in cui i prezzi vengono visualizzati nel carrello.
woocommerce_cart_item_name : questo gancio filtro può essere utilizzato per modificare il nome del prodotto nel carrello. Nel nostro esempio, lo utilizziamo per aggiungere la percentuale di sconto al nome del prodotto.
woocommerce_before_calculate_totals : questo hook di azione viene utilizzato per sovrascrivere il prezzo del prodotto nel carrello.
Come offrire sconti in base alla quantità solo per articoli NON in saldo:
Se vuoi limitare questo solo a quei prodotti che non sono in vendita, devi semplicemente modificare lo snippet di codice sopra per aggiungere una condizione all'interno della funzione che viene aggiunta all'hook woocommerce_add_cart_item_data:

add_filter('woocommerce_add_cart_item_data', 'ts_add_default_price_as_custom', 20, 3 ); funzione ts_add_default_price_as_custom($cart_item_data, $id_prodotto, $id_variazione){ $id_prodotto = $id_variazione > 0 ? $variation_id: $product_id; ## ----- IMPOSTA QUI LO SCONTO ----- ## $sconto_percentuale = 5; // Sconto (5%) // L'oggetto WC_Product $prodotto = wc_get_product($id_prodotto); // AGGIUNGI QUI LA CONDIZIONE per offrire SCONTO SOLO per prodotti NON in vendita if( ! $prodotto->è_in_vendita() ){ $prezzo = (flottante) $prodotto->get_prezzo(); // Imposta il prezzo base predefinito del prodotto come dati dell'articolo del carrello personalizzato $cart_item_data['base_price'] = $prezzo; // Imposta il prezzo scontato del prodotto come dati dell'articolo del carrello personalizzato $cart_item_data['nuovo_prezzo'] = $prezzo * (100 - $sconto_percentuale) / 100; // Imposta la percentuale come dati degli articoli del carrello personalizzati $cart_item_data['percentuale'] = $sconto_percentuale; } restituisce $cart_item_data; } // Visualizza il prezzo originale del prodotto add_filter('woocommerce_cart_item_price', 'ts_display_cart_items_default_price', 20, 3 ); funzione ts_display_cart_items_default_price($prezzo_prodotto, $cart_item, $cart_item_key){ if( isset($cart_item['base_price']) ) { $prodotto = $carrello_elemento['dati']; $prezzo_prodotto = prezzo_wc(wc_get_prezzo_da_visualizzare($prodotto, array('prezzo' => $articolo_carrello['prezzo_base']))); } restituire $prezzo_prodotto; } // Visualizza il nome del prodotto con la percentuale di sconto add_filter('woocommerce_cart_item_name', 'ts_add_percentage_to_item_name', 20, 3); funzione ts_add_percentage_to_item_name($nome_prodotto, $cart_item, $cart_item_key ){ if( isset($cart_item['percentage']) && isset($cart_item['base_price']) ) { if( $cart_item['data']->get_price() != $cart_item['base_price'] ) $product_name .= ' <em>(' . $cart_item['percentuale'] . '% di sconto)</em>'; } restituisce $nome_prodotto; } add_action( 'woocommerce_before_calculate_totals', 'ts_custom_discounted_cart_item_price', 20, 1 ); funzione ts_custom_discounted_cart_item_price($carrello) { if ( is_admin() && !defined( 'DOING_AJAX' ) ) Restituzione; if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 ) Restituzione; ## ----- IMPOSTA QUI LA QUANTITÀ ----- ## $qtà_mirata = 2; // Quantità mirata // Scorri gli articoli del carrello foreach ($cart->get_cart() as $cart_item) { // Per quantità di articoli pari o superiori a 2 if( $cart_item['quantity'] >= $targeted_qty && isset($cart_item['new_price']) ){ // Imposta il prezzo scontato dell'articolo del carrello $cart_item['data']->set_price($cart_item['new_price']); } } }
In questo modo è possibile offrire sconti in base alla quantità utilizzando frammenti di codice per non vendita, vendita o tutti i prodotti cioè a livello di negozio indicando la condizione appropriata all'interno della funzione che viene aggiunta al filtro hook woocommerce_add_cart_item_data .
Come offrire sconti in base alla quantità in WooCommerce utilizzando i plugin
Se non ti senti a tuo agio con l'aggiunta di uno snippet di codice ai file del tuo sito Web, puoi utilizzare anche i plug-in per farlo:
- Regole di sconto per WooCommerce : questo è un plug-in gratuito che ti consente di aggiungere sconti percentuali non solo in base alle quantità di prodotti, ma anche se i tuoi clienti superano un determinato limite di prezzo. Puoi anche aggiungere sconti percentuali su un certo numero di articoli (non necessariamente dello stesso prodotto). La versione PRO di questo plugin ti consente di aggiungere sconti a livello di categoria, offerte BOGO (Buy One Get One Free), uno sconto a prezzo fisso invece di uno sconto percentuale e altro ancora.
- Sconti condizionali per WooCommerce: questo è un altro plugin che offre quasi tutte le funzionalità importanti nella sua versione gratuita : puoi aggiungere sconti in base alla quantità, al numero di articoli del carrello, per categorie specifiche, su prodotti specifici, su caratteristiche variabili (camicia blu, taglia M ecc.), per determinati ruoli di negozio o anche clienti specifici. La sua versione PRO ha alcune funzionalità aggiuntive, una delle quali è l'aggiunta di un prodotto gratuito al carrello all'acquisto di un determinato prodotto.
- Buoni intelligenti: oltre a buoni regalo, crediti negozio, coupon URL e restrizioni avanzate, puoi anche limitare un coupon in base al numero di prodotti specifici nel carrello (esempio: 10 magliette) e anche alla quantità totale di prodotti di più prodotti nel carrello (esempio – 5 magliette + 2 pantaloni + 3 cinture).
In questo modo, puoi utilizzare frammenti di codice o plug-in per offrire sconti ai tuoi clienti in base alle quantità di prodotti.