Pedido múltiple por en WooCommerce

2 minutos de lectura

Pedido multiple por en WooCommerce
Cixasug

Quiero ordenar mis productos en la página de categoría por calificación promedio (DESC) y luego por precio (ASC).

| id  |  avgrating   |   price   |
|  1  |      4       |     10    |
|  2  |      4       |      5    |
|  3  |      5       |      7    |

Orden: 3, 2, 1.

Así que probé con:

$args['meta_key'] = '_wc_average_rating';
$args['orderby']  = array(
    'meta_value_num' => 'DESC',
    'price' => 'ASC',
);

Pero no están ordenados (también) por precio. también reemplacé price con _pricemismo resultado.

Estoy usando la última versión de WordPress (4.8) y WooCommerce (3.0.8).

Editar:

Si uso:

$args['meta_key'] = '_wc_average_rating';
$args['orderby']  = array(
    'meta_value_num' => 'DESC',
    'ID'             => 'DESC',
);

El pedido funciona como excepción, DESC por calificación promedio y luego DESC por ID. Entonces, tengo que cambiar ID con price pero no puedo hacer que funcione.

1647554047 887 Pedido multiple por en WooCommerce
ahmed ginani

Compruébalo pasando el order con argumentos

Consulte con estos,

add_filter( 'woocommerce_get_catalog_ordering_args', 'custom_woocommerce_get_catalog_ordering_args' );

function custom_woocommerce_get_catalog_ordering_args( $args ) {
  $orderby_value = isset( $_GET['orderby'] ) ? woocommerce_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) );
    if ( 'sort_by_type' == $orderby_value ) {
        $args['orderby'] = 'meta_value_num title';
        $args['order'] = 'ASC';
        $args['meta_key'] = 'sort_by_type';

    }

    if ( '_wc_average_rating' == $orderby_value ) {
        $args['orderby'] = 'meta_value_num title';
        $args['order'] = 'DESC';
        $args['meta_key'] = '_wc_average_rating';
    }

    return $args;
}

  • No funciona, devuelve: 3, 2, 1. Creo que es el orden por defecto o algo así…

    – Cixasug

    22 de junio de 2017 a las 6:46


  • ambas son condiciones diferentes o quieres ambas combinadas? También enumere el orden aquí también (necesita 2,1,3)?

    – Ahmed Ginani

    22 de junio de 2017 a las 6:51


  • Ordenar con _wc_average_rating es 3, 2, 1. Con sort_by_type devuelve 0 productos.

    – Cixasug

    22 de junio de 2017 a las 6:56

  • ¡Perfecto! Gracias.

    – Cixasug

    22 de junio de 2017 a las 7:15

  • funcionó para mí, gracias

    – Mátyás Groger

    18 de enero a las 13:53

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad