WooCommerce 2.6 Come funziona

Questo è il mio primo di una serie di articoli che affrontano tematiche relative allo sviluppo di siti internet basati sul CMS (Content Management System) WordPress.

Diversi clienti mi chiedono una piattaforma e-commerce semplice da utilizzare, quindi la scelta solitamente ricade sull’ottimo e popolare WooCommerce.

Che cos’è WooCommerce?

Mentre ti parlo di siti ecommerce tu stai lì davanti allo schermo con una domanda in mente: “di cosa parliamo? Cos’è WooCommerce?”

Un’intuitiva piattaforma di commercio elettronico che può diventare una soluzione definitiva per coloro che vorrebbero avviare un proprio business online ma non hanno conoscenze avanzate d’informatica e programmazione.

WooCommerce 2.6: Metodi di spedizione e metodi di pagamento

Recentemente WooCommerce è stato aggiornato alla versione 2.6, introducendo diverse novità e ristrutturando in parte alcuni meccanismi interni per la gestione dei metodi di pagamento e dei metodi di spedizione.

La modifica più importante in tal senso è stata l’introduzione delle Zone di spedizione. Queste permettono di assegnare dei metodi di pagamento e tariffe a delle aree geografiche specifiche.

Pertanto quando l’acquirente avrà inserito l’indirizzo di spedizione a cui la merce verrà recapitata vedrà le modalità di pagamento e tariffe assegnate a quella specifica zona.

Come configurare metodi di spedizione e pagamento WooCommerce senza plugin?

Poichè le opzioni di spedizione ed i metodi di pagamento possono essere numerosi, e poichè a volte ci possono essere opzioni come “Spese di spedizione gratuite” se il totale del carrello supera una determinata soglia, è bene semplificare la vita all’acquirente e mostrargli solo le opzioni valide per la combinazione zona+metodo di pagamento+totale carrello.

WooCommerce 2.6 Metodi di pagamento

Facciamo un esempio pratico, nei settaggi abbiamo configurato i seguenti metodi:

  • Spedizione Gratuita 6 giorni se la spesa minima è di €30
  • Spedizione Rapida 3 giorni €4
  • Spedizione Normale 6 giorni €3

Se l’acquirente ha selezionato vari articoli per un totale uguale o superiore a €30 sarebbe ridondante mostrare 2 modalità simili “Spedizione 6 giorni” una gratuita ed una a pagamento. Sarebbe opportuno quindi non far visualizzare quella a pagamento, in quanto avrebbe a disposizione la modalità Gratuita.

Dopo aver effettuato numerose ricerche e vari tentativi ho realizzato che i codici disponibili online sui vari forum di supporto facevano riferimento alle vecchie versioni di WooCommerce, e che non funzionavano più dopo l’aggiornamento alla versione 2.6.

Come ho risolto con il sito e-commerce del mio cliente? Con la funzione add_filter che vi spiegherò qui di seguito.

Innanzitutto ho dovuto:

  1. Capire come fossero dichiarati i metodi di pagamento interessati.
    Per fare ciò ho utilizzato print_r($available_methods), che mi ha restituito “free_shipping:4” e “flat_rate:2”. Il primo è il metodo “Spedizione Gratuita 6 giorni”, mentre il secondo è “Spedizione Normale 6 giorni €3”.
  2. Una volta capito questo, ho semplicemente detto nella funzione che: se è disponibile l’opzione “Spedizione Gratuita” (condizione che si verifica quando il totale del carrello è uguale o superiore a €30) non far vedere all’utente l’altra opzione “Spedizione Normale 6 giorni €3“.

Questo è il codice che ho utilizzato, inserendolo nel file functions.php del tema WordPress in uso.

add_filter( 'woocommerce_package_rates', 'hide_regular_shipping_if_free_is_available' , 10, 1 );
 function hide_regular_shipping_if_free_is_available( $available_methods ) {
 // print_r($available_methods);
 // questa è la Spedizione Gratuita 6 giorni
 if( isset( $available_methods['free_shipping:4'] ) ) { 
 foreach( $available_methods as $method_name => $method ) {
 // questa è la Spedizione Normale 6 giorni €3
 if ( $method_name =='flat_rate:2' ) 
 unset( $available_methods[ $method_name ] );
  }
 }
 return $available_methods;
 }

In questo modo nella sua piattaforma WooCommerce se un utente ha a disposizione la Spedizione Gratuita non vedrà anche la Spedizione a pagamento della stessa tipologia (di 6 giorni nel mio caso).

Naturalmente questo filtro, una volta capito il funzionamento, è modificabile ed adattabile a diverse esigenze.

Da notare la riga commentata

// print_r($available_methods);

(ricordiamo che i commenti non sono eseguiti ma servono per… commentare e prendere appunti). Decommentarla momentaneamente per individuare i nomi esatti delle modalità spedizione su cui ci serve operare.

Spero che questa breve spiegazione sia utile a qualcuno che si sia imbattuto nella mia stessa situazione.

Buon coding a tutti!