So verbergen Sie WooCommerce-Versandmethoden für bestimmte Bedingungen

Veröffentlicht: 2020-06-15

Die Versandart ist ein Service und eine Gebühr , die ein Kunde beim Kauf eines Artikels an der Kasse sieht. Es wird eine wesentliche Option für einen E-Commerce-Shop für ein reibungsloses Liefererlebnis sein.

Als E-Commerce-Lösung bietet WooCommerce auch Versandmethoden wie Kostenloser Versand , Flatrate und Abholung vor Ort, die je nach Standort für verschiedene Versandzonen eingerichtet werden können. Beispielsweise ist die Option „Kostenloser Versand“ nur für eine bestimmte Reihe von Postleitzahlen in der Nähe des Geschäftsstandorts verfügbar, und die Option „Flatrate“ ist für den anderen Teil der Lieferzonen verfügbar.

Default Shipping Methods
Standardversandmethoden

Standortbasierte Versandoptionen können durch das Plugin leicht erreicht werden, aber unter bestimmten Bedingungen, bei denen der Standort keine entscheidende Rolle spielt, wird es für die Ladenbesitzer sehr schwierig, dies zu erreichen. Die Bedingungen könnten sein:

  1. Bestimmte Versandmethoden wie der kostenlose Versand sollten nicht verfügbar sein, wenn das Bestellgewicht eine bestimmte Anzahl von lbs oder kg übersteigt.
  2. Die Verfügbarkeit einiger Versandarten basiert auch auf der Anzahl der Mengen oder dem Preis der gesamten Bestellung. Wenn die Bestellsumme beispielsweise mehr als 250 $ beträgt, sollte nur die kostenlose Versandmethode verfügbar sein und es sollten keine kostenpflichtigen Versandmethoden verfügbar sein.

Es kann mehr solcher Bedingungen geben, für die die Versandmethoden während des Bezahlvorgangs angezeigt oder ausgeblendet werden müssen, aber in diesem Beitrag werden wir das oben genannte 2 erklären. Um dies für Ihren WooCommerce-Shop zu erreichen, können Sie ein Code-Snippet hinzufügen oder einen beliebigen Versandtarif verwenden Plugins verfügbar.

Verwenden eines Code-Snippets

Nehmen wir ein Beispiel für die oben erwähnte Bedingung 1, bei der der kostenlose Versand nicht verfügbar sein sollte, wenn das Bestellgewicht mehr als 5 kg beträgt. Sie können dies erreichen, indem Sie den folgenden Code in die Datei functions.php des derzeit aktiven Designs einfügen.

Hinweis: Diese Änderungen können mit einem Update des aktuellen Themes überschrieben werden, daher empfiehlt es sich, ein Child-Theme zu erstellen und die erforderlichen Codeschnipsel in der functions.php-Datei des Child-Themes hinzuzufügen. Oder Sie können das Plugin Code Snippets verwenden, um benutzerdefinierte Snippets hinzuzufügen.

 /** 
 * Kostenloser Versand ausblenden, wenn das Bestellgewicht mehr als 10 kg beträgt. 
 * 
 * @param array $rates Array der für das Paket gefundenen Preise. 
 * @return-Array 
 */ 
function ts_hide_free_shipping_for_order_weight( $rates, $package ) { 
    $order_weight = WC()->cart->get_cart_contents_weight(); 
 
    if ( $order_weight > 5 ) { 
        foreach( $rates as $rate_id => $rate_val ) { 
            if ( 'free_shipping' === $rate_val->get_method_id() ) { 
                unset( $rates[ $rate_id ] );
            } 
        } 
    } 
    $rate zurückgeben; 
} 

add_filter( 'woocommerce_package_rates', 'ts_hide_free_shipping_for_order_weight', 100, 2 );

Hier wird der Filter woocommerce_package_rates verwendet, um die berechneten Raten für den Warenkorb zu ändern. Es enthält alle Versandkosten, die verfügbar sind, sobald das Produkt in den Warenkorb gelegt wird. Daher müssen wir die erforderliche Versandmethode deaktivieren, die in unserem Fall kostenloser Versand aus dem von diesem Filter zurückgegebenen Array ist, wenn das Bestellgewicht mehr als 5 kg beträgt.

Produktseite:

Product with 6kg weight
Produkt mit 6kg Gewicht

Warenkorbseite mit Versandarten:

Free shipping is not available for the product with weight more than 5kg
Kostenloser Versand ist für das Produkt mit einem Gewicht von mehr als 5 kg nicht verfügbar

Ein weiteres Beispiel für das Ausblenden von Versandmethoden im WooCommerce-Warenkorb wäre, dass nur der kostenlose Versand während des Bezahlvorgangs zugelassen wird, wenn die Bestellsumme mehr als 250 $ beträgt. Dies kann durch Hinzufügen des folgenden Codes in der Datei functions.php erreicht werden.

 /**
 * Versandkosten ausblenden, wenn die Bestellsumme mehr als 250 $ beträgt.
 *
 * @param array $rates Array der für das Paket gefundenen Preise.
 * @return-Array
 */
