在商店页面上将 ACF 添加到 Woocommerce ul.products

Adding ACF to Woocommerce ul.products on Shop Page

我正在使用 WooCommerce 和高级自定义字段,其中 ACF 组设置为 post 产品类型。我想在产品标题下方的产品框中添加几个简单的文本字段,它会显示在所有产品上。

我已经查看并发现它的钩子是 woocommerce_after_shop_loop_item_title

附加图片以供视觉描述。

像这样,我希望添加地址值 ($location)、卧室值 ($bed) 和浴室值 ($bath)。

请理解我是 PHP 的新手,仍在学习中。我尝试过尝试,但是我不确定如何从产品的 post.

中提取字段数据

任何关于正确学习方向的提示都将不胜感激。

提前致谢。

add_action( 'woocommerce_after_shop_loop_item_title', 'woo_products_property', 1 );
function woo_products_property() { 
    ?>          

<div class="property_loop_bottom_sec">
    <?php $location = get_field_object('address'); ?>
    <?php if( ! empty( $location ) ) { ?>
    <div class="feature">
    <div class="value"><i class="et-pb-icon map-marker">&#xe081;</i><?php echo $location['value'];?></div>
    </div>
    <?php } ?>
    
    <?php $bed = get_field_object('bedroom'); ?>
    <?php if( ! empty( $bed ) ) { ?>
    <div class="feature">
    <div class="value"><i class="fas fa-bed"></i><?php echo $bed['value'];?></div>
    <span>Bed</span>
    </div>
    <?php } ?>
    
    <?php $bath = get_field_object('bathroom'); ?>
    <?php if( ! empty( $bath ) ) { ?>
    <div class="feature">
    <div class="value"><i class="fas fa-bath"></i><?php echo $bath['value'];?></div>
    <span>Bath</span>
    </div>
    <?php } ?>
</div>

    <?php 
} ?>

我修改了你的代码。试试下面的代码。

function woo_products_property() {  
    global $post;
    ?>
    <div class="property_loop_bottom_sec">
        <?php 
        $location = get_field( 'address', $post->ID ); 
        if( ! empty( $location ) ) { ?>
            <div class="feature">
                <div class="value"><i class="et-pb-icon map-marker">&#xe081;</i><?php echo $location['value'];?></div>
            </div>
        <?php } 

        $bed = get_field( 'bedroom', $post->ID ); 
        if( ! empty( $bed ) ) { ?>
            <div class="feature">
                <div class="value"><i class="fas fa-bed"></i><?php echo $bed['value'];?></div>
                <span>Bed</span>
            </div>
        <?php } 

        $bath = get_field( 'bathroom', $post->ID); 
        if( ! empty( $bath ) ) { ?>
            <div class="feature">
                <div class="value"><i class="fas fa-bath"></i><?php echo $bath['value'];?></div>
                <span>Bath</span>
            </div>
        <?php } ?>
    </div>

<?php } 
add_action( 'woocommerce_after_shop_loop_item_title', 'woo_products_property', 1 );

已测试并有效