Удаление размеров товаров со страниц отдельных товаров в Woocommerce - PullRequest
0 голосов
/ 06 сентября 2018

Кто-нибудь знает, как скрыть размеры товара от дополнительных вкладок на странице «Один товар», но все равно отображать значение веса?

Я ищу и вижу этот фильтр, но он скрывает как вес, так и размеры.

add_filter( 'woocommerce_product_get_dimensions', '__return_false' );

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

Вы также можете использовать свойство css display:none, если ничего не помогает.

0 голосов
/ 06 сентября 2018

Чтобы скрыть только размеры (но не вес) , есть 2 способа заставить его работать.

1) с помощью крючков (здесь составные фильтрующие крючки ):

Глядя на шаблон, который отображает измерение в отдельных продуктах, вы можете увидеть эту строку:

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

Тогда, если вы посмотрите на WC_Product has_dimensions() метод , вы увидите эту строку (где $this - это WC_Product экземпляр объекта) :

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

Таким образом, когда длина, высота и символ с пустыми (или 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 через вашу активную тему:

Первое чтение: Переопределение шаблона Woocommerce через тему .

В нем объясняется, как скопировать шаблон в вашу тему перед его редактированием.

Здесь соответствующий шаблон 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; ?>
...