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

Прежде всего, я хотел бы поблагодарить LoicTheAztec за ответ Вот. Я ищу очень похожую настройку, но не на 100% то же самое, чего я хочу добиться: WИксLИксHмм

Да, с единицей измерения в конце.

Пример : 200x600x200mm

С предоставленным ответом мне удалось получить 200mmx600mmx200mm

Что делать, если я хотел бы иметь единицу «мм» только в конце?

Ниже моя версия отредактированного кода

add_filter( 'woocommerce_format_dimensions', 'custom_formated_product_dimensions', 10, 2 );
function custom_formated_product_dimensions( $dimension_string, $dimensions ){
if ( empty( $dimension_string ) )
return __( 'N/A', 'woocommerce' );

// Set here your new array of dimensions based on existing keys/values
$new_dimensions = array(
'width'  => $dimensions['width'],
'length' => $dimensions['length'],
'height' => $dimensions['height']
);
$dimensions = array_filter( array_map( 'wc_format_localized_decimal', $new_dimensions ) );

foreach( $dimensions as $key => $dimension ){
$label_with_dimensions[$key] = $dimension . '' . get_option( 'woocommerce_dimension_unit' ). '';
}

return implode( 'x',  $label_with_dimensions);
}

1

Решение

Настройка вашего кода, которая вам нужна:

add_filter( 'woocommerce_format_dimensions', 'custom_formated_product_dimentions', 10, 2 );
function custom_formated_product_dimentions( $dimension_string, $dimensions ){
if ( empty( $dimension_string ) )
return __( 'N/A', 'woocommerce' );

// Set here your new array of dimensions based on existing keys/values
$new_dimentions = array(
'width'  => $dimensions['width'],
'length' => $dimensions['length'],
'height' => $dimensions['height']
);

$dimensions = array_filter( array_map( 'wc_format_localized_decimal', $new_dimentions ) );
foreach( $dimensions as $key => $dimension ){
$new_dimensions[$key] = $dimension; //  . ' ' . strtoupper( substr($key, 0, 1) );
}

return implode( 'x',  $new_dimensions) . get_option( 'woocommerce_dimension_unit' );
}

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

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

Это выведет что-то вроде 200x600x200mm mm в конце всего один раз).

1

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

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

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