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

Leave a comment

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

eight + sixteen =

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.