更改WooCommerce单一产品的页面尺寸顺序

问题描述:

我在寻找一种方法来过滤显示顺序或woocommerce产品的尺寸(长度,宽度,高度)。我想在宽度之前显示高度。更改WooCommerce单一产品的页面尺寸顺序

目前我使用自定义funtion过滤其中显示尺寸:

<?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; ?> 

function wsa_show_product_dimensions() { 
    global $product; 
    echo $product->list_attributes(); 
} 

add_action('woocommerce_single_product_summary', 'wsa_show_product_dimensions', 25); 

以格式化所返回的HTML我已经修改了产品attributes.php模板

我可以看到,我需要过滤get_dimensions();功能,但不知道如何重新顺序排列?

我看到list_attributes();已被弃用,所以如何做到这一点的任何帮助 - 如果可能的话使用新的wc_display_product_attributes方法会很好。

首先,由于WooCommerce 3 WC_Productlist_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测试+和作品;

+0

这真棒@LoicTheAztec - 非常感谢你。有一个小的错字模板custoomisation片段('尺寸'应该是'尺寸') - 除此之外,这是绝对完美的。非常感谢 – Marco