情况:Woocommerce产品对象通常包含具有原始x y z值的数组override fun onStop() {
unregisterReceiver(broadcastReceiver)
super.onStop()
}
。
dimensions
使用“ Additional custom dimensions for products in Woocommerce” 答案代码,我创建了3个新的自定义尺寸(深度,直径,座椅高度)…
问题::我想将这些属性添加到产品类中,以便可以在任何地方直接使用它们,例如:
$product = [
'dimensions' => [
'length' => 1,
'width' => 1,
'height' => 1
],
'dimensions_html' => '1 x 1 x 1 cm',
...
这怎么办?
答案 0 :(得分:-1)
我解决并操纵了dimensions_html
来包含所有必要的尺寸。这不是一个优雅或通用的解决方案,但现在对我有用。
// functions.php
add_filter( 'woocommerce_format_dimensions', 'change_formated_product_dimentions', 10, 2 );
function change_formated_product_dimentions( $dimension_string, $dimensions ){
global $product;
$cm = get_option( 'woocommerce_dimension_unit' );
$html = '';
if( $dimensions['length'] ){
$html .= '<span><strong>Length</strong> '.$dimensions['length'].' '.$cm.'</span>';
}
if( $dimensions['width'] ){
$html .= '<span><strong>Width</strong> '.$dimensions['width'].' '.$cm.'</span>';
}
if( $dimensions['height'] ){
$html .= '<span><strong>Height</strong> '.$dimensions['height'].' '.$cm.'</span>';
}
$depth = $product->get_meta( '_depth' );
if( $depth ){
$html .= '<span><strong>Depth</strong> '.$depth.' '.$cm.'</span>';
}
$diameter = $product->get_meta( '_diameter' );
if( $diameter ){
$html .= '<span><strong>Diameter</strong> '.$diameter.' '.$cm.'</span>';
}
$seat_height = $product->get_meta( '_seat_height' );
if( $seat ){
$html .= '<span><strong>Seat height</strong> '.$seat_height.' '.$cm.'</span>';
}
return $html;
}
现在已包含在$product['dimensions_html']
中,并且在回显结果时出现在
长度 1厘米 宽度 1厘米 高度 1厘米 深度 1厘米 直径 1厘米 座椅高度 1厘米
,还有(几乎)我想要的。