Ordenar al azar los productos del catálogo de WooCommerce

Ordenar al azar los productos del catálogo de WooCommerce

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;
}

¿Te ha gustado este código? Coméntalo con códigosWP:

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio