Ordena los productos del catálogo de WooCommerce de manera aleatoria.
add_filter('woocommerce_get_catalog_ordering_args', 'wc_random_order_products');
function wc_random_order_products($args) {
if( is_shop() && ( ! isset($_GET['orderby']) || 'menu_order' === $_GET['orderby'] ) ) {
$args['orderby'] = 'rand';
return ($args);
}
}
Para permitir al usuario ordenar los productos:
add_filter(
"woocommerce_get_catalog_ordering_args",
"wc_random_order_products_selector"
);
function wc_random_order_products_selector($args) {
$orderby_value = isset($_GET["orderby"])
? woocommerce_clean($_GET["orderby"])
: apply_filters(
"woocommerce_default_catalog_orderby",
get_option("woocommerce_default_catalog_orderby")
);
if ("random_list" == $orderby_value) {
$args["orderby"] = "rand";
$args["order"] = "";
$args["meta_key"] = "";
}
return $args;
}
add_filter(
"woocommerce_default_catalog_orderby_options",
"custom_woocommerce_catalog_orderby"
);
add_filter("woocommerce_catalog_orderby", "custom_woocommerce_catalog_orderby");
function custom_woocommerce_catalog_orderby($sortby) {
$sortby["random_list"] = "Orden aleatorio";
return $sortby;
}