我正在尝试使用Include dimension letters L/W/H to WooCommerce formatted product dimensions output答案代码来更改产品尺寸在WooCommerce中的显示方式。
它以我想要的方式显示尺寸,不幸的是代码有两个问题。下面的代码引发PHP错误:
PHP警告:implode():传递了无效的参数
当未选择任何产品变体(仅为空白)时,它也不显示N / A。
我试图解决这些问题,但对WordPress不太熟悉,还无法找出解决方案。
在此先感谢您的任何建议/帮助。
答案 0 :(得分:1)
由于$label_with_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' );
}
$label_with_dimensions = array();
$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' );
}
您是否打印过$dimensions
以查看其内容?
如果没有,请尝试echo '<pre>'; print_r($dimensions); echo '</pre>'
。
您还提到“ N / A”未显示。请在此处检查empty
函数的用法:http://php.net/manual/ro/function.empty.php仅当您传递给它的变量等于“ FALSE”或0时,此函数才返回“ TRUE”。