Изменение порядка измерений Product на страницах отдельных продуктов WooCommerce

Я ищу способ фильтрации порядка отображения или размеров продукта woocommerce (длина, ширина, высота). Я хотел бы отобразить высоту перед шириной.

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

function wsa_show_product_dimensions() {
global $product;
echo $product->list_attributes();
}

add_action( 'woocommerce_single_product_summary', 'wsa_show_product_dimensions', 25 );

Я изменил шаблон product-attribute.php, чтобы отформатировать возвращаемый HTML:

<?php if ( $display_dimensions && $product->has_dimensions() ) : ?>
<div class="c-details-row">
<div class="c-details-col c-details-col_1">
<span class="c-label-middle"><?php _e( 'Size', 'woocommerce' ) ?></span>
</div>
<div class="c-details-col c-details-col_2">
<span class="c-label-middle"><?php echo esc_html( wc_format_dimensions( $product->get_dimensions( false ) ) ); ?></span>
</div>
</div>
<?php endif; ?>

Я вижу, что мне нужно отфильтровать get_dimensions(); функция, но не знаете, как переупорядочить массив?

я вижу это list_attributes(); не рекомендуется, так что любая помощь о том, как это сделать — с помощью нового wc_display_product_attributes Метод, если это возможно, был бы великолепен.

1

Решение

Во-первых, так как WooCommerce 3 WC_Product list_attributes() метод устарел, и он заменен wc_display_product_attributes( $product ),

Чтобы изменить порядок размеров товара, вам нужно сначала сделать свою собственную функцию:

function get_product_dimensions_custom(){
global $product;

return  wc_format_dimensions( array(
'length' => $product->get_length(),
'height' => $product->get_height(),
'width'  => $product->get_width(),
));
}

Код помещается в файл function.php вашей активной дочерней темы (или темы) или также в любой файл плагина.

Затем вы можете использовать его в настройке шаблона:

<?php if ( $display_dimensions && $product->has_dimensions() ) : ?>
<div class="c-details-row">
<div class="c-details-col c-details-col_1">
<span class="c-label-middle"><?php _e( 'Size', 'woocommerce' ) ?></span>
</div>
<div class="c-details-col c-details-col_2">
<span class="c-label-middle"><?php echo esc_html( get_product_dimensions_custom() ); ?></span>
</div>
</div>
<?php endif; ?>

Чтобы закончить свою пользовательскую подключенную функцию в woocommerce_single_product_summary будет:

add_action( 'woocommerce_single_product_summary', 'wsa_show_product_dimensions', 25 );
function wsa_show_product_dimensions() {
global $product;

echo wc_display_product_attributes( $product );

}

Код помещается в файл function.php вашей активной дочерней темы (или темы) или также в любой файл плагина.

Этот код протестирован на WooCommerce 3+ и работает;

0

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

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

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