从Woocommerce中的单个产品页面删除产品尺寸

时间:2018-09-06 08:38:18

标签: wordpress templates woocommerce product dimensions

任何人都知道如何从“单个产品”页面上的其他选项卡中隐藏产品尺寸,但仍显示“重量”值吗?

我搜索并看到了此过滤器,但它同时隐藏了重量和尺寸。

add_filter( 'woocommerce_product_get_dimensions', '__return_false' );

2 个答案:

答案 0 :(得分:4)

仅隐藏尺寸 (但不隐藏重量),有 2种方法使其有效。

1)使用挂钩 (此处为复合过滤器挂钩):

查看在单个产品中显示尺寸的模板,您可以看到以下行:

<?php if ( $display_dimensions && $product->has_dimensions() ) : ?>

然后,如果您查看WC_Product has_dimensions() method,则会看到此行(其中$thisWC_Product对象实例)

return ( $this->get_length() || $this->get_height() || $this->get_width() ) && ! $this->get_virtual();

因此,当长度,高度和with为空(或false)时,该方法将返回false…

以下使用复合挂钩的代码仅在单个产品页面的“其他信息”标签中隐藏尺寸

add_filter( 'woocommerce_product_get_width', 'hide_single_product_dimentions', 25, 2 );
add_filter( 'woocommerce_product_get_height', 'hide_single_product_dimentions', 25, 2 );
add_filter( 'woocommerce_product_get_length', 'hide_single_product_dimentions', 25, 2 );
function hide_single_product_dimentions( $value, $product ){
    // Only on single product pages
    if( is_product() )
        $value = '';

    return $value;
} 

代码进入您的活动子主题(或活动主题)的function.php文件中。。经过测试,可以正常工作。

  

隐藏重量 (仅用于信息)使用此复合挂钩代码:

add_filter( 'woocommerce_product_get_weight', 'hide_single_product_weight', 25, 2 );
  function hide_single_product_weight( $value, $product ){
    // Only on single product pages
    if( is_product() )
        $value = '';

    return $value;
}

2)通过您的活动主题覆盖Woocommerce模板

第一次阅读:Overriding Woocommerce template via the theme

它说明了在编辑模板之前如何将模板复制到您的主题。

此处的相关模板为single-product/product-attributes.php

您将不得不从模板代码中删除此块(从第33行到第38行):

<?php if ( $display_dimensions && $product->has_dimensions() ) : ?>
    <tr>
        <th><?php _e( 'Dimensions', 'woocommerce' ) ?></th>
        <td class="product_dimensions"><?php echo esc_html( wc_format_dimensions( $product->get_dimensions( false ) ) ); ?></td>
    </tr>
<?php endif; ?>

答案 1 :(得分:0)

如果其他所有操作都失败,则也可以使用css属性display:none