it-swarm-eu.dev

Povolení doprava zdarma na Woo Commerce podle konkrétních položek

Chtěl bych vědět, zda je možné s Woo Commerce povolit dopravu pouze v případě, že jsou v košíku zahrnuty určité položky (nebo položky určitých kategorií/přepravních tříd).

Volba Doprava zdarma se aktivuje pouze na základě hodnoty vozíku nebo prostřednictvím kuponového kódu, takže jsem prozkoumala zásilku Flat Rate a zjistila, že upřednostňuje nejdražší přepravní třídu oproti levnějším. To znamená, že třída volného odeslání, kterou jsem vytvořil, nikdy nenahradí výchozí poplatek.

Chápu logiku, která je za tím vším, ale je to opak toho, co potřebuji, protože myšlenkou je podněcovat nákupy produktů s vyššími ziskovými maržemi tím, že se eliminují poplatky za doručení, pokud jsou zahrnuty v objednávce.

Nevím, jestli to, co se snažím dosáhnout, není v rámci Woo Commerce možné. Kupón, který se vztahuje pouze na určité produkty/kategorie, se zdá být nejblíže, kterou mohu získat, ale raději nebudu nutit uživatele, aby při pokladně zadávali kód.

Ví někdo, jestli existují jednodušší způsoby, jak dát uživatelům, kteří si kupují určité produkty, dopravu zdarma?

8
James O'Neill

Možná, že to plně neodpovídá na vaši otázku, ale tabulkový modul pro přepravu vám dává možnost nastavit prioritu pro konkrétní sazbu. Dále - tato diskuse dává mnoho tipů, kde byste mohli hledat řešení

1
Ewout

Ví někdo, jestli existují jednodušší způsoby, jak dát uživatelům, kteří si kupují určité produkty, dopravu zdarma?

Vlastně, když vytváříte produkt, můžete jej označit jako virtuální produkt přímo v rámci produktového editoru a tím vyloučíte dodávku pro tuto položku.

5
Nathan

Zde je úryvek z některých Gistů z diskuse o problémech GitHub spojených @Ewoutem v jiné odpovědi. Přidal jsem var_dump(), takže můžete odkomentovat a zkontrolovat, co přesně chcete odstranit.

$available_methods je array z:

$available_methods as $method_id => $method

Porovnejte s $method_id, pokud potřebujete více specifických kontrol.

// 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
kaiser

Vytvořil jsem plugin WooCommerce, který umožňuje uživatelům konfigurovat pokročilá nastavení pro dopravu zdarma. V pluginu je možné vybrat určité produkty pro dopravu zdarma.

Plugin můžete najít zdarma na wordpress.org s názvem WooCommerce Advanced Doprava zdarma

Snad to pomůže.

2
Sormano

Možnost „virtuální“ odstraní všechny náklady na přepravu, ale také odstraní možnost odeslání na jinou adresu, než je fakturační adresa zákazníka. To není problém, pokud si zákazník koupí i jiné, než virtuální produkty, ale je to jen to, co kupují.

0
user51366

Na základě kaiserova kódu (výše) jsem vytvořil následující kód:

    /**
 *  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');

A ve střídání nastavení WooCommerce, mám volnou dopravu a paušální sazby jak povoleno v možnostech Woo Shipping. Pak jsem jen nastavit přepravní třídu, specifikovat jeho náklady (např. 7,95 liber) na stránce Flat Rate options a pak jen přidat tuto expediční třídu do produktů, které chci účtovat za £ 7,95 p & p.

0