Avisos
Vaciar todo

[Cerrado] Desaparecen precios de los productos agotados  

 
María
 María
Usuario experto

Hola,

Por algún motivo, cuando un producto está agotado, el precio desaparece. Ocurre tanto en la pagina del producto en cuestión, como en las paginas de archivo de productos.

(solo ocurre en los productos que tienen variaciones. Los productos simples, aun estando agotados, continúan mostrando el precio).

¿Cómo puedo hacer para que, aun estando agotados, se muestre el precio?

Gracias!

Contenido solo visible a usuarios registrados

Respondido : 12/02/2024 10:04 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Maria.

En WooCommerce, cuando un producto está agotado, por defecto, el precio no se muestra en la página del producto. Sin embargo, si deseas mostrar el precio incluso cuando el producto esté agotado, puedes hacerlo mediante código personalizado.

Para lograr esto, puedes agregar el siguiente código en el archivo functions.php de tu tema hijo o mediante un complemento de código personalizado como puede ser Code Snippets:

function mostrar_precio_agotado() {
global $product;

// Verificar si el producto está agotado
if ($product->get_stock_status() === 'outofstock') {
// Obtener el precio del producto
$precio = $product->get_price();

// Mostrar el precio incluso cuando el producto está agotado
echo '<p class="precio-agotado">' . wc_price($precio) . '</p>';
}
}

add_action('woocommerce_single_product_summary', 'mostrar_precio_agotado', 25);

 

Ten en cuenta que modificar la apariencia de WooCommerce puede depender del tema que estés utilizando.

Si no te funciona, Por favor, adjunta una URL de un producto que no se muestre y lo revisamos.

 

Un Saludo

Respondido : 12/02/2024 12:32 pm

Cursos Gratuitos WordPress

María
 María
Usuario experto

Gracias Pepe, pero me temo que no me funciona.

He metido el código y continua sin aparecer el precio, ni en la pagina de producto ni en las paginas de archivo de producto

Una url donde ocurre es esta: https://pepitalimon.es/p/peto-tartan-nueces/

¿por favor, podéis revisarlo?

Gracias!

Captura de pantalla (41)

 

Respondido : 12/02/2024 12:43 pm
Karen Rios
 Karen Rios
Soporte CMS Webempresa Moderator

Hola María, 

Revisa si tienes activa la opción de ocultar los productos de la tienda cuando están agotados, puedes revisar esto en productos → inventario 

image

Si lo tienes activo, desactívalo y comprueba si el código que envía Pepe funciona. 

Un Saludo 

Respondido : 12/02/2024 1:43 pm

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

María
 María
Usuario experto

Hola Karen,

La opción que comentas está desactivada. Porque sí quiero que se muestren los productos agotados. De todas formas he probado a activarla y desactivarla de nuevo y continua igual.

Mira los pantallazos:

Captura de pantalla (44)
Captura de pantalla (43)

Si desactivo la opción que comentas los productos desaparecen y no puedo ver si aparece o no el precio

He probado también a desactivar el plugin Variation Swatches, que active recientemente, pero tampoco funciona.

¿alguna idea?

 

Gracias!

 

Respondido : 12/02/2024 2:34 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Maria.

Si no te funciona con los códigos que te pase antes habría que ver algo personalizado ya que los plugins y plantillas pueden afectar a ese comportamiento.

Puedes probar con esto:

function mostrar_precios_variable_agotado($price, $product) {
// Verificar si el producto es variable y está agotado
if ($product->is_type('variable') && !$product->is_in_stock()) {
// Obtener el precio base mínimo
$base_price = $product->get_variation_price('min', true);

// Obtener el precio base máximo
$max_price = $product->get_variation_price('max', true);

// Formatear los precios
$formatted_price = wc_format_price($base_price);

// Si el precio máximo es diferente al precio base, mostrar el rango de precios
if ($max_price !== $base_price) {
$formatted_price .= ' - ' . wc_format_price($max_price);
}

return $formatted_price;
}

// Devolver el precio original para otros tipos de productos
return $price;
}

add_filter('woocommerce_variable_price_html', 'mostrar_precios_variable_agotado', 10, 2);


Si no te funciona, tendrías que consultarlo con el soporte de la plantilla o si quieres algo personalizado puedes ponerte en contacto con algún colaborador:

-> https://www.webempresa.com/directorio-colaboradores.html

 

Un Saludo

 

Respondido : 12/02/2024 3:38 pm

María
 María
Usuario experto

Parece que no lo soluciona.

gracias en cualquier caso!

Respondido : 12/02/2024 3:46 pm