Legen Sie die Methode „kostenloser Versand“ als ausgewählte Standardversandoption in WooCommerce fest

Lesezeit: 2 Minuten

Benutzeravatar von RMD
RMD

Ich habe Probleme damit, die standardmäßig ausgewählte Versandoption zu ändern. Die Versandoption „Kostenloser Versand“ wird nur angezeigt, wenn der Kunde einen Betrag über 70 USD im Warenkorb hat. Wenn der Betrag im Einkaufswagen weniger als 70 $ beträgt, wird die Versandoption nicht in den Versandoptionen angezeigt.

Wenn der Kunde über 70 $ oder mehr hat, wird die Option „Kostenloser Versand“ angezeigt und sollte eine standardmäßig ausgewählte Versandoption sein.

Ich habe versucht, das folgende Snippet hinzuzufügen, aber es scheint bei mir nicht zu funktionieren, oder vielleicht liegt ein Fehler beim Ändern der IDs vor (unsicher).

add_action( 'woocommerce_before_cart', 'set_default_chosen_shipping_method', 5 );
function set_default_chosen_shipping_method(){
    //
    if( count( WC()->session->get('shipping_method_0')['rates'] ) > 0 ){
        foreach( WC()->session->get('shipping_method_0')['rates'] as $rate_id =>$rate)
            if($rate->method_id == 'free_shipping30'){
                $default_rate_id = array( $rate_id );
                break;
            }

        WC()->session->set('chosen_shipping_methods', $default_rate_id );
    }
}

Ich habe diese Snippet-Idee hier

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Danke im Voraus!!

  • WooCommerce bietet eine kostenlose Versandoption mit einem Mindestwert im Warenkorb. Es ist kein Code erforderlich. Es ist integriert. /wp-admin/admin.php?page=wc-settings&tab=shipping > Zone bearbeiten > kostenlosen Versand aktivieren > Mindestbestellwert auf 70 setzen

    – Andy Gee

    24. Oktober 2021 um 5:56 Uhr


  • Verstanden, ich habe den kostenlosen Versand bereits eingerichtet und den Mindestbestellwert festgelegt. Das einzige Problem, mit dem ich konfrontiert bin, ist, dass, wenn der Kunde den Mindestbetrag erreicht oder überschreitet, um den kostenlosen Versand zu erhalten, die kostenlose Versandoption automatisch in den Versandoptionen ausgewählt werden sollte. Im Moment wird automatisch die Versandoption „First-Class Mail“ ausgewählt, auch wenn in den Versandoptionen eine kostenlose Versandoption verfügbar ist. Ich hoffe ich habe es gut erklärt 😀

    – RMD

    24. Oktober 2021 um 11:12 Uhr

Ihr Code enthält einige Fehler

  • Ersetzen WC()->session->get('shipping_method_0')['rates'] mit WC()->session->get( 'shipping_for_package_0')['rates']
  • Ersetzen if($rate->method_id == 'free_shipping30'){ mit if ( $rate->method_id == 'free_shipping' ) {

Sie erhalten also:

function action_woocommerce_before_cart() { 
    // NOT empty (get)
    if ( count( WC()->session->get( 'shipping_for_package_0')['rates'] ) > 0 ) {
        // Loop through
        foreach ( WC()->session->get('shipping_for_package_0')['rates'] as $rate_id => $rate ) {            
            // For free shipping
            if ( $rate->method_id == 'free_shipping' ) {
                $default_rate_id = array( $rate_id );
                break;
            }
        }

        // Set
        WC()->session->set( 'chosen_shipping_methods', $default_rate_id );
    }
}
add_action( 'woocommerce_before_cart', 'action_woocommerce_before_cart', 10, 0 );

1435520cookie-checkLegen Sie die Methode „kostenloser Versand“ als ausgewählte Standardversandoption in WooCommerce fest

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy