Woocommerce erhält den ursprünglichen Stückpreis des Artikels in Auftrag

Lesezeit: 2 Minuten

Ich möchte den Stückpreis des Artikels (einschließlich Verkaufspreis und regulärem Preis) in der Kunden-E-Mail und auf der Bestellseite der Kundenansicht anzeigen.

Im WooCommerce-Bestellpositionsobjekt können Sie nur die Zwischensumme der Artikelzeile, die Zwischensumme, die Menge usw. sehen. In den Daten wird jedoch nicht der Originalpreis pro Einheit (einschließlich des regulären Preises und des Verkaufspreises) angezeigt. Den Stückpreis erhalte ich höchstens durch Addieren des rabattierten Betrags und der Zwischensumme der Zeile. Aber ich weiß auf keinen Fall, ob der Artikel im Angebot ist oder nicht, sowie den entsprechenden Preis.

Im Moment kann ich die folgenden Codes verwenden, um den Stückpreis im Bestellartikel zu erhalten:

$product = $item->get_product();
$product->get_price_html();

Das Problem dabei get_price_html() zeigt den Produktpreis in Echtzeit an. Das heißt, wenn ich den Produktpreis nach einiger Zeit geändert habe, ändert sich auch der Preis in den vorherigen Bestelldetails. Dies wird viel Verwirrung stiften, wenn sich jemand die ältere Bestellung ansieht.

Wie kann ich also den ursprünglichen Stückpreis des Einzelartikels in den Bestelldetails abrufen?

Benutzer-Avatar
davidb3rn

Dies ist möglicherweise nicht die beste Antwort. Aber sehen, dass es immer noch unbeantwortet ist. Ich habe versucht $item->get_price(); und es gibt zurück, es ist eine undefinierte Funktion. Aufgrund meines Problems konnte ich jedoch verwenden $item->get_total() und $item->get_quantity(). Auf dieser Grundlage kann ich den Preis einfach durch die Gesamtsumme teilen. Dies ist meine vorübergehende Lösung:

            foreach ($items as $item):
                $product_name = $item->get_name();
                $product_price = $item->get_total();
                $product_quantity = $item->get_quantity();
                //This gets per unit price
                $unit_price = $product_price / $product_quantity;
                ?>
            <tr>
                <td>
                    <?= $product_name ?>
                </td>
                <td>
                    <?= number_format($unit_price, 2) ?> / Unit
                </td>
                <td>
                    <?= $product_quantity ?>
                </td>
                <td>
                    <?= number_format($product_price, 2) ?>
                </td>
            </tr>
            <?php
            endforeach;

Aktualisieren:

https://www.businessbloomer.com/woocommerce-easily-get-order-info-total-items-etc-from-order-object/

Einfache Möglichkeit, alles in Ihrer Bestellung auszuwählen.

  • Wenn Sie die Zeilensumme durch die Menge teilen, erhalten Sie den reduzierten Preis eines Artikels zum Zeitpunkt der Erfassung der Bestellung, aber nicht den regulären Preis des Artikels. Leider scheint es nicht, dass der Preis mit Bestellpositionsdaten gespeichert ist. Zumindest nicht, dass ich es sehen könnte. Ich bin im selben Boot wie @dev-jim. WENN Sie den angewendeten Rabattbetrag bestimmen können, können Sie von dort aus rückwärts arbeiten.

    – eljefejb

    16. Juli 2021 um 16:21 Uhr


1335640cookie-checkWoocommerce erhält den ursprünglichen Stückpreis des Artikels in Auftrag

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

Privacy policy