cyxmedia
9/10/2017 - 7:43 PM

Ordenando productos mediante campos personalizados

En muchos shortcodes como:

[recent_products] [featured_products] [products] [product_category] [sale_products] [top_rated_products] [product_attribute] [related_products]

puedes ordenar los productos usando alguno de estos valores:

menu_order title date rand id

Por ejemplo, un uso del atributo ‘orderby’ sería el siguiente:

[products skus=”foo, bar, baz” orderby=”date” order=”desc”].

// Pero también puedes ordenar productos mediante campos personalizados, usando el siguiente código, en el ejemplo para ordenar productos por precio:

add_filter( 'woocommerce_shortcode_products_query', 'woocommerce_shortcode_products_orderby' );

function woocommerce_shortcode_products_orderby( $args ) {

$standard_array = array('menu_order','title','date','rand','id');

if( isset( $args['orderby'] ) && !in_array( $args['orderby'], $standard_array ) ) {
$args['meta_key'] = $args['orderby'];
$args['orderby'] = 'meta_value_num'; 
}

return $args;
}

// Simplemente añade el código a tu archivo functions.php o tu plugin de personalizaciones y lo adaptas editando el ‘meta_key’. Fácil ¿no?