Come nascondere i metodi di spedizione WooCommerce per determinate condizioni
Pubblicato: 2020-06-15Il metodo di spedizione è un servizio e un addebito che un cliente vede al momento del pagamento durante l'acquisto di qualsiasi articolo. Sarà un'opzione essenziale per un negozio di eCommerce per un'esperienza di consegna fluida .
Come soluzione di eCommerce, WooCommerce fornisce anche metodi di spedizione come Spedizione gratuita , Tariffa fissa e Ritiro locale che possono essere impostati per varie zone di spedizione in base alle località. Ad esempio, l'opzione di spedizione gratuita è disponibile solo per una determinata gamma di codici postali vicini alla posizione del negozio e l'opzione a tariffa fissa è disponibile per l'altra parte delle zone di consegna.

Le opzioni di spedizione basate sulla posizione possono essere facilmente raggiunte dal plug-in, ma per determinate condizioni in cui la posizione non gioca un ruolo vitale, diventa molto difficile per i proprietari dei negozi raggiungerlo. Le condizioni potrebbero essere:
- Alcuni metodi di spedizione come la spedizione gratuita non dovrebbero essere disponibili se il peso dell'ordine è superiore a un certo numero di libbre o kg.
- La disponibilità di alcuni metodi di spedizione si basa anche sul numero di quantità o sul prezzo dell'intero ordine. Ad esempio, se il totale dell'ordine è superiore a $ 250, dovrebbe essere disponibile solo il metodo di spedizione gratuita e non dovrebbe essere disponibile alcun metodo di spedizione a pagamento.
Possono esserci più condizioni per le quali i metodi di spedizione devono essere mostrati o nascosti durante il checkout, ma in questo post spiegheremo quanto sopra 2. Per ottenere ciò per il tuo negozio WooCommerce puoi aggiungere uno snippet di codice o utilizzare una qualsiasi delle tariffe di spedizione plugin disponibili.
Utilizzo di un frammento di codice
Prendiamo un esempio della condizione 1 sopra menzionata in cui la spedizione gratuita non dovrebbe essere disponibile se il peso dell'ordine è superiore a 5 kg. Puoi ottenere ciò aggiungendo il codice seguente nel file functions.php del tema attualmente attivo.
Nota: queste modifiche possono essere sovrascritte con un aggiornamento del tema corrente, quindi si consiglia di creare un tema figlio e aggiungere i frammenti di codice richiesti nel file functions.php del tema figlio. Oppure puoi utilizzare il plug-in Code Snippets per aggiungere frammenti personalizzati.
/** * Nascondi la spedizione gratuita quando il peso dell'ordine è superiore a 10 kg. * * @param array $rates Matrice di tariffe trovate per il pacchetto. * @return array */ funzione ts_hide_free_shipping_for_order_weight ($ tariffe, $ pacchetto) { $ordine_peso = WC()->carrello->get_carrello_contenuto_peso(); se ( $peso_ordine > 5 ) { foreach( $ tariffe come $ rate_id => $ rate_val ) { if ( 'spedizione_gratuita' === $rate_val->get_method_id() ) { unset($tariffe[$rate_id]); } } } restituire $tariffe; } add_filter( 'woocommerce_package_rates', 'ts_hide_free_shipping_for_order_weight', 100, 2 );
Qui il filtro woocommerce_package_rates viene utilizzato per modificare le tariffe calcolate sul carrello. Contiene tutte le tariffe di spedizione che saranno disponibili una volta aggiunto il prodotto al carrello. Quindi, dobbiamo deselezionare il metodo di spedizione richiesto che sarà Spedizione gratuita nel nostro caso dall'array restituito da questo filtro se il peso dell'ordine è superiore a 5 kg.
Pagina del prodotto:

Pagina del carrello con metodi di spedizione:

Un altro esempio di nascondere i metodi di spedizione su WooCommerce Cart sarebbe consentire solo la spedizione gratuita durante il checkout quando il totale dell'ordine è superiore a $ 250. Questo può essere ottenuto aggiungendo il codice seguente nel file functions.php.

/** * Nascondi le tariffe di spedizione quando il totale dell'ordine è superiore a $ 250. * * @param array $rates Matrice di tariffe trovate per il pacchetto. * @return array */ funzione ts_hide_shipping_for_order_total ($ tariffe) { $libero = array(); $totale_ordine = WC()->carrello->get_subtotale(); if( $totale_ordine > 250 ) { foreach ( $ tariffe come $ rate_id => $ rate ) { if ( 'spedizione_gratuita' === $rate->get_method_id() ) { $gratuito[ $rate_id ] = $tariffa; } } } Restituzione ! vuoto ($ gratuito)? $gratuito : $tariffe; } add_filter('woocommerce_package_rates', 'ts_hide_shipping_for_order_total', 100);
Qui, quando il totale dell'ordine è superiore a $ 250, dal filtro viene restituito un array con solo metodi di spedizione gratuiti, altrimenti vengono restituite tutte le tariffe di spedizione.

Negli esempi precedenti, abbiamo preso il riferimento del metodo di spedizione gratuita, quindi l'id del metodo utilizzato è free_shipping. Per modificare altri metodi di spedizione, gli ID metodo sono:
Ritiro locale: ritiro_locale
Forfait : forfettario
La funzione get_method_id() recupera l'id del metodo solo per i 3 metodi per tutte le zone di spedizione e non per un singolo metodo di una singola zona di spedizione, quindi nasconderà tutte le tariffe forfettarie, il ritiro locale o i metodi di spedizione gratuita disponibili durante il checkout. Ma se si desidera nascondere un metodo di spedizione specifico, è necessario utilizzare la combinazione di ID metodo di spedizione e ID istanza.
Ad esempio, 'flat_rate:3' dove 3 è l'ID istanza univoco memorizzato per ogni metodo di spedizione per una zona nel database. Puoi trovare l'ID istanza del metodo di spedizione facendo clic con il pulsante destro del mouse sul metodo di spedizione e ispezionare l'elemento nello strumento per sviluppatori nel tuo browser.
Utilizzo di diverse estensioni WooCommerce per i metodi di spedizione
Sono disponibili più estensioni a pagamento o gratuite per impostare metodi di spedizione per condizioni diverse. Alcuni dei plugin più utilizzati sono:
Plugin a pagamento:
- Table Rate Shipping di WooCommerce : questo plugin estende le opzioni di spedizione predefinite di WooCommerce offrendo opzioni di spedizione altamente personalizzabili.
- Plugin di spedizione forfettario avanzato per WooCommerce : questo plugin ti aiuterà a configurare le tariffe di spedizione sul tuo negozio in base a regole di spedizione avanzate.
- Plug-in WooCommerce Advance Shipping di Jeroen sormani : questo plug-in ti consente di abilitare i metodi di spedizione durante il checkout in base a regole impostate. Le regole possono essere impostate per diversi dettagli del carrello, dettagli del prodotto o diversi dettagli dell'utente .
- Spedizione flessibile Pro per WooCommerce di WP Desk : questo plug-in consente di abilitare il metodo di spedizione in base al particolare articolo, articolo del carrello, prezzo o regole di peso .
Plugin gratuiti:
Alcuni dei plugin di cui sopra hanno anche una versione gratuita per loro con funzionalità limitate. Sono:
- Spedizione gratuita avanzata WooCommerce di Jeroen Sormani: questa è una versione gratuita del plug-in WooCommerce Advanced Shipping. L'unica differenza con entrambi i plug-in è che questo plug-in consente solo il metodo di spedizione gratuito per le regole stabilite e il plug-in a pagamento consente tutti i metodi di spedizione.
- Spedizione flessibile per WooCommerce di WP Desk : questa è una versione gratuita del plugin Flexible Shipping Pro per WooCommerce. Consente di impostare le modalità di spedizione solo per il prezzo e il peso.
Per una spiegazione dettagliata dei plugin sopra menzionati puoi controllare questo post.
Conclusione
Come abbiamo visto in questo post, le opzioni di spedizione anticipata possono essere ottenute semplicemente aggiungendo uno snippet di codice sul tuo sito Web o utilizzando i vari plugin disponibili. Quindi puoi provare lo snippet di codice fornito o sperimentare uno qualsiasi dei plugin e farci sapere se questo è vantaggioso per il tuo negozio WooCommerce.