Impostare quantità min/max di una variazione prodotto in WooCommerce

Vi è  ai capitato di dove gestire delle quantità minime/massime per un prodotto e specificatamente in base alle varianti di un prodotto variabile?

E’ possibile gestirlo senza tanti plugin inserendo e gestendo le seguenti funzioni:

//imposta la quantità minima/massima nel carrello
add_filter( 'woocommerce_quantity_input_args', 'jk_woocommerce_quantity_input_args', 10, 2 );
function jk_woocommerce_quantity_input_args( $args, $product ) {
	
	if ($product->variation_id=='<idvariazione>') {
   		$args['input_value']    = 1;      // Valore di partenza value
   		$args['max_value']      = 7;      // Valore massimo
  		$args['min_value']      = 1;      // Valore minimo
   		$args['step']           = 1;   // Quantita incrementale ( se impostato a 4 visualizzerà multipli di 4)
	}
    return $args;
}

 
//imposta la quantità minima/massina nella scheda prodotto
add_filter( 'woocommerce_available_variation', 'jk_woocommerce_available_variation' );
function jk_woocommerce_available_variation( $args ) {
	
   if ($args['variation_id']=='<idvariazione>') { 
   $args['min_qty'] = 8;                   // imposta per esempio la quantita minima
   }
   return $args;
}

Plugin wordpress per la gestione di costi aggiuntivi in caso di contrassegno

spedire-in-contrassegnoVi segnalo un comodo plugin wordpress per la gestione dei costi aggiuntivi in caso per esempio dell’utilizzo del pagamento in contrassegno.

Si tratta del plugin: WooCommerce Payment Fees Lite che potete recuperare direttamente all’indirizzo: https://wordpress.org/plugins/woocommerce-payment-fees/

In pratica con l’attivazione di questo plugin in ogni metodo di pagamento attivo vengono aggiunti una serie di campi aggiuntivi per la gestione di costi aggiuntivi come mostra la schermata qui sotto:

costi-aggiuntivi-pagamento-woocommerce

In questo esempio ho impostato un costo aggiuntivo di euro 3,50 nel caso in cui sia impostato il pagamento in contrassegno e l’utente scelga le opzioni di pagamento indicate nel campo “abilita per i medoti di spedizione”.

Ma cosa accade nella schermata dell’ordine? Quando l’utente seleziona il metodo di pagamento “contrassegno” viene aggiunto al riepilogo dei costi la voce “Supplemento contrassegno” (=nell’esempio qui sopra) che va a sommarsi al totale, come mostra la figura qui sotto:

costi-contrassegno-esempio

Ed ecco come diventa subito facile e chiaro gestire i costi aggiuntivi del contrassegno.

Disattivare metodi di spedizione woocommerce

woocommerceIn questo articolo parliamo di come disattivare uno o più metodi di spedizione in un e-commerce woocommerce, stiamo parlando del plugin e-commerce per eccellenza molto utilizzato oggi con WordPress.

Mi è capitata di recente la necessità di dover disattivare un metodo di spedizione in caso di particolari condizioni così è nata la necessità di costruire una funzione che andasse ad intervenire sulle modalità di spedizione disponibili.

In questo esempio vado a presentare 2 opzioni per disattivare una o più metodi di spedizione nel caso in cui si attivi la spedizione gratuita:

1. Disattivare SOLO la spedizione a tariffa unica
2. Disattivare TUTTE le spedizioni attive tranne la spedizione gratuita

Questa funzione va ovviamente inserita all’interno del file functions.php all’interno del nostro template wordpress attivo, in particolare la funzione indicata è compatibile con le versioni di woocommerce di versione uguale o superiore alla 2.1

In questo momento vi posso garantire che la funzione è correttamente funzionante sulla versione woocommerce 2.3.7

add_filter( 'woocommerce_package_rates', 'nascondi_spedizioni_se_spedizione_gratis_attiva', 10, 2 );
  
function nascondi_spedizioni_se_spedizione_gratis_attiva( $spedizioni, $package ) {
     
    // Se la spedizione gratuita è attiva
    if ( isset( $spedizioni['free_shipping'] ) ) {
     
        // 1. Disattiva solo la tariffa unica
        unset( $spedizioni['flat_rate'] );
         
        // 2. Disattiva tutti i quelli attivi, abilitando solo la spedizione gratuita
        $gratuita          = $spedizioni['free_shipping'];
        $spedizioni                  = array();
        $spedizioni['free_shipping'] = $gratuita;
    }
     
    return $spedizioni;
}

Sperando come sempre che i miei articoli vi siano stati utili vi invito in caso di domande o suggerimenti a lasciare un commento qui sotto.