Sortieren Sie Produktattributbegriffe mit der WooCommerce-Funktion wc_get_product_terms

Lesezeit: 1 Minute

Benutzer-Avatar
Joe Sullivan

Ich habe eine E-Commerce-Website, die von WooCommerce betrieben wird. Ich verwende Produktvariationen, damit meine Kunden eine bestimmte Konfiguration für ihr Produkt auswählen können.

Ich verwende den folgenden Code, um die Begriffsnamen eines bestimmten Produktattributs aufzulisten:

$available_pa_colors = wc_get_product_terms( $product->get_id(), 'pa_colors' );    

Und es funktioniert super.

Jedoch beim Ändern der Standardsortierreihenfolge aus “Kundenbestellung” zu “Term-ID”bekomme ich nichts (es werden keine Begriffsnamen angezeigt).

Ich habe etwas recherchiert und es scheint, dass wc_get_product_terms nicht mit dem Sortieren funktioniert.
Wie kann ich diese Begriffe so einstellen, dass sie nach Begriffs-ID sortiert werden?

Jeder Track auf diesem wird geschätzt.

Benutzer-Avatar
LoicTheAztec

Die Funktion wc_get_product_terms() Verwendet _wc_get_cached_product_terms() die gespeicherte zwischengespeicherte Daten priorisieren gegen die Verwendung von WordPress wp_get_post_terms() darin enthalten.
Deshalb kann man nichts sortieren.

Also sollten Sie stattdessen direkt verwenden wp_get_post_terms() was eine Sortierung wie folgt ermöglicht:

$available_pa_colors = wp_get_post_terms( $product->get_id(), 'pa_colors', array(
    'orderby' => 'term_id', 'order' => 'ASC', 'fields' => 'names'
) );

Getestet und funktioniert.

  • Danke @LoicTheAztec! Benennen Sie einfach wc_get_product_terms() in wp_get_post_terms() um und die Sortierung der Attribute auf der Website ändert sich von der Standardeinstellung nach Name zu der Sortierung, die in den Produktkartenvariationen festgelegt wurde.

    – Ruslan Novikov

    23. September 2019 um 11:32 Uhr

1102840cookie-checkSortieren Sie Produktattributbegriffe mit der WooCommerce-Funktion wc_get_product_terms

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy