Abilitare la spedizione gratuita su WooCommerce per prodotti specifici

14 mar 2013, 15:15:18
Visualizzazioni: 24.1K
Voti: 9

Vorrei sapere se è possibile abilitare la spedizione gratuita con WooCommerce solo se determinati articoli (o articoli di determinate categorie/classi di spedizione) sono inclusi nel carrello.

L'opzione Spedizione Gratuita si attiva solo in base al valore del carrello o tramite un codice coupon, quindi ho esaminato la spedizione a Tariffa Fissa e ho scoperto che dà priorità alla classe di spedizione più costosa rispetto a quelle più economiche. Questo significa che la classe di spedizione gratuita che ho creato non sovrascrive mai la tariffa predefinita.

Capisco la logica dietro questo comportamento, ma è l'opposto di ciò di cui ho bisogno, poiché l'idea è quella di incentivare gli acquisti di prodotti con margini di profitto più elevati eliminando le spese di spedizione quando sono inclusi in un ordine.

Non so se quello che sto cercando di ottenere non sia semplicemente possibile all'interno di WooCommerce. Un coupon che si applica solo a determinati prodotti/categorie sembra essere la soluzione più vicina, ma preferirei non costringere gli utenti a inserire un codice al checkout.

Qualcuno sa se esistono modi più semplici per offrire la spedizione gratuita agli utenti che acquistano determinati prodotti?

3
Commenti

Come diavolo è possibile che questa domanda relativa a un plugin di WordPress, votata positivamente 8 volte e aggiunta ai preferiti da 3 sviluppatori WordPress, sia stata chiusa come "fuori tema"? O.o

Ben Ben
23 apr 2015 07:18:42

@Ben perché riguarda un plugin WooCommerce e non una domanda specifica su WordPress (come indicato nel centro assistenza)

Alexander Holsgrove Alexander Holsgrove
31 ott 2019 12:54:11

Sono arrivato a questa domanda cercando una soluzione a questo problema. Vorrei quindi condividere un link più recente per i visitatori. Questo proviene dalla documentazione ufficiale di WooCommerce e non ha 7 anni. Risponde alla domanda con uno snippet da inserire nel functions.php https://woocommerce.com/document/hide-other-shipping-methods-when-free-shipping-is-available/

Peter Højlund Andersen Peter Højlund Andersen
16 dic 2021 14:06:56
Tutte le risposte alla domanda 6
4

Qualcuno sa se esistono modi più semplici per offrire la spedizione gratuita agli utenti che acquistano determinati prodotti?

In realtà, quando crei un prodotto puoi semplicemente contrassegnarlo come prodotto Virtuale direttamente nell'editor del prodotto e questo escluderà completamente la spedizione per quell'articolo.

9 mag 2013 19:06:00
Commenti

Questo funziona per i prodotti semplici, ma non per altri tipi di prodotti -- ad esempio quelli variabili. Bel tentativo comunque. Probabilmente funzionerà per alcune persone.

Alexander Lee Williams Alexander Lee Williams
6 set 2013 23:45:47

Perché non funziona per i prodotti variabili? Puoi impostare ogni variazione come virtual.

BFTrick BFTrick
17 set 2013 22:37:42

Concordo @BFTrick

Nathan Nathan
18 set 2013 21:09:28

Anche questo è negativo perché il sistema non accederà all'indirizzo di SPEDIZIONE del cliente, che è piuttosto importante ;)

Kane Kane
14 apr 2015 01:37:08
0

Ecco un frammento di codice raccolto da alcuni Gist presi da una discussione su GitHub segnalata da @Ewout in un'altra risposta. Ho aggiunto un var_dump(), così puoi decommentarlo e verificare cosa esattamente vuoi rimuovere.

$available_methods è un array di:

$available_methods as $method_id => $method

Confronta con $method_id se hai bisogno di controlli più specifici.

// Nascondi l'opzione di spedizione standard quando è disponibile la spedizione gratuita
add_filter( 'woocommerce_available_shipping_methods', 'wpse90835_hide_standard_shipping_when_free_is_available' );
/**
 *  Nasconde l'opzione di spedizione standard quando è disponibile la spedizione gratuita
 * 
 * @param array $available_methods
 */
function wpse90835_hide_standard_shipping_when_free_is_available( $available_methods )
{
    // Sviluppatori!: Usa questo dump per vedere cosa puoi rimuovere
    # var_dump( $available_methods );

    // rimuove l'opzione di spedizione standard
    if ( 
        isset( $available_methods['free_shipping'] ) 
        AND isset( $available_methods['flat_rate'] )
    )
        unset( $available_methods['flat_rate'] );


    return $available_methods;
}
6 set 2013 23:58:27
0

Ho creato un plugin per WooCommerce che permette agli utenti di configurare impostazioni avanzate per la spedizione gratuita. Nel plugin è possibile selezionare determinati prodotti per la spedizione gratuita.

Puoi trovare il plugin gratuitamente su wordpress.org chiamato WooCommerce Advanced Free Shipping

Spero che sia utile.

4 mag 2014 18:47:35
2

Forse questo non risponde completamente alla tua domanda, ma il plugin per le spedizioni a tariffa basata su tabella ti offre l'opzione di impostare una priorità per una tariffa specifica. Inoltre, questa discussione fornisce molti indizi su dove cercare possibili soluzioni

15 mar 2013 10:36:05
Commenti

Grazie. Guardando la documentazione per Table Rate Shipping sembra che faccia esattamente quello di cui ho bisogno. Se il mio datore di lavoro accetterà la licenza, aggiornerò per confermare se è utile.

James O'Neill James O'Neill
15 mar 2013 13:00:04

Per favore non postare link a risorse esterne. Piuttosto riassumile qui e usa il link sopra di esse. Se il link smette di funzionare, la risposta diventa inutile e stiamo combattendo duramente per prevenire la scomparsa dei link. -1

kaiser kaiser
6 set 2013 23:48:56
0

Basandomi sul codice di kaiser (sopra) ho creato il seguente codice:

    /**
 *  Nasconde l'opzione di spedizione gratuita quando è disponibile la Spedizione Standard
 * 
 * @param array $available_methods
 */
function mwe_hide_free_shipping_when_standard_shipping_is_available($available_methods) {

    // rimuove l'opzione di spedizione standard
    if (isset($available_methods['free_shipping']) AND isset( $available_methods['flat_rate'])) {
        unset($available_methods['free_shipping']);
    }

    return $available_methods;
}
add_filter('woocommerce_available_shipping_methods', 'mwe_hide_free_shipping_when_standard_shipping_is_available');

Per quanto riguarda la configurazione di WooCommerce, ho abilitato sia la Spedizione Gratuita che il Tasso Fisso nelle Opzioni di Spedizione di Woo. Poi ho semplicemente impostato una Classe di Spedizione, specificato il suo costo (ad esempio, £7.95) nella pagina delle opzioni del Tasso Fisso, e quindi ho assegnato quella classe di spedizione ai prodotti per i quali voglio addebitare £7.95 di spese di spedizione.

11 gen 2014 15:16:09
0

L'opzione "virtuale" rimuoverà tutti i costi di spedizione, ma elimina anche la possibilità di spedire a un indirizzo diverso rispetto a quello di fatturazione del cliente. Questo non è un problema se il cliente acquista anche altri prodotti non virtuali, ma lo è se è l'unica cosa che acquista.

7 mag 2014 21:44:00