wordpress - 我在哪里可以修改 woocomerce 显示产品附加信息的方式?
问题描述
我正在为一个销售二手车的客户开发一个网站,他们有一份关于汽车不同组件有多好的状态列表。例如:轮胎:磨损,变速箱:OK。
我刚刚将这些字段添加为属性(在附加信息选项卡中显示的那些)我们希望以更加图形化的方式显示这些值,图像和突出显示的文本取决于这些属性,我已经准备好了代码。
我在哪里可以修改模板以添加它?或者你能指出我如何实现这一目标的正确方向吗?
解决方案
我的建议是使用ACF | 高级自定义字段它是免费的,有很多功能并且不断更新,你也有很多关于插件的文档。
在你的情况下,我会使用 field select。
也取决于你有多少领域,但我相信这是要走的路。然后,您可以调用您创建的字段并通过 PHP 输出您的逻辑。
<p>Tires: <?php the_field('tires'); ?></p>
如果你想自定义这些属性的代码,这里是你可以放入模板文件并修改它的 PHP。
<?php $attributes = $product->get_attributes();?>
<table class="shop_attributes">
<?php foreach ( $attributes as $attribute ) : ?>
<tr>
<th style="text-align: left; padding-right: 20px"><?php echo wc_attribute_label( $attribute->get_name() ); ?></th>
<td style="text-align: left;">
<?php
$values = array();
if ( $attribute->is_taxonomy() ) {
$attribute_taxonomy = $attribute->get_taxonomy_object();
$attribute_values = wc_get_product_terms( $product->get_id(), $attribute->get_name(), array( 'fields' => 'all' ) );
foreach ( $attribute_values as $attribute_value ) {
$value_name = esc_html( $attribute_value->name );
if ( $attribute_taxonomy->attribute_public ) {
$values[] = '<a href="' . esc_url( get_term_link( $attribute_value->term_id, $attribute->get_name() ) ) . '" rel="tag">' . $value_name . '</a>';
} else {
$values[] = $value_name;
}
}
} else {
$values = $attribute->get_options();
foreach ( $values as &$value ) {
$value = make_clickable( esc_html( $value ) );
}
}
echo apply_filters( 'woocommerce_attribute', wpautop( wptexturize( implode( ', ', $values ) ) ), $attribute, $values );
?>
</td>
</tr>
<?php endforeach; ?>
</table>
推荐阅读
- python - 是否可以附加到现有的 Feathers 格式文件?
- javascript - 来自多个过滤器的 getData 不返回任何内容
- php - 为什么我的 PHP 代码中没有填充 $conditions,为什么我不能提取表单数据?
- keras - CNN-LSTM 图像分类
- ios - 如果在 swift 中为 nil,则使字符串可选并设置默认值
- excel - 如何使用 VBA 在具有动态范围的动态单元格中创建 =AVERAGE 公式?
- csv - 来自 csv 计数的 Spark 数据帧,返回错误的结果
- bash - Making bash script continue after exec $SHELL
- jestjs - 开玩笑不使用手动模拟
- ios - iOS:以编程方式阻止 iCloud 备份