カスタム ピックされた 1 つの製品ページにいくつかの関連製品を表示したいと考えています。Relations フィールドで ACF プラグインを使用しています。このコードを試していますが、関連する製品の価格ではなく、現在の製品の価格を返します (foreach で):
<?php
$product = new WC_Product(get_the_ID());
echo wc_price($product->get_price_including_tax(1,$product->get_price()));
?>
コードは静的ページでは正常に機能し、いくつかの関連製品の価格は正しいですが、単一ページの製品ではそうではありません. get_the_ID() の部分が特定の投稿のターゲティングを処理していると思いましたか?
アップデート:
ACF関係フィールドを含む私のコード全体は次のとおりです。
<?php
$posts = get_field('related_set_1');
if( $posts ): ?>
<?php foreach( $posts as $p): ?>
<li>
<a href="<?php echo get_permalink( $p->ID ); ?>">
<?php
echo get_the_post_thumbnail( $p->ID, '175x100' )
?>
<div style="overflow:hidden">
<h4><?php echo $p->post_title; ?></h4>
<p class="price">
<?php
global $post;
$product = new WC_Product($post->ID);
echo wc_price($product->get_price_including_tax(1,$product->get_price()));
?>
</p>
<p class="link">View now</p>
</div>
</a>
</li>
<?php endforeach; ?>
<?php endif; ?>
グローバル $post; も追加しました。以下の返信からですが、同じ出力が得られます。表示される価格は、「関連アイテム」グリッドの製品ではなく、コードが配置されているページの製品の価格です。
そして、フィルター関数の functions.php でこれを使用しますが、違いがある場合はどうなりますか?
add_filter( 'woocommerce_after_single_product_summary', 'custom_related_products' );
function custom_related_products() { ?>
.... (the code above here)
<php? }
価格を除けば、すべてがうまく機能します。