我试图修改维度输出,在调用 get_dimensions()
的地方而不是默认值时,它会包含维度字母。
因此它将是1 L x 1 W x 1 H而不是1 x 1 x 1
我可以覆盖 get_dimensions()
功能并在数组中包含每个值旁边的字母,或者我可以某种方式使用 wc_format_dimensions()
来执行此操作吗?
答案 0 :(得分:2)
已更新:您无法覆盖get_dimensions()
WC_Product
方法。
但您可以使用位于wc_format_dimensions()
函数中的 woocommerce_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+上测试并正常工作
答案 1 :(得分:0)
$dimensions = $product->get_dimensions();
if ( !empty( $dimensions) ) {
echo 'Height: ' . $product->get_height() . get_option( 'woocommerce_dimension_unit' );
echo 'Width: ' . $product->get_width() . get_option( 'woocommerce_dimension_unit' );
echo 'Length: ' . $product->get_length() . get_option( 'woocommerce_dimension_unit' );
}
答案 2 :(得分:0)
我在您的活动子主题的functions.php
文件中添加了addEd代码,现在可以正常使用了:
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' );
}