WooCommerce产品尺寸格式调整:仅末尾显示单位的技术需求
修改WooCommerce产品维度显示格式
首先感谢LoicTheAztec提供的基础代码框架!针对你想要的「宽×长×高 单位」格式(示例:200×600×200mm),我们只需要调整单位的添加逻辑——不再给每个维度单独附加单位,而是把所有处理好的数值用「×」连接后,再在末尾统一加上单位。
修改后的完整代码
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' ); // 按需求定义维度顺序:宽、长、高 $new_dimensions = array( 'width' => $dimensions['width'], 'length' => $dimensions['length'], 'height' => $dimensions['height'] ); // 过滤空值并格式化维度数值(保留本地化小数格式) $formatted_values = array_filter( array_map( 'wc_format_localized_decimal', $new_dimensions ) ); // 如果没有有效维度,返回N/A if ( empty( $formatted_values ) ) return __( 'N/A', 'woocommerce' ); // 用「×」连接所有数值,再在末尾添加统一单位 $dimension_unit = get_option( 'woocommerce_dimension_unit' ); return implode( '×', $formatted_values ) . ' ' . $dimension_unit; }
关键修改说明
- 移除了原代码中循环给每个维度加单位的逻辑,改为先处理纯数值部分
- 用
implode( '×', $formatted_values )把所有有效维度数值拼接成「值×值×值」的形式 - 最后通过
get_option( 'woocommerce_dimension_unit' )获取你在WooCommerce后台设置的维度单位,拼在数值串的末尾 - 额外增加了对空维度数组的二次判断,避免出现只显示单位的异常情况
内容的提问来源于stack exchange,提问作者dswong
相关产品推荐
相关产品推荐

