Aggiungi regalo nel carrello woocommerce con minimo d’ordine senza plugin

Aggiungi regalo nel carrello woocommerce con minimo d’ordine senza plugin

Prendo spunto da un articolo che ho trovato qualche giorno fa che permette di aggiungere al carrello un prodotto al raggiungimento di un importo del carrello.

La funzionalità si attiva facilmente inserendo del codice all’interno del file functions.php

L’articolo è il seguente: https://interno15.it/blog/come-aggiungere-un-prodotto-in-regalo-nel-carrello-di-woocommerce-al-raggiungimento-di-un-importo-senza-acquistare-plugin

Ho voluto però fare una piccola modifica che mi permette di controllare le variabili dentro wooocommerce una volta inserito il codice senza necessariamente entrare e modificare il file functions.php

Cosa di deve fare:

  • aggiungere il codice così come indicato dall’articolo di interno15.it
  • aggiungere il codice che permette di gestire le variabili: ID prodotto, Importo Minimo Carrello, Escludi/Includi spese di spedizione nel calcolo(PUNTO 2). Le variabili saranno visibili all’interno delle impostazioni woocoommerce -> prodotti -> regalo nel carrello
  • sostituire 3 righe di codice con le variabili create (PUNTO 3)

Punto 2

add_filter( 'woocommerce_get_sections_products' , 'gift_settings_tab' );

function gift_settings_tab( $settings_tab ){
     $settings_tab['gift_btn'] = __( 'Regalo nel carrello' );
     return $settings_tab;
}

add_filter( 'woocommerce_get_settings_products' , 'gift_get_settings' , 10, 2 );

function gift_get_settings( $settings, $current_section ) {
        $custom_settings = array();

        if( 'gift_btn' == $current_section ) {
	
			$custom_settings =  array(

			array(
				'name' => __( 'Regalo nel carrello' ),
				'type' => 'title',
				'desc' => __( 'Sezione personalizzata per un regalo nel carrello<hr/>' ),
				'id'   => 'gift_btn_id' 
			),

			array(
				'name' => __( 'Opzione attiva' ),
				'type' => 'checkbox',
				'desc' => __( 'Attiva'),
				'id'	=> 'enable_btn_gift'
			),
			
			array(
				'name' => __( 'ID Prodotto' ),
				'type' => 'text',
				'desc' => 'Prodotto che sarà aggiunto nel carrello',
				'id'	=> 'id_product_to_gift'
			),
			array(
				'name' => __( 'Totale carrello minimo' ),
				'type' => 'text',
				'desc' => 'Importo minimo che deve essere il carrello per aggiungere il regalo',
				'id'	=> 'cart_value_product_to_gift'
			),

			array(
				'name' => __( '' ),
				'type' => 'checkbox',
				'desc' => __( 'escludi dal totale carrello minimo le spese di spedizione'),
				'id'	=> 'exlude_shopping_cost_for_gift'
			),
			
			array( 'type' => 'sectionend', 'id' => 'gift_btn_id' ),

			);	
				
		return $custom_settings;
     } else {
        	return $settings;
    }

}

Punto 3


$product_gifted_id = 0;
//diventa
$product_gifted_id =get_option( 'id_product_to_gift' );


$price_limit = 80;
//diventa
$price_limit =floatval(get_option( 'cart_value_product_to_gift' ));


$total_with_delivery = false/true;
//diventa

if (get_option( 'exlude_shopping_cost_for_gift' )=='no') 
$total_with_delivery = false;
else
$total_with_delivery = true;

La variabile “attiva regalo” si può gestire in due modi:
– non facendo nessuna operazione (quindi se è nel carrello il regalo non lo toglie)
– se non attiva rimuovi il regalo dal carrello (nel caso che il prodotto destinato a regalo sia usato sempre e solo come regalo)

Se fosse per esempio il caso 2 aggiungere nel codice dopo la stringa di controllo carrello vuoto il seguente codice:

if (get_option( 'enable_btn_gift' )=='no') {
WC()->cart->remove_cart_item( $product_gifted_id ); //commentare questa riga se non volete che venga rimosso il prodotto dal carrello
return;
}
Francesca

21 commenti

Giuseppe Scritto il11:16 - 7 Giugno 2022

Ciao Francesca, articolo molto interessante. Sto cercando qualcosa del genere per il mio sito, ma volevo chiederti se ci fosse il modo di inserire l’omaggio solo con il primo ordine, insomma di farlo solo come omaggio di benvenuto. Sto cercando da giorni qualcosa ma non ho ancora risolto.
Grazie in anticipo.

    Francesca Scritto il15:45 - 23 Giugno 2022

    Hai provato a usare i COUPON?

Andrea Scritto il12:29 - 28 Dicembre 2021

Ciao! Una domanda: non mi funziona il tasto “Attiva” nel backend, anche se non spuntato l’opzione regalo compare allo scattare della soglia che imposto. Dacosa potrebbe essere dovuto?

    Francesca Scritto il15:55 - 7 Maggio 2022

    Il codice è di qualche tempo fa, potrebbe essere qualche incompatibilità

emilio Scritto il16:59 - 19 Ottobre 2021

