在 WooCommerce 格式的产品尺寸输出中包含尺寸字母 L/W/H
Include dimension letters L/W/H to WooCommerce formatted product dimensions output
我正在尝试修改尺寸输出,在调用 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
filter hook located in wc_format_dimensions()
function, to add custom labels to each dimension product attribute, this way (随心所欲):
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' );
}
代码进入您的活动子主题(或主题)的 functions.php 文件或任何插件文件。
此代码已在 WooCommerce 版本 3+ 上测试并有效
$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' );
}
我已将 Ed 代码添加到您的活动子主题的 functions.php
文件中,现在它工作正常:
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' );
}
我正在尝试修改尺寸输出,在调用 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
filter hook located in wc_format_dimensions()
function, to add custom labels to each dimension product attribute, this way (随心所欲):
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' );
}
代码进入您的活动子主题(或主题)的 functions.php 文件或任何插件文件。
此代码已在 WooCommerce 版本 3+ 上测试并有效
$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' );
}
我已将 Ed 代码添加到您的活动子主题的 functions.php
文件中,现在它工作正常:
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' );
}