Ocultar productes fora d’stock en la página principal (també amb Elementor)


A vegades tenim un lloc web amb milers de productes, alguns d’ells sense estoc. Si volem mostrar aleatòriament productes en la nostra pàgina principal, però sense que apareguen els que no tenen stock, inclourem aquest codi al nostre functions.php:

//NO MOSTRAMOS productos sin stock en la home page
add_filter( 'woocommerce_product_query_meta_query', 'stockForaHome', 10, 2 );
function stockForaHome( $meta_query, $query ) {
// Si es la página principal
if( is_front_page() ){
// Excluimos productos fuera de stock
$meta_query[] = array(
'key' => '_stock_status',
'value' => 'outofstock',
'compare' => '!=',
);
}
return $meta_query;
}

També podem utilitzar aquest codi per a mostrar al final de tot, els productes sense stock en les categoríes-arxius-tags de productes:

//Productges sense stock al final
add_filter('posts_clauses', 'sin_stock_al_final_woocommerce');
function sin_stock_al_final_woocommerce($posts_clauses) {
    global $wpdb;
    // Solo cambiar la consulta en los bucles de WooCommerce
    if (is_woocommerce() && (is_shop() || is_product_category() || is_product_tag() || is_product_taxonomy())) {
        $posts_clauses['join'] .= " INNER JOIN $wpdb->postmeta istockstatus ON ($wpdb->posts.ID = istockstatus.post_id) ";
        $posts_clauses['orderby'] = " istockstatus.meta_value ASC, " . $posts_clauses['orderby'];
        $posts_clauses['where'] = " AND istockstatus.meta_key = '_stock_status' AND istockstatus.meta_value <> '' " . $posts_clauses['where'];
    }
    return $posts_clauses;
}

Deixa un comentari

L’adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *

9 + 4 =

Información básica sobre protección de datos Ver más

  • Responsable: Jordi Juan Pérez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio. El Titular ha contratado los servicios de alojamiento web a NICALIA que actúa como encargado de tratamiento.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. 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. Ver Política de cookies
Privacidad