logooneasesoria4

¿Necesita una consulta gratuita?

Primero los productos destacados por defecto en la tienda con WooCommerce @ Ayuda WordPress

En la página de tienda que se crea con WooCommerce aparece por defecto un selector de orden, en el que el visitante puede elegir en qué orden visualizar los productos, en el que de manera predeterminada la clasificación es bastante aleatoria, o lo que se conoce como por orden en el menú, de lo que ya hablamos en otro artículo.

¿Y si, por ejemplo, queremos que se muestren primero nuestros productos destacados? Sí, esos que marcamos como destacados por algo al crearlos.

productos woocommerce destacados

Porque da igual que los marquemos así, ni el cliente encontrará una opción en el desplegable para mostrarlos, pero lo que es más importante, por defecto no podemos elegir mostrar primero los productos destacados.

personalizar orden productos catalogo woocommerce

Y, en consecuencia, nuestros productos destacados quedarán, por ahí, huérfanos, sin nadie que les reconozca ese valor, ese mérito de ser destacados 🙁

productos destacados sin preferencia en tienda

Entonces ¿qué hago?, ¿no puedo mostrar en la tienda primero mis productos destacados?

¡Que síííííí!

Para conseguirlo, eso sí, tenemos que valernos de una función que haga la magia por nosotros, de manera automática, sin intervención del usuario, esta:

/* Ordenar productos en tienda por defecto primero por destacados */
// Reemplazamos el orden por defecto con uno personalizado
add_filter( 'woocommerce_catalog_orderby', 'ayudawp_orden_catalogo_personalizado' );
function ayudawp_orden_catalogo_personalizado( $sortby ) {
$sortby['featured'] = __( 'Orden por defecto', 'woocommerce' );
unset( $sortby['menu_order'] );
return $sortby;
}
// Hacemos que nuestro orden personalizado sea el por defecto
add_filter( 'woocommerce_default_catalog_orderby', 'ayudawp_orden_catalogo_personalizado_pordefecto' );
function ayudawp_orden_catalogo_personalizado_pordefecto() {
return 'featured';
}
// Definimos el orden como opcion
add_filter( 'woocommerce_get_catalog_ordering_args', 'ayudawp_opciones_orden_catalog_personalizado' );
function ayudawp_opciones_orden_catalog_personalizado( $args ) {
$orderby_value = isset( $_GET['orderby'] ) ? wc_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) );
if ( 'featured' == $orderby_value ) {
$args['orderby'] = 'menu_order title';
$args['order'] = '';
$args['meta_key'] = '';
}
return $args;
}
// Ajustamos el orden para permitir destacados
add_filter( 'posts_orderby', 'ayudawp_orden_catalogo_personalizado_destacados_primero', 10, 2 );
function ayudawp_orden_catalogo_personalizado_destacados_primero( $order_by, $query ) {
global $wpdb;
if ( ! is_admin() ) {
$orderby_value = ( isset( $_GET['orderby'] ) ? wc_clean( (string) $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) ) );
$orderby_value_array = explode( '-', $orderby_value );
$orderby = esc_attr( $orderby_value_array[0] );
$order = ( ! empty( $orderby_value_array[1] ) ? $orderby_value_array[1] : 'ASC' );
$featured_product_ids = wc_get_featured_product_ids();
if ( $orderby == "featured" && is_array( $featured_product_ids ) && ! empty( $featured_product_ids ) ) {
if ( empty( $order_by ) ) {
$order_by = "FIELD(" . $wpdb->posts . ".ID,'" . implode( "','", $featured_product_ids ) . "') DESC ";
} else {
$order_by = "FIELD(" . $wpdb->posts . ".ID,'" . implode( "','", $featured_product_ids ) . "') DESC, " . $order_by;
}
} 
}
return $order_by;
}

Solo tienes que copiar y pegar este código de arriba en el archivo functions.php del tema activo – o como prefieras – y ya tendrás el orden por defecto del catálogo de tu tienda mostrando primero los productos destacados.

productos destacados primero en tienda por defecto

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

¿Te gustó este artículo?

Déjanos tus comentarios..!

4 de diciembre de 2023

RECIBE

GRATIS

Recursos para tu web GRATIS.

En agradecimiento por haber leido nuestro blog te ofrecemos algúnos plugins, temas y asesoría para el desarrollo de tu sitio web.
Envía correo y espera respuesta...Gracias..!
baneranunciopluginsbest
Publicaciones Relacionadas
Abrir chat
One Asesoría
Hola 👋
¿Necesita cotizar una página o tienda online, cómo podemos ayudarle..?