0

カスタム ピックされた 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? }

価格を除けば、すべてがうまく機能します。

4

1 に答える 1