Cum să obții prețul original al produsului în WooCommerce?

22 mar. 2016, 18:15:13
Vizualizări: 23.5K
Voturi: 3

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.

0
Toate răspunsurile la întrebare 2
0

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.

22 mar. 2016 19:28:06
1
-1

Pentru a obține prețul obișnuit în interiorul buclei, puteți folosi:

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

Iar pentru prețul redus puteți folosi:

get_post_meta( get_the_ID(), '_sale_price', true);
26 oct. 2017 19:42:15
Comentarii

Ce se întâmplă dacă un plugin este conectat la woocommerce_get_price_html?

danyo danyo
6 dec. 2017 13:09:38