在商店页面上将 ACF 添加到 Woocommerce ul.products
Posted
技术标签:
【中文标题】在商店页面上将 ACF 添加到 Woocommerce ul.products【英文标题】:Adding ACF to Woocommerce ul.products on Shop Page 【发布时间】:2022-01-15 20:55:03 【问题描述】:我正在使用 WooCommerce 和高级自定义字段,其中 ACF 组设置了产品的帖子类型。我想在产品标题下方的产品框中添加几个简单的文本字段,它将显示在所有产品上。
我已经查看并发现它的钩子是woocommerce_after_shop_loop_item_title
附上图片用于视觉描述。
像这样,我希望添加地址值 ($location
)、卧室值 ($bed
) 和浴室 ($bath
)。
请理解我对 php 很陌生,还在学习。我已经尝试过,但是我不确定如何从产品的帖子中提取字段数据。
非常感谢任何正确学习方向的提示。
提前谢谢你。
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"></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
?>
【问题讨论】:
【参考方案1】:我修改了你的代码。试试下面的代码。
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"></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 );
经过测试且有效
【讨论】:
谢谢Bhautik。位置字段对我来说效果不佳。它以某种方式工作,但只显示 1 个字符。图标和值是字母 B。而实际值是 'Belmont Gardens, Town, Post Code' -> B 尝试打印$location
嘿Bhautik。将其更改为打印 $location 但不幸的是似乎看起来相同。 ACF $location 的值仅显示第一个字符。
当我说 print
$location
变量来看看你得到了什么时,我想你错过了理解。像这样echo "<pre>"; print_r($location); echo "</pre>";
或var_dump($location)
以上是关于在商店页面上将 ACF 添加到 Woocommerce ul.products的主要内容,如果未能解决你的问题,请参考以下文章
仅在 WooCommerce 单一产品页面上将添加到购物车文本更改为“应用”
将基于 ACF 字段的自定义“添加到购物车”按钮添加到 WooCommerce 单品页面