商品リストをループ処理して価格を表示するコードを作成しました
$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()
は完璧に動作し、次のような価格で表示されます。
From: $ 621 $ 559
ただし、別途価格を取得したいのですが
販売価格は
$product->get_display_price()
問題は、私は元の価格を得ることができない、です
何も返さない$product->get_regular_price()
を試しました
そして私は$product->get_display_price( $product->get_regular_price() )
を試しました、それは販売価格を返します
それでは、元の価格を取得する方法?どうもありがとう。
WP_Query
が postオブジェクト を返すことは間違いないと確信しています。これらはWoocommerces productオブジェクト と同じではありません。対応するグローバルを取得して製品データを取得しようとしている間は、これは機能しません。特に、実行しているクエリがそのグローバルに対して何もしないためです。私がおそらくすることは、まず、fields
パラメーターをids
に設定して照会を実行することです。次に、返されたIDの配列をループ処理するときに、wc_get_product()
を指定して productオブジェクト を取得することをお勧めします。これにより、必要な情報がすべて得られます。
注: これはWordPress 'とWoocommercesオブジェクトの間のリターンの違いについて啓発するために答えました。そして明確にするために、product
はCPTですが、WPの標準クエリでは必ずしも最適に使用できるわけではありません。それはサードパーティ製のプラグインに関するものだからです。サイトガイドラインの詳細については、 ヘルプセンター をご覧ください。
ループ内で通常価格を取得するには、次のようにします。
get_post_meta( get_the_ID(), '_regular_price', true);
そして販売価格のためにあなたが使用することができます:
get_post_meta( get_the_ID(), '_sale_price', true);