我正在寻找一种过滤显示顺序或woocommerce产品尺寸(长度,宽度,高度)的方法。我想在宽度之前显示高度。
目前我使用自定义功能来过滤显示尺寸的位置:
function wsa_show_product_dimensions() {
global $product;
echo $product->list_attributes();
}
add_action( 'woocommerce_single_product_summary', 'wsa_show_product_dimensions', 25 );
我修改了product-attributes.php模板,以便格式化返回的html:
<?php if ( $display_dimensions && $product->has_dimensions() ) : ?>
<div class="c-details-row">
<div class="c-details-col c-details-col_1">
<span class="c-label-middle"><?php _e( 'Size', 'woocommerce' ) ?></span>
</div>
<div class="c-details-col c-details-col_2">
<span class="c-label-middle"><?php echo esc_html( wc_format_dimensions( $product->get_dimensions( false ) ) ); ?></span>
</div>
</div>
<?php endif; ?>
我可以看到我需要过滤get_dimensions();
函数,但不知道如何重新排序数组?
我发现list_attributes();
已被弃用,因此有关如何执行此操作的任何帮助 - 如果可能,请使用新的wc_display_product_attributes
方法。
答案 0 :(得分:0)
首先,由于WooCommerce 3 WC_Product
list_attributes()
方法已被弃用,因此被wc_display_product_attributes( $product )
取代。
要更改产品尺寸顺序,首先需要创建自己的功能:
function get_product_dimensions_custom(){
global $product;
return wc_format_dimensions( array(
'length' => $product->get_length(),
'height' => $product->get_height(),
'width' => $product->get_width(),
));
}
代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。
然后您可以在模板自定义中使用它:
<?php if ( $display_dimensions && $product->has_dimensions() ) : ?>
<div class="c-details-row">
<div class="c-details-col c-details-col_1">
<span class="c-label-middle"><?php _e( 'Size', 'woocommerce' ) ?></span>
</div>
<div class="c-details-col c-details-col_2">
<span class="c-label-middle"><?php echo esc_html( get_product_dimensions_custom() ); ?></span>
</div>
</div>
<?php endif; ?>
要在 woocommerce_single_product_summary
中完成自定义关联功能,请执行以下操作:
add_action( 'woocommerce_single_product_summary', 'wsa_show_product_dimensions', 25 );
function wsa_show_product_dimensions() {
global $product;
echo wc_display_product_attributes( $product );
}
代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。
此代码在WooCommerce 3+上进行测试并正常运行;