Cum să obții prețul original al produsului în WooCommerce?
Am creat codul pentru a parcurge lista de produse și pentru a afișa prețul
$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()
funcționează perfect și afișează prețul astfel:
De la: $ 621 $ 559
Cu toate acestea, aș dori să obțin prețul separat
Pot obține prețul de vânzare cu
$product->get_display_price()
Problema este că nu pot obține prețul original,
Am încercat $product->get_regular_price()
, care nu returnează nimic
Și am încercat $product->get_display_price( $product->get_regular_price() )
, care returnează prețul de vânzare
Deci cum pot obține prețul original? Mulțumesc mult.

Sunt sigur că problema este că WP_Query
returnează obiecte post, care nu sunt identice cu obiectele produs din Woocommerce. În timp ce încerci să obții datele produsului prin accesarea globalului corespunzător, acest lucru nu va funcționa, mai ales pentru că interogarea pe care o execuți nu afectează acel global. Ce aș sugera eu este, în primul rând, să efectuezi interogarea cu parametrul fields
setat la ids
. Apoi, când parcurgi array-ul de ID-uri returnate, aș recomanda să obții obiectul produs cu wc_get_product()
, care ar trebui să îți ofere toate informațiile de care ai nevoie.
Notă: Am răspuns pentru a clarifica diferența dintre obiectele returnate de WordPress și cele ale Woocommerce. Și pentru a sublinia faptul că, deși product
este un CPT (Custom Post Type), nu este neapărat optim de utilizat cu interogarea standard din WP. Există, totuși, un argument solid că întrebarea ta este off-topic, deoarece se referă la un plugin de la terți. Te rugăm să consulți centrul de ajutor pentru a afla mai multe despre regulamentul nostru.
