包含尺寸字母L/W/H到WooCommerce格式化的产品尺寸输出

问题描述:

我试图修改尺寸输出,在任何地方调用get_dimensions()而不是默认情况下,它将包括尺寸字母。包含尺寸字母L/W/H到WooCommerce格式化的产品尺寸输出

因此,这将是1升,而不是X 1宽x 1 H 1×1×1

我可以覆盖get_dimensions()功能和包括信并排在阵列中的每个值或I可以以某种方式使用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)); 
    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+上测试并且工作

+0

完美的作品。不知道是否应该创建单独的问题,但我如何可以将“长度”键重命名为“直径”。我认为可以使用array_map替换$ dimensions数组?尝试过几件事情,但得到了“非法字符串偏移”警告。 – Aivaras

+0

@Aivaras最好在新问题中提出这个问题,可能会添加这个代码,解释您现在得到的内容,然后解释您想要得到的内容......或类似内容。我会回答(也可能是其他人),因为不可能将我的答案作为评论。还试图明确解释你想重新命名的地方(哪里出现)... – LoicTheAztec