隐藏WooCommerce中其他信息标签中的产品属性

时间:2017-12-24 12:00:09

标签: php wordpress woocommerce product hook-woocommerce

如何在单个产品页面附加信息选项卡中隐藏某些自定义产品属性?

注意:我不想隐藏所有内容,只是隐藏特定属性。

例如,我想隐藏"pa_size"来命名它。

只发现了这一个,但它的产品重量。

add_filter( 'woocommerce_product_get_weight' , '__return_false' );

3 个答案:

答案 0 :(得分:2)

对于所有自定义产品属性,您只需在产品设置>下取消选择“产品页面上的可见”选项,即可将其隐藏在其他信息标签中。属性选项卡:

enter image description here

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块,或者自定义它......

官方文件:Template structure & Overriding templates via a theme

答案 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>