it-swarm.com.de

Aktivieren des kostenlosen Versands von Woo Commerce nach bestimmten Artikeln

Ich möchte wissen, ob es möglich ist, den kostenlosen Versand mit Woo Commerce nur dann zu aktivieren, wenn bestimmte Artikel (oder Artikel bestimmter Kategorien/Versandklassen) im Warenkorb enthalten sind.

Die Option "Kostenloser Versand" wird nur auf der Grundlage des Warenkorbwerts oder über einen Gutscheincode aktiviert. Daher habe ich den Pauschalversand untersucht und festgestellt, dass die teuerste Versandklasse Vorrang vor den günstigeren hat. Dies bedeutet, dass die von mir erstellte kostenlose Versandklasse die Standardgebühr nie überschreibt.

Ich verstehe die Logik dahinter, aber es ist das Gegenteil von dem, was ich brauche, da die Idee darin besteht, Anreize für den Kauf von Produkten mit höherer Gewinnspanne zu schaffen, indem die Versandkosten beseitigt werden, wenn sie in einer Bestellung enthalten sind.

Ich weiß nicht, ob das, was ich erreichen möchte, in Woo Commerce einfach nicht möglich ist. Ein Gutschein, der nur für bestimmte Produkte/Kategorien gilt, scheint der beste zu sein, den ich bekommen kann, aber ich möchte die Benutzer lieber nicht dazu zwingen, an der Kasse einen Code einzugeben.

Weiß jemand, ob es einfachere Möglichkeiten gibt, Benutzern, die bestimmte Produkte kaufen, kostenlosen Versand zu gewähren?

8
James O'Neill

Vielleicht ist Ihre Frage dadurch nicht vollständig beantwortet, aber das Versand-Plugin für Tischpreise bietet Ihnen die Möglichkeit, eine Priorität für einen bestimmten Tarif festzulegen. Außerdem gibt diese Diskussion viele Hinweise, wo Sie nach Lösungen suchen können

1
Ewout

Weiß jemand, ob es einfachere Möglichkeiten gibt, Benutzern, die bestimmte Produkte kaufen, kostenlosen Versand zu gewähren?

Wenn Sie ein Produkt erstellen, können Sie es direkt im Produkteditor als virtuelles Produkt markieren. Dadurch wird der Versand für diesen Artikel vollständig ausgeschlossen.

5
Nathan

Hier ist ein Ausschnitt aus einer GitHub-Diskussion, die von @Ewout in einer anderen Antwort verlinkt wurde. Ich habe eine var_dump() hinzugefügt, damit Sie das Kommentarzeichen entfernen und überprüfen können, was genau Sie entfernen möchten.

$available_methods ist eine array von:

$available_methods as $method_id => $method

Vergleichen Sie mit $method_id, wenn Sie spezifischere Prüfungen benötigen.

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

Ich habe ein WooCommerce-Plugin erstellt, mit dem Benutzer erweiterte Einstellungen für den kostenlosen Versand konfigurieren können. Im Plugin ist es möglich, bestimmte Produkte für den kostenlosen Versand auszuwählen.

Sie finden das Plugin kostenlos auf wordpress.org unter der Bezeichnung WooCommerce Advanced Free Shipping .

Hoffe das hilft.

2
Sormano

Die Option "Virtuell" entfernt alle Versandkosten, löscht jedoch auch die Option, an eine andere Adresse als die Rechnungsadresse des Kunden zu versenden. Dies ist kein Problem, wenn der Kunde auch andere, nicht virtuelle Produkte kauft, sondern nur, wenn er diese kauft.

0
user51366

Basierend auf Kaisers Code (oben) habe ich den folgenden Code erstellt:

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

Und abwechselnd zum Einrichten von WooCommerce sind in den Woo-Versandoptionen die Optionen "Kostenloser Versand" und "Flatrate" aktiviert. Dann richte ich einfach eine Versandklasse ein, gebe die Kosten (z. B. 7,95 £) auf der Seite mit den Pauschaloptionen an und füge diese Versandklasse zu den Produkten hinzu, für die ich 7,95 £ Versandkosten berechnen möchte.

0