2017-07-30 79 views
1

我試圖修改尺寸輸出,在任何地方調用get_dimensions()而不是默認情況下,它將包括尺寸字母。包含尺寸字母L/W/H到WooCommerce格式化的產品尺寸輸出

因此,這將是1升,而不是X 1寬x 1 H 1×1×1

我可以覆蓋get_dimensions()功能和包括信並排在陣列中的每個值或I可以以某種方式使用wc_format_dimensions()去做這個?

回答

1

您不能覆蓋get_dimensions()WC_Product方法。

但是你可以使用woocommerce_format_dimensions過濾鉤子位於wc_format_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'); 

    $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'); 
} 

代碼放在你的活動子主題(或主題)或任何插件文件中的function.php文件。

此代碼在WooCommerce版本3+上測試並且工作

+0

完美的作品。不知道是否應該創建單獨的問題,但我如何可以將「長度」鍵重命名爲「直徑」。我認爲可以使用array_map替換$ dimensions數組?嘗試過幾件事情,但得到了「非法字符串偏移」警告。 – Aivaras

+0

@Aivaras最好在新問題中提出這個問題,可能會添加這個代碼,解釋您現在得到的內容,然後解釋您想要得到的內容......或類似內容。我會回答(也可能是其他人),因爲不可能將我的答案作爲評論。還試圖明確解釋你想重新命名的地方(哪裏出現)... – LoicTheAztec