Come ottenere il prezzo originale del prodotto in WooCommerce?
Ho creato il codice per scorrere l'elenco dei prodotti e visualizzare il prezzo
$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()
funziona perfettamente e visualizza il prezzo in questo modo:
Da: $ 621 $ 559
Tuttavia, vorrei ottenere il prezzo separatamente
Posso ottenere il prezzo scontato con
$product->get_display_price()
Il problema è che non riesco a ottenere il prezzo originale,
Ho provato $product->get_regular_price()
, che non restituisce nulla
E ho provato $product->get_display_price( $product->get_regular_price() )
, che restituisce il prezzo scontato
Quindi come posso ottenere il prezzo originale? Grazie mille.

Sono abbastanza sicuro che il problema sia che WP_Query
restituisce oggetti post, che non sono identici agli oggetti prodotto di Woocommerce. Mentre cerchi di ottenere i dati del prodotto recuperando il relativo globale, questo non funzionerà, soprattutto perché la query che stai eseguendo non ha alcun effetto su quel globale. Quello che probabilmente farei è, in primo luogo, eseguire la query con il parametro fields
impostato su ids
. In secondo luogo, quando cicli sull'array di ID restituiti, ti suggerirei di ottenere l'oggetto prodotto con wc_get_product()
, che dovrebbe fornirti tutte le informazioni di cui hai bisogno.
Nota: Ho risposto per chiarire la differenza tra gli oggetti restituiti da WordPress e quelli di Woocommerce. E per precisare, sebbene product
sia un CPT (Custom Post Type), non è necessariamente utilizzabile in modo ottimale con la query standard di WP. C'è però un forte argomento a favore del fatto che la tua domanda sia fuori tema, perché riguarda un plugin di terze parti. Ti invito a consultare il nostro centro assistenza per saperne di più sulle linee guida del nostro sito.
