Aktivieren des kostenlosen Versands von Woo Commerce für bestimmte Artikel [geschlossen]

8

Ich möchte wissen, ob es möglich ist, den kostenlosen Versand mit Woo Commerce nur 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 Versand mit Flatrate untersucht und festgestellt, dass die teuerste Versandklasse Vorrang vor den günstigeren hat. Dies bedeutet, dass die von mir erstellte kostenlose Versandklasse niemals die Standardgebühr ü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 Versandkosten eliminiert werden, wenn diese 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 mir am nächsten zu kommen, aber ich möchte die Benutzer lieber nicht zwingen, an der Kasse einen Code einzugeben.

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

James O'Neill
quelle
3
Wie um alles in der Welt wurde diese Wordpress- Plugin-bezogene Frage, die 8-mal hochgestuft und 3-mal von Wordpress- Entwicklern favorisiert wurde , als "Off-Topic" geschlossen. Oo
Ben
@ Ben, weil es ein WooCommerce-Plugin ist und keine WordPress-spezifische Frage (wie in der Hilfe angegeben )
Alexander Holsgrove

Antworten:

1

Vielleicht beantwortet dies Ihre Frage nicht vollständig, aber das Plugin für den Versand von Tabellenpreisen bietet Ihnen die Möglichkeit, eine Priorität für einen bestimmten Tarif festzulegen. Darüber hinaus gibt diese Diskussion viele Hinweise, wo Sie nach Lösungen suchen können

Ewout
quelle
Vielen Dank. Wenn Sie sich die Dokumentation für Table Rate Shipping ansehen, scheint es, dass es das tut, was ich brauche. Wenn mein Arbeitgeber die Lizenz beantragt, werde ich aktualisieren, ob sie von Nutzen ist.
James O'Neill
Bitte posten Sie keine Links zu externen Ressourcen. Beschwöre sie lieber hier und benutze den Link darüber. Wenn der Link geht, ist die Antwort nutzlos und wir haben einen harten Kampf, um das Verrotten des Links zu verhindern. -1
Kaiser
5

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

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.

Nathan
quelle
1
Dies funktioniert für einfache Produkte, jedoch nicht für andere Produkttypen - beispielsweise variabel. Trotzdem netter Versuch. Dies wird wahrscheinlich für einige Leute funktionieren.
Alexander Lee Williams
Warum funktioniert das bei variablen Produkten nicht? Sie können jede Variation als markieren virtual.
BFTrick
Ich stimme zu @BFTrick
Nathan
1
Dies ist auch schlecht, weil das System nicht auf die Versandadresse des Kunden zugreifen kann, was ziemlich wichtig ist;)
Kane
2

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

$available_methodsist ein arrayvon:

$available_methods as $method_id => $method

Vergleichen $method_idSie mit, 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;
}
Kaiser
quelle
2

Ich habe ein WooCommerce-Plugin erstellt, mit dem Benutzer erweiterte Einstellungen für den kostenlosen Versand konfigurieren können. Im Plugin können bestimmte Produkte für den kostenlosen Versand ausgewählt werden.

Sie finden das Plugin kostenlos auf wordpress.org mit dem Namen WooCommerce Advanced Free Shipping

Hoffe das hilft.

Sormano
quelle
0

Basierend auf Kaisers Code (oben) habe ich 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 beim Einrichten von WooCommerce habe ich in den Woo-Versandoptionen sowohl kostenlosen Versand als auch Flatrate aktiviert. Dann habe ich einfach eine Versandklasse eingerichtet, deren Kosten (z. B. £ 7,95) auf der Seite mit den Flatrate-Optionen angegeben und diese Versandklasse dann einfach zu den Produkten hinzugefügt, für die ich £ 7,95 p & p berechnen möchte.

Ban-Geoengineering
quelle
0

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 wenn es das einzige ist, was er kauft.

user51366
quelle