Я пытаюсь изменить размеры вывода, что везде, где get_dimensions()
вызывается вместо значения по умолчанию, оно будет содержать букву измерения.
Таким образом, это будет 1 L x 1 W x 1 H вместо 1 x 1 x 1
Могу ли я переписать get_dimensions()
функция и включить букву рядом с каждым значением в массиве, или я могу как-то использовать wc_format_dimensions()
сделать это?
Обновлено: Вы не можете переопределить get_dimensions()
WC_Product
метод.
Но вы можете использовать woocommerce_format_dimensions
крючок фильтра расположен в wc_format_dimensions()
функция, чтобы добавить пользовательские метки к каждому атрибуту продукта измерения, таким образом (так, как вы хотите):
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' );
$dimensions = array_filter( array_map( 'wc_format_localized_decimal', $dimensions ) );
$label_with_dimensions = []; // Initialising
// Loop Though dimensions array
foreach( $dimensions as $key => $dimention )
$label_with_dimensions[$key] = strtoupper( substr($key, 0, 1) ) . ' ' . $dimention;
return implode( ' x ', $label_with_dimensions) . ' ' . get_option( 'woocommerce_dimension_unit' );
}
Код помещается в файл function.php вашей активной дочерней темы (или темы) или также в любой файл плагина.
Этот код протестирован на версиях WooCommerce 3+ и работает
Других решений пока нет …