Ich versuche, Produkte nach Kategorien zu sortieren.
Wenn Produktkategorie A und Unterkategorien ASC sortieren
Sonst, wenn Produktkategorie B und Unterkategorien DESC sortieren.
In der functions.php
add_filter('woocommerce_get_catalog_ordering_args', 'am_woocommerce_catalog_orderby');
function am_woocommerce_catalog_orderby( $args ) {
$args['meta_key'] = 'countdown_date';
$args['orderby'] = 'meta_value';
// need an if statement here to switch the order
$args['order'] = 'DESC';
return $args;
}
Sie können den folgenden Code verwenden, um Ihren Zweck zu lösen:
function wdm_change_ordering($args)
{
if (is_product_category()) {
global $wp_query;
$cat = $wp_query->get_queried_object();
$category_A_term_id = 53;
$category_B_term_id = 2;
if (!empty($cat) && ($cat->term_id === $category_A_term_id || $cat->parent === $category_A_term_id)) {
$args['order'] = 'ASC';
} elseif (!empty($cat) && ($cat->term_id === $category_B_term_id || $cat->parent === $category_B_term_id)) {
$args['order'] = 'DESC';
}
}
return $args;
}
add_filter('woocommerce_get_catalog_ordering_args', 'wdm_change_ordering', 10, 1);
Denken Sie daran, sich zu ändern $category_A_term_id
& $category_B_term_id
Variablenwerte zu entsprechenden Kategorie-IDs.
Der obige Code prüft, ob es sich bei der aktuellen Kategoriearchivseite um eine Kategorie handelt A
oder Kind der Kategorie A
Reihenfolge ändern, ähnlich für Kategorie B
.
Alternativ können Sie auch folgende WooCommerce-Bedingung verwenden:
is_product_category( array( 'shirts', 'games' ) )
hier müssen jedoch alle Kategorien angegeben werden.