WooCommerce:自定义产品尺寸输出

时间:2019-01-26 19:49:40

标签: php wordpress woocommerce implode

我正在尝试使用Include dimension letters L/W/H to WooCommerce formatted product dimensions output答案代码来更改产品尺寸在WooCommerce中的显示方式。

它以我想要的方式显示尺寸,不幸的是代码有两个问题。下面的代码引发PHP错误:

  

PHP警告:implode():传递了无效的参数

当未选择任何产品变体(仅为空白)时,它也不显示N / A。

我试图解决这些问题,但对WordPress不太熟悉,还无法找出解决方案。

在此先感谢您的任何建议/帮助。

1 个答案:

答案 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”。