Fügen Sie eine benutzerdefinierte Gebühr basierend auf dem Gesamtgewicht in Woocommerce hinzu

Lesezeit: 2 Minuten

Fugen Sie eine benutzerdefinierte Gebuhr basierend auf dem Gesamtgewicht in
Benutzer3704392

In WooCommerce versuche ich, eine zusätzliche Versandgebühr basierend auf dem Gewicht des Einkaufswagens hinzuzufügen.

  • Zum ersten 1500g Die Gebühr beträgt 50 $.
  • Über 1500g Wir addieren 10 $ zu diesen anfänglichen 50 $ in Schritten von 1000 g

Also zum Beispiel:

  • Wenn das Gewicht des Wagens 700 g beträgt, fügen wir eine Gebühr von 50 USD hinzu.
  • Wenn der Wagen 2600 g wiegt, berechnen wir eine Gebühr von 70 $ (50 $ + 10 $ + 10 $) …

Ich hänge an der Rechnung:

function weight_add_cart_fee() {
    $feeaddtocart =  get_option('feeaddtocart');
    $customweight =  get_option('customweight');
    global $woocommerce;

    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    $cart_weight = WC()->cart->get_cart_contents_weight();

    if ($cart_weight <= 500 ) {
        $get_cart_total = $woocommerce->cart->get_cart_total(); 
        $newtotal = $get_cart_total + 50;
        WC()->cart->add_fee( __('Extra charge (weight): ', 'your_theme_slug'), $newtotal, false );
    }
}

Wie kann ich das erreichen? Jede Hilfe ist willkommen.

Fugen Sie eine benutzerdefinierte Gebuhr basierend auf dem Gesamtgewicht in
LoicTheAztec

Dies kann sehr einfach mit einer benutzerdefinierten Funktion durchgeführt werden woocommerce_cart_calculate_fees Aktionshaken…

Aktualisiert:

  • Umrechnung des Wagengewichts in Gramm (statt standardmäßig in Kilo) hinzugefügt
  • Jetzt beträgt die Gebühr für die ersten 1500 g 50 $ (statt 500 g)
  • Jetzt über 1500 g werden 10 $ in Schritten von 1000 g hinzugefügt.
add_action( 'woocommerce_cart_calculate_fees', 'shipping_weight_fee', 30, 1 );
function shipping_weight_fee( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    // Convert cart weight in grams
    $cart_weight = $cart->get_cart_contents_weight() * 1000;
    $fee = 50; // Starting Fee below 500g

    // Above 500g we add $10 to the initial fee by steps of 1000g
    if( $cart_weight > 1500 ){
        for( $i = 1500; $i < $cart_weight; $i += 1000 ){
            $fee += 10;
        }
    }
    // Setting the calculated fee based on weight
    $cart->add_fee( __( 'Weight shipping fee' ), $fee, false );
}

Der Code wird in die function.php-Datei Ihres aktiven untergeordneten Designs (oder aktiven Designs) eingefügt.

Getestet und funktioniert.

  • funktioniert nicht ,,, es zeigt mir 500 Internal Server Error !! nach dem Länderwechsel ,,, und wenn das Gesamtgewicht des Wagens 60 g beträgt ,, es werden 10 $ hinzugefügt, aber es stimmt nicht ,,, es muss nach 1500 g hinzugefügt werden

    – Benutzer3704392

    22. Januar 2018 um 9:10 Uhr

1004870cookie-checkFügen Sie eine benutzerdefinierte Gebühr basierend auf dem Gesamtgewicht in Woocommerce hinzu

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

Privacy policy