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
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
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!
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
Si lo tienes activo, desactívalo y comprueba si el código que envía Pepe funciona.
Un Saludo
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:
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!
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
Parece que no lo soluciona.
gracias en cualquier caso!