blog webempresa

Ocultar productos agotados en WooCommerce

por | Ago 16, 2022 | WooCommerce

Ocultar productos agotados en WooCommerce

WooCommerce es un gran sistema para crear tiendas en línea, pero tiene sus deficiencias básicas, aunque puedes solucionarlas todas fácilmente.

Por ejemplo, si no lo arregla, muestra variaciones de productos agotados o no muestra solo el precio más barato cuando es un producto variable.

Uno de los errores de WooCommerce, que puede hacerte perder clientes, es mostrar en la tienda productos con inventario agotado. ¿Por qué es esto un problema? Pues porque le muestras al cliente un producto en la tienda, aparentemente como el resto de productos.

Luego, al ingresar al producto lo vemos de la siguiente forma:

Y es un problema porque has hecho que el cliente navegue a una página donde has provocado una decepción, una insatisfacción, y las emociones negativas son caras en una tienda online.

A menos que hayas estudiado bien la estrategia para que ofrezcas un producto alternativo en la misma página del producto agotado, es muy probable que el cliente salga de tu tienda, pensando que está perdiendo el tiempo en tu Ecommerce, que ofreces productos que no tiene, y muy probablemente no volverá si esta fue su primera experiencia en su tienda online.

Para solucionar este problema hay que ocultar los productos cuando su inventario esté agotado y volver a mostrarlos cuando haya stock.

Y la forma de lograrlo es con un poco de código, que agregaremos a nuestro archivo functions.php, si lo agregamos directamente en nuestro tema hijo es mucho mejor, ya que no se perderá si actualizamos el tema, dicho archivo lo encontramos en:

Cpanel > Administrador de archivos > Public_html > Dominio > wp-content > themes > tema hijo > archivo functions.php

En este agregamos al final del todo el siguiente fragmento de código:

/* Hide out of stock products */
add_filter( 'woocommerce_product_query_meta_query', 'we_hide_out_of_stock_products', 10, 2 );
function we_hide_out_of_stock_products
( $meta_query, $query )
{
// Only on archive pages online store
if( is_admin() || is_search() || ! is_shop() ) return $meta_query;
$meta_query[] = array(
'key' => '_stock_status',
'value' => 'outofstock',
'compare' => '!='
);
return $meta_query;
}

Guarde los cambios y el producto ya no se mostrará en todas las páginas del catálogo de productos, como la página de la tienda y el archivo de resultados de búsqueda.

¿Te ha resultado útil este artículo?

Promo abril