如何在单个产品页面附加信息选项卡中隐藏某些自定义产品属性?
注意:我不想隐藏所有内容,只是隐藏特定属性。
例如,我想隐藏"pa_size"
来命名它。
只发现了这一个,但它的产品重量。
add_filter( 'woocommerce_product_get_weight' , '__return_false' );
答案 0 :(得分:2)
对于所有自定义产品属性,您只需在产品设置>下取消选择“产品页面上的可见”选项,即可将其隐藏在其他信息标签中。属性选项卡:
1)要删除产品尺寸,您可以使用以下代码禁用它:
add_filter( 'woocommerce_product_get_dimensions', '__return_false' );
2)要从标签中删除所有内容(重量,尺寸和自定义属性),请使用以下命令:
remove_action( 'woocommerce_product_additional_information', 'wc_display_product_attributes', 10 );
3)微调您想要显示的内容:
您可以通过显示此产品标签中所有内容的活动子主题(或活动主题)覆盖single-product/product-attributes.php
模板。
所以你可以删除任何显示这些细节的html块,或者自定义它......
答案 1 :(得分:0)
我正在寻找相同/类似问题的答案,希望删除其他信息标签。我用这个帖子来看过这篇文章 woocommerce_product_tabs filter
我将它添加到functions.php中,并且不再向页面添加附加信息选项卡。
答案 2 :(得分:0)
使用functions.php
可能会导致运输问题,请参见此处:https://github.com/woocommerce/woocommerce/issues/5985#issuecomment-322541850
只需将wp-content/plugins/woocommerce/templates/single-product/product-attributes.php
复制到wp-content/themes/YOUR_CHILD_THEME/woocommerce/single-product/product-attributes.php
并添加if
来检查属性。 (就像#3中提到的LoicTheAztec)
这是来自WooCommerce 4.4.1:
<?php
/**
* Product attributes
*
* Used by list_attributes() in the products class.
*
* This template can be overridden by copying it to yourtheme/woocommerce/single-product/product-attributes.php.
*
* HOWEVER, on occasion WooCommerce will need to update template files and you
* (the theme developer) will need to copy the new files to your theme to
* maintain compatibility. We try to do this as little as possible, but it does
* happen. When this occurs the version of the template file will be bumped and
* the readme will list any important changes.
*
* @see https://docs.woocommerce.com/document/template-structure/
* @package WooCommerce/Templates
* @version 3.6.0
*/
defined( 'ABSPATH' ) || exit;
if ( ! $product_attributes ) {
return;
}
?>
<table class="woocommerce-product-attributes shop_attributes">
<?php foreach ( $product_attributes as $product_attribute_key => $product_attribute ) : ?>
<?php // Hide weight attribute in frontend ?>
<?php if ( esc_attr( $product_attribute_key ) !== 'weight' ): ?>
<tr class="woocommerce-product-attributes-item woocommerce-product-attributes-item--<?php echo esc_attr( $product_attribute_key ); ?>">
<th class="woocommerce-product-attributes-item__label"><?php echo wp_kses_post( $product_attribute['label'] ); ?></th>
<td class="woocommerce-product-attributes-item__value"><?php echo wp_kses_post( $product_attribute['value'] ); ?></td>
</tr>
<?php endif; ?>
<?php endforeach; ?>
</table>