包含尺寸字母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+上测试并且工作
完美的作品。不知道是否应该创建单独的问题,但我如何可以将“长度”键重命名为“直径”。我认为可以使用array_map替换$ dimensions数组?尝试过几件事情,但得到了“非法字符串偏移”警告。 – Aivaras
@Aivaras最好在新问题中提出这个问题,可能会添加这个代码,解释您现在得到的内容,然后解释您想要得到的内容......或类似内容。我会回答(也可能是其他人),因为不可能将我的答案作为评论。还试图明确解释你想重新命名的地方(哪里出现)... – LoicTheAztec