Отображение размеров продукта woocommerce в отдельных строках

Я нашел способ отображения размеров в отдельных строках при копировании product-attributes.php файл в мою дочернюю тему и замените:

<?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; ?>

с:

<?php if ( $display_dimensions && $product->has_dimensions() ) : ?>
<tr>
<th>Length</th>
<td class="product_dimensions"><?php echo $product->get_length() . get_option( 'woocommerce_dimension_unit' ); ?></td>
</tr>
<tr>
<th>Width</th>
<td class="product_dimensions"><?php echo $product->get_width() . get_option( 'woocommerce_dimension_unit' ); ?></td>
</tr>
<tr>
<th>Height</th>
<td class="product_dimensions"><?php echo $product->get_height() . get_option( 'woocommerce_dimension_unit' ); ?></td>
</tr>
<?php endif; ?>

Проблема в том, что продукты не всегда имеют 3 размера …
И тогда это выглядит так:

Скриншот

Как я могу отобразить только соответствующие строки?

2

Решение

Обновлено: Вы можете сделать это так, добавив условие для каждого вида измерения следующим образом:

<?php

// For non variable products (separated dimensions)
if ( $display_dimensions && $product->has_dimensions() && ! $product->is_type('variable') ) :
if ( ! empty( $product->get_length() ) ) { ?>
<tr>
<th>Length</th>
<td class="product_dimensions"><?php echo $product->get_length() . get_option( 'woocommerce_dimension_unit' ); ?></td>
</tr>
<?php   }
if ( ! empty( $product->get_width() ) ) { ?>
<tr>
<th>Width</th>
<td class="product_dimensions"><?php echo $product->get_width() . get_option( 'woocommerce_dimension_unit' ); ?></td>
</tr>
<?php   }
if ( ! empty( $product->get_height() ) ) { ?>
<tr>
<th>Height</th>
<td class="product_dimensions"><?php echo $product->get_height() . get_option( 'woocommerce_dimension_unit' ); ?></td>
</tr>
<?php

// For variable products (we keep the default formatted dimensions)
elseif ( $display_dimensions && $product->has_dimensions() && $product->is_type('variable') ) : ?>
<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; ?>

Проверено и работает.

Замечания: Это не обрабатывает переменные продукты который использует Javascript для обновления форматированных измерений на выбранных вариантах продукта.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]