Ciao Francesca, inutile dirti che i tuoi articoli sono sempre utilissimi.
Io invece ho la necessità di omaggiare un prodotto ogni volta che il cliente ordine per es. 6 bottiglie. Quindi ogni 6 bbottiglie ne carrello vorrei che comprarisse il prodotto in omaggio.
invece se ordina 12 bottiglie ci saranno 2 prodotti omaggio.
Come pensi che posso procedere in questo senso?

    Francesca Roccabruna Scritto il16:52 - 11 Novembre 2021

    Per questo ci sono altre tipologie di plugin da utilizzare 🙂

Damiano Scritto il10:29 - 15 Settembre 2021

Ciao Francesca, grazie per l’articolo utilissimo.
Avendo gran poche conoscenze di programmazione, ho seguito e applicato nel mio Woocommerce alla lettera quanto hai scritto.
Allo stato attuale però, il prodotto che voglio regalare viene sì aggiunto in automatico al carrello, ma viene conteggiato il suo prezzo nel subtotale, facendolo quindi pagare al cliente a tutti gli effetti.
Ti risulta? C’è qualcosa che devo correggere o integrare? Inoltre come si può far sì che nel checkout/subtotale il cliente veda che è “gratis” anzichè venga mostrato il suo prezzo?
Se vuoi dare un occhio, il sito è https://labottegadelpet.it/

Grazie infinite, Damiano.

    Francesca Roccabruna Scritto il10:45 - 15 Settembre 2021

    Devi creare un prodotto nascosto dal catalogo e inserirlo con prezzo a 0

      Damiano Scritto il12:34 - 15 Settembre 2021

      Grazie mille!
      E come fare per:
      – mantenere fissa a 1 la quantità dell’omaggio nel carrello senza possa essere aumentata nel checkout?
      – rimuovere l’omaggio dal carrello se vengono rimossi tutti gli articoli della spesa?

      Grazie ancora infinitamente!

        Francesca Roccabruna Scritto il12:35 - 15 Settembre 2021

        Il primo punto basta impostare che si può acquistare solo 1 prodotto per ordine nella configurazione del prodotto
        Il secondo punto è automatico se non ricordo male

          Damiano Scritto il12:50 - 15 Settembre 2021

          Gentile Francesca,
          grazie per il primo punto!
          Per il secondo punto purtroppo no 🙁

          Francesca Roccabruna Scritto il12:54 - 15 Settembre 2021

          Controlla di aver inserito correttamente tutte le stringhe di codice

          Damiano Scritto il12:56 - 15 Settembre 2021

          C’è una stringa in particolare su cui fare il controllo?

      Francesco Scritto il21:21 - 14 Aprile 2022

      ciao come si crea un prodotto nascosto?
      grazie!

        Francesca Scritto il15:52 - 7 Maggio 2022

        Basta impostarlo come privato nelle impostazioni

Maurizio Scritto il00:34 - 6 Giugno 2021

Ciao Francesca. Articolo interessante.
Ho una richiesta differente, non so se è fattibile.
Un mio cliente tratta profumi e vuole dare un campione per ogni acquisto a prescindere dalla spesa (e fin qui ci siamo).
Ma vuole offrire più campione e vuole che l’acquirente scelga quale omaggio può avere tra quelli a disposizione.
Come posso modificare il codice?
Grazie

    Francesca Roccabruna Scritto il12:12 - 10 Giugno 2021

    Ci sono dei plugin già fatti che ti permettono di scegliere il regalo sulla base del numero di prodotti presenti nel carrello
    o per un minimo di importo. Io questo lo avevo realizzato perchè volevo che il prodotto venisse inserito automaticamente nel carrello e non avevo trovato nulla che mi piacesse.

      Francesco Scritto il21:31 - 14 Aprile 2022

      l’obiettivo infatti sarebbe non far comparire il prodotto nel catalogo ma solo come omaggio al momento del superamento di un tot euro o collegato ad un altro prodotto… si puo’ fare? grazie in anticipo.

        Francesca Scritto il15:53 - 7 Maggio 2022

        Si certo si può aggiungere proprio con questo sistema, per l’aggancio ad un prodotto però va fatta una modifica o usato un’altro sistema

Gabriele Scritto il15:22 - 3 Maggio 2021

Ciao Francesca, il tuo articolo è davvero interessante, mi chiedevo se ci fosse un modo per avere l’opportunità di imporre delle regole multiple. Nel mio caso ad esempio, mi servirebbe che vi siano due importi da raggiungere, al primo di 30,00 euro, sarà riconosciuto un regalo, al secondo di 50,00 un altro regalo. Nel codice così come l’hai concepito sembrerebbe non essere possibile.

Ti sarei molto grato se riuscissi ad aiutarmi.

Saluti

    Francesca Roccabruna Scritto il15:29 - 3 Maggio 2021

    Con il codice attuale no, ma con qualche passaggio può essere possibile.
    Basta creare due variabili in più e gestire poi delle condizioni nel codice sulla base delle variabili che gestiscono gli importi.

    if (importo >= importo1) assegna regalo1
    If (import >=importo2) assegna regalo2

    ovviamente l’importo due deve essere maggiore del primo perchè sovrascriva il regalo.

Lascia un commento

diciotto + diciotto =

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

©2022 AGANIS WEB SOFTWARE di Francesca Roccabruna | P.IVA TRENTO 02183500228 - N.REA 205930
contatti | cookies | Privacy Policy