2017-07-30 1 views
1

Ich versuche, Dimensionen zu ändern, die überall dort, wo get_dimensions() anstelle von Standard heißt es Dimensionsbuchstaben nennen würde.Dimensionsbuchstaben L/W/H zu WooCommerce formatierten Produkt Dimensionen Ausgabe

So wäre es 1 sein L x 1 W x 1 H anstelle von 1 x 1 x 1

Kann ich get_dimensions() Funktion und umfassen Buchstaben neben jedem Wert in Array überschreiben oder kann ich irgendwie verwenden wc_format_dimensions() um dies zu tun?

Antwort

1

Sie können die Methode get_dimensions()WC_Product nicht überschreiben.

Aber man kann woocommerce_format_dimensions Filterhaken in wc_format_dimensions() Funktion befindet verwenden, benutzerdefinierte Etiketten auf jede Dimension Produktattribut, auf diese Weise (so wie Sie wollen) hinzuzufügen:

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

-Code geht in function.php Datei Ihres aktiven Child Theme (oder Theme) oder auch in einer beliebigen Plugin Datei.

Dieser Code auf WooCommerce Versionen getestet 3+ und arbeitet

+0

perfekt funktioniert. Nicht sicher, ob separate Frage erstellt werden sollte, aber wie könnte ich "Länge" Schlüssel in "Durchmesser" umbenennen. Ich denke, das könnte in $ Dimensionen Array mit Array_map ersetzen? Versuchte paar Dinge, aber bekam "Illegal String Offset" Warnung. – Aivaras

+0

@Aivaras Ist es besser, dies in einer neuen Frage zu stellen, fügt dieser Code hinzu, um zu erklären, was Sie jetzt bekommen und was Sie dann bekommen möchten ... oder so ähnlich. Ich werde antworten (und möglicherweise auch andere), weil es nicht möglich ist, meine Antwort als Kommentar aufzunehmen. Versuchen Sie auch explizit zu erklären, wo Sie das umbenennen möchten (wo wird erscheinen) ... – LoicTheAztec

Verwandte Themen