wake-up-neo.net

Wie erhalte ich den Originalpreis des Produkts im Woocommerce?

Ich habe den Code erstellt, um die Produktliste zu durchlaufen und den Preis anzuzeigen

  $args = array( 'post_type' => 'product', 'posts_per_page' => 100, 'product_cat' => 'hot-deals');
          $loop = new WP_Query( $args );
          while ( $loop->have_posts() ) : $loop->the_post(); 

global $product; 


$xml .= '<Original_price>' . $product->get_display_price( $product->get_regular_price() ) . '</Original_price>';
$xml .= '<Discount_price>' . $product->get_display_price() . '</Discount_price>';

echo $product->get_price_html();

endwhile;
wp_reset_query();

get_price_html() funktioniert perfekt und zeigt den Preis wie folgt an:

From: $ 621 $ 559

Ich möchte den Preis jedoch separat erhalten

Ich kann den Verkaufspreis mit bekommen

$product->get_display_price()

Das Problem ist, ich kann den ursprünglichen Preis nicht bekommen,

Ich habe versucht, $product->get_regular_price(), die nichts zurückgeben

Und ich habe versucht, $product->get_display_price( $product->get_regular_price() ), die den Verkaufspreis zurückgeben

So wie man den ursprünglichen Preis erhält? Danke vielmals.

2
user3538235

Ich bin mir ziemlich sicher, dass das Problem darin besteht, dass der WP_Query post objects zurückgibt, die nicht mit Woocommerces product objects identisch sind. Während Sie versuchen, die Produktdaten durch Abrufen der entsprechenden globalen Daten abzurufen, funktioniert dies nicht, insbesondere, weil die von Ihnen ausgeführte Abfrage keine Auswirkungen auf diese globale Datenquelle hat. Jetzt würde ich wahrscheinlich zuerst die Abfrage mit dem Parameter fields ausführen, der auf ids gesetzt ist. Zweitens würde ich beim Durchlaufen des zurückgegebenen Arrays von IDs vorschlagen, dass Sie das product object with wc_get_product() erhalten, das Ihnen alle Informationen geben sollte, die Sie benötigen.


Hinweis: Ich habe darauf geantwortet, um den Unterschied zwischen WordPress- und Woocommerces-Objekten zu verdeutlichen. Und um klar zu stellen, während product eine CPT ist, ist sie mit der Standardabfrage von WP nicht unbedingt optimal verwendbar. Es gibt jedoch ein starkes Argument dafür, dass Ihre Frage nicht zum Thema gehört, da es sich um ein Plugin eines Drittanbieters handelt. Schauen Sie in unserer Hilfe nach, um mehr über unsere Website-Richtlinien zu erfahren.

3
Nicolai

Um den regulären Preis innerhalb des Regelkreises zu ermitteln, können Sie Folgendes verwenden:

get_post_meta( get_the_ID(), '_regular_price', true);

Und für den Verkaufspreis können Sie verwenden:

get_post_meta( get_the_ID(), '_sale_price', true);
0