function ts_hide_shipping_for_order_total( $rates ) {
  $frei = Array();

  $order_total = WC()->Warenkorb->get_subtotal();
  
  if( $order_total > 250 ) {
    foreach ( $rates als $rate_id => $rate ) {
      if ( 'free_shipping' === $rate->get_method_id() ) {
        $free[ $rate_id ] = $rate;
      }
    }
  }
  Rückkehr ! leer( $frei ) ? $frei : $Preise;
}
add_filter( 'woocommerce_package_rates', 'ts_hide_shipping_for_order_total', 100 );

Wenn hier die Bestellsumme mehr als 250 $ beträgt, wird ein Array mit nur kostenlosen Versandmethoden vom Filter zurückgegeben, andernfalls werden alle Versandtarife zurückgegeben.

Hide Shipping Rate when Order total is more than $250
Versandkosten ausblenden, wenn die Bestellsumme mehr als 250 $ beträgt

In den obigen Beispielen haben wir die Referenz der kostenlosen Versandmethode verwendet, daher ist die verwendete Methoden-ID free_shipping. Für die Änderung anderer Versandmethoden lauten die Methoden-IDs:

Lokale Abholung: local_pickup
Flatrate : flat_rate

Die Funktion get_method_id() ruft die Methoden-ID nur für die 3 Methoden für alle Versandzonen und nicht für eine einzelne Methode einer einzelnen Versandzone ab, sodass alle Flatrates, lokale Abholung oder kostenlose Versandmethoden, die während des Bezahlvorgangs verfügbar sind, ausgeblendet werden. Wenn Sie jedoch eine bestimmte Versandart ausblenden möchten, muss die Kombination aus Versandart-ID und Instanz-ID verwendet werden.

Beispiel: „flat_rate:3“, wobei 3 die eindeutige Instanz-ID ist, die für jede Versandmethode für eine Zone in der Datenbank gespeichert ist. Sie finden die Instanz-ID der Versandmethode, indem Sie mit der rechten Maustaste auf die Versandmethode klicken und das Element im Entwicklertool in Ihrem Browser überprüfen.

Instance ID

Verwendung verschiedener WooCommerce-Erweiterungen für Versandmethoden

Es stehen mehrere kostenpflichtige oder kostenlose Erweiterungen zur Verfügung, um Versandmethoden für unterschiedliche Bedingungen einzurichten. Einige der am häufigsten verwendeten Plugins sind:

Kostenpflichtige Plugins:

  1. Table Rate Shipping by WooCommerce : Dieses Plugin erweitert die Standard-Versandoptionen von WooCommerce und bietet Ihnen hochgradig anpassbare Versandoptionen.
  2. Erweitertes Flatrate-Versand-Plugin für WooCommerce : Dieses Plugin hilft Ihnen bei der Konfiguration der Versandtarife in Ihrem Shop basierend auf erweiterten Versandregeln.
  3. WooCommerce Advance Shipping-Plugin von Jeroen Sormani : Dieses Plugin ermöglicht es Ihnen, Versandmethoden während des Bezahlvorgangs basierend auf festgelegten Regeln zu aktivieren. Regeln können für verschiedene Warenkorbdetails, Produktdetails oder verschiedene Benutzerdetails festgelegt werden.
  4. Flexible Shipping Pro für WooCommerce von WP Desk : Mit diesem Plugin können Sie die Versandmethode basierend auf den jeweiligen Artikel-, Warenkorb-Positions-, Preis- oder Gewichtsregeln aktivieren.

Kostenlose Plugins:

Einige der oben genannten Plugins haben auch eine kostenlose Version mit eingeschränkten Funktionen. Sie sind:

  1. WooCommerce Advanced Free Shipping von Jeroen Sormani: Dies ist eine kostenlose Version des WooCommerce Advanced Shipping-Plugins. Der einzige Unterschied zwischen beiden Plugins besteht darin, dass dieses Plugin nur eine kostenlose Versandmethode für festgelegte Regeln zulässt und das kostenpflichtige Plugin alle Versandmethoden zulässt.
  2. Flexibler Versand für WooCommerce von WP Desk : Dies ist eine kostenlose Version des Plugins Flexible Shipping Pro für WooCommerce. Es ermöglicht die Einstellung von Versandmethoden nur für den Preis und das Gewicht.

Eine detaillierte Erklärung der oben genannten Plugins finden Sie in diesem Beitrag.

Fazit

Wie wir in diesem Beitrag gesehen haben, können die Vorabversandoptionen erreicht werden, indem einfach ein Code-Snippet auf Ihrer Website hinzugefügt oder verschiedene verfügbare Plugins verwendet werden. Sie können also das angegebene Code-Snippet ausprobieren oder mit einem der Plugins experimentieren und uns mitteilen, ob dies für Ihren WooCommerce-Shop von Vorteil ist.