Frithir.com
Intento ordenar los productos según las categorías.
Si la categoría de producto A y las subcategorías ordenan ASC
De lo contrario, si la categoría de producto B y las subcategorías ordenan DESC.
En funciones.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;
}
Dominio
Puede usar el siguiente código para resolver su propósito:
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);
Recuerda cambiar $category_A_term_id
& $category_B_term_id
valores de variables a los identificadores de categoría correspondientes.
El código anterior verificará si la página de archivo de categoría es actual y, si lo es, categoría A
o niño de categoría A
orden de cambio, de manera similar para la categoría B
.
Alternativamente, también puede usar la siguiente condición de WooCommerce:
is_product_category( array( 'shirts', 'games' ) )
pero, aquí se deben especificar todas las categorías.
-
¡Gracias, esto funcionó perfectamente!. Agregué nuevamente en meta_key personalizado y orderby.
– Frithir.com
27 de mayo de 2015 a las 4:58