Abilitazione della spedizione gratuita su Woo Commerce per articoli specifici [chiuso]


8

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

L'opzione Spedizione gratuita si attiva solo sulla base del valore del carrello o tramite un codice coupon, quindi ho studiato la spedizione a tariffa forfettaria e ho scoperto che dà la priorità alla classe di spedizione più costosa rispetto a quelle più economiche. Ciò significa che la classe di spedizione gratuita che ho creato non sostituisce mai la tariffa predefinita.

Comprendo la logica alla base di ciò, ma è l'opposto di ciò di cui ho bisogno in quanto l'idea è di incentivare gli acquisti di prodotti con un margine di profitto più elevato eliminando le spese di consegna quando sono incluse in un ordine.

Non so se ciò che sto cercando di ottenere non sia semplicemente possibile all'interno di Woo Commerce. Un coupon che si applica solo a determinati prodotti / categorie sembra essere il più vicino che posso ottenere, ma preferirei non forzare gli utenti a inserire un codice al momento del pagamento.

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


3
Come mai questa domanda relativa al plugin Wordpress , votata 8 volte e favorita 3 volte dagli sviluppatori Wordpress, è stata chiusa come "off-topic" Oo
Ben

@Ben perché è un plug-in WooCommerce e non una domanda specifica per WordPress (come indicato nel centro assistenza )
Alexander Holsgrove,

Risposte:


1

Forse questo non risponde completamente alla tua domanda, ma il plug-in di spedizione della tariffa della tabella ti dà la possibilità di impostare una priorità per una determinata tariffa. Inoltre, questa discussione fornisce molti suggerimenti su dove cercare soluzioni


Grazie. Guardando la documentazione per la spedizione di tariffe da tavolo sembra che farà ciò di cui ho bisogno. Se il mio datore di lavoro richiede la licenza, aggiornerò se è utile.
James O'Neill,

Si prega di non pubblicare collegamenti a risorse esterne. Piuttosto evocali qui e usa il link sopra di esso. Se il collegamento va, la risposta è inutile e stiamo lottando duramente per prevenire la putrefazione del collegamento. -1
kaiser,

5

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

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


1
Funziona con prodotti semplici, ma non con altri tipi di prodotti, ad esempio variabili. Bel tentativo però. Questo probabilmente funzionerà per alcune persone.
Alexander Lee Williams,

Perché questo non funziona con prodotti variabili? È possibile contrassegnare ogni variazione come virtual.
BFTrick,

Sono d'accordo @BFTrick
Nathan il

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

2

Ecco uno snippet raccolto da alcuni Gists in una discussione su GitHub collegata da @Ewout in un'altra risposta. Ho aggiunto un var_dump(), così puoi decommentare e controllare esattamente cosa vuoi rimuovere.

$available_methodsè uno arraydi:

$available_methods as $method_id => $method

Confronta con $method_idse hai bisogno di controlli più specifici.

// Hide standard shipping option when free shipping is available
add_filter( 'woocommerce_available_shipping_methods', 'wpse90835_hide_standard_shipping_when_free_is_available' );
/**
 *  Hide Standard Shipping option when free shipping is available
 * 
 * @param array $available_methods
 */
function wpse90835_hide_standard_shipping_when_free_is_available( $available_methods )
{
    // Developers!: Dump this to see what you can unset
    # var_dump( $available_methods );

    // remove standard shipping option
    if ( 
        isset( $available_methods['free_shipping'] ) 
        AND isset( $available_methods['flat_rate'] )
    )
        unset( $available_methods['flat_rate'] );


    return $available_methods;
}

2

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

Puoi trovare il plug-in gratuito su wordpress.org chiamato WooCommerce Advanced Free Shipping

Spero che sia di aiuto.


0

Sulla base del codice kaiser (sopra) ho creato il seguente codice:

    /**
 *  Hide free shipping option when Standard Shipping is available
 * 
 * @param array $available_methods
 */
function mwe_hide_free_shipping_when_standard_shipping_is_available($available_methods) {

    // remove standard shipping option
    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');

E a turno per configurare WooCommerce, ho entrambe le opzioni di spedizione gratuita e forfettaria nelle opzioni di spedizione di Woo. Quindi ho appena impostato una Classe di spedizione, ho specificato il suo costo (ad es. £ 7,95) nella pagina delle opzioni forfettarie, quindi aggiungo semplicemente quella classe di spedizione ai prodotti per i quali voglio addebitare £ 7,95 p & p.


0

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.