Woocommerce-Preis nach Rabatt

Lesezeit: 3 Minuten

Ich bin kein Experte für WooCommerce, ich kann nicht finden, wie man den Preis anzeigt, der den Rabatt vom Gutschein berechnet.

Dieser Code, Preis nach Coupon anzeigen, aber auch mit Versandpreis – was ich nicht möchte, ich möchte Preis nach Rabatt, vor Versand und Steuern anzeigen:

$woocommerce->cart->get_cart_total();

Dieser Code zeigt den Endpreis ohne Rabatt und ohne Versand an:

$woocommerce->cart->get_cart_subtotal();

Also habe ich so etwas versucht, um den Preis nach dem Rabatt zu erhalten:

<?php
 $totalp = $woocommerce->cart->get_cart_subtotal();
 $totaldisc = $woocommerce->cart->get_total_discount();
 $resultp = $totalp - $totaldisc; 

 echo ($resultp);
?>

Aber es zeigt die Nummer “0”.

Also, ich denke, es gibt eine einfache Funktion für das, was ich will (ich möchte den Gesamtpreis des Einkaufswagens nach dem Rabatt, vor dem Versand erhalten), aber ich kann diese Funktion nicht finden.

  • Was enthalten $totalp und $totaldisc?

    – Kasraf

    30. April 2014 um 9:05 Uhr

  • @ChenAsraf Der Copoun-Rabattpreis. Beispiel: Ich stelle einen Gutschein ein, der 30 Rabatt auf den Warenkorb gibt, er zeigt die 30-Nummer an. Heute 🙂

    – Oschrib

    30. April 2014 um 9:07 Uhr


  • Ich denke, es gibt “0”, weil es das Währungssymbol enthält, weiß nicht, wie man ohne es rechnet. Aber wie ich gefragt habe, denke ich, dass es eine Funktion gibt, um den Gesamtpreis nach dem Rabatt vor dem Versand zu erhalten

    – Oschrib

    30. April 2014 um 9:08 Uhr

  • Aha. Ich werde gleich eine Antwort posten.

    – Kasraf

    30. April 2014 um 9:11 Uhr

Antwort: Ich musste ints oder Floats ohne Symbole verwenden, und der beste Weg war, die WooCommerce-Dokumentation hier zu überprüfen:
Woo – Dokumente , und um nach dieser Variablen zu suchen und sie ohne () (keine Funktion) zu verwenden. jetzt klappt es 🙂

<?php

$first_number = $woocommerce->cart->subtotal;
$second_number = $woocommerce->cart->discount_total;
$sum_total = $first_number - $second_number;

print ($sum_total);

?>

  • Bitte überprüfen Sie diese Frage auch unter stackoverflow.com/questions/49505056/…

    – Manik

    27. März 2018 um 6:36 Uhr

  • Beachten Sie, dass die folgenden Änderungen in 2.2 und 2.3 discount_total ist veraltet. Schau mal rein $woocommerce->cart->get_totals() docs.woocommerce.com/wc-apidocs/class-WC_Cart.html

    – Ido_f

    1. April 2020 um 19:10 Uhr

Da Sie die Währung in den Preisen haben, müssen Sie sie entfernen.

Ich konnte keinen WooCommerce-Code finden, um nur die Zwischensumme und den Rabatt ohne Währungssymbol zu erhalten, also entfernen wir sie einfach manuell:

function remove_currency($price) {
    return (double) preg_replace('/[^0-9\.]+/', '', $price);
}

$totalp = remove_currency($woocommerce->cart->get_cart_subtotal());
$totaldisc = remove_currency($woocommerce->cart->get_total_discount());
$resultp = $totalp - $totaldisc; 

echo $resultp;

  • Bitte geben Sie den Preis und den Rabatt wieder, von dem, was ich getestet habe, ist die Nummer in Ordnung.

    – Kasraf

    30. April 2014 um 9:23 Uhr

  • Wenn ich den Preis und den Rabatt separat wiedergebe, funktioniert es, es zeigt den Preis (sagen wir ein Produkt im Warenkorb zum Preis von 180 NIS und einen Rabatt von 30 NIS), aber mit der Berechnung wird angenommen, dass 150 angezeigt wird, aber es zeigt diese seltsame Zahl .

    – Oschrib

    30. April 2014 um 9:24 Uhr

  • Ich verstehe … also vermute ich dieses WooCommerce-Problem mit dieser Berechnungsmethode.

    – Oschrib

    30. April 2014 um 9:32 Uhr

  • Jetzt habe ich bekommen, dass “get_order_discount_total()” die Zahl ohne Währungssymbol gibt. Ich versuche es anzuwenden

    – Oschrib

    30. April 2014 um 9:38 Uhr

  • Bitte überprüfen Sie diese Frage auch unter stackoverflow.com/questions/49505056/…

    – Manik

    27. März 2018 um 6:37 Uhr

Dieser Beitrag ist etwas alt, aber ich möchte jeden, der sich das ansieht, darüber informieren, dass Woocommerce 3.x jetzt verwendet:

WC()->cart 

oder Sie können einfach verwenden

$cart

solange du die hast name_of_my_function( $cart ){} Parameter aufrufbar.

Alles oben ist in Ordnung … Ich bin mir sicher, aber in der Hoffnung, dass jemand das nicht weiß $woocommerce global wird nicht mehr verwendet.

Es gibt auch eine Möglichkeit, foreach durch die Warenkorbartikel (Objekte) zu blättern, um Ihre Preisuntersummen mit dem cart_object auszuwählen.

foreach( $cart_obj->get_cart() as $key=>$value ) 
{
    $priced    = $value['subtotal'];
    $new_price = $priced - ($predefined_referral_discount * 1);

    $value['data']->set_price( $new_price );    
}

Denken Sie daran: name_of_my_function( $cart_obj ){} für dieses. Viel Spaß beim Codieren

1299020cookie-checkWoocommerce-Preis nach Rabatt

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

Privacy policy