Hola Marta.
Para mostrar el precio total de un producto en la página de producto de WooCommerce, considerando la cantidad seleccionada por el usuario, puedes usar un fragmento de código en tu tema hijo o a través de un plugin paar añadir código como puede ser Code Snippets:
add_action('woocommerce_single_product_summary', 'mostrar_precio_total_producto', 35);
function mostrar_precio_total_producto() {
global $product;
// Solo aplica a productos simples o variables
if ($product->is_type('simple') || $product->is_type('variable')) {
?>
<script type="text/javascript">
jQuery(document).ready(function($) {
var precioUnitario = 0;
var cantidadInput = $('form.cart .quantity input.qty');
var contenedorPrecioTotal = $('<p id="precio-total"><strong>Precio Total: </strong><span>0.00 €</span></p>');
// Añadir el precio total después del botón "Añadir al carrito"
$('form.cart').append(contenedorPrecioTotal);
// Función para actualizar el precio total
function actualizarPrecioTotal() {
var cantidad = parseFloat(cantidadInput.val());
if (!isNaN(cantidad) && cantidad > 0 && precioUnitario > 0) {
var precioTotal = (precioUnitario * cantidad).toFixed(2);
$('#precio-total span').text(precioTotal + ' €');
} else {
$('#precio-total span').text('0.00 €');
}
}
// Para productos simples, obtenemos el precio inicial
<?php if ($product->is_type('simple')) : ?>
precioUnitario = <?php echo $product->get_price(); ?>;
actualizarPrecioTotal();
<?php endif; ?>
// Para productos variables, escuchamos los cambios en la variación seleccionada
<?php if ($product->is_type('variable')) : ?>
$('form.variations_form').on('show_variation', function(event, variation) {
precioUnitario = parseFloat(variation.display_price); // Obtenemos el precio de la variación seleccionada
actualizarPrecioTotal();
});
$('form.variations_form').on('reset_data', function() {
precioUnitario = 0; // Restablecemos el precio si se quita la selección de variación
actualizarPrecioTotal();
});
<?php endif; ?>
// Actualizamos el precio total cuando cambia la cantidad
cantidadInput.on('change keyup', function() {
actualizarPrecioTotal();
});
});
</script>
<style>
#precio-total {
margin-top: 10px;
font-size: 16px;
color: #333;
}
</style>
<?php
}
}
Un saludo
Hola Marta.
Solo añade un título para tenerlo identificado y el codigo que te pase, lo demás lo dejas como esta por defecto.
Un Saludo
Genial, muchas gracias, ahora tocaré el código para hacerlo un poco más grande y listo
Por cierto, puedo limitar a 1, 4 y 8 de cantidad el producto, solo sería para este
Muchas gracias
Hola Marta
Por favor abre una nueva consulta, te recomendamos crear consultas separadas para cada tema, lo que nos permitirá hacer un mejor seguimiento de tus dudas o errores. Así, contribuimos a mantener el orden en el foro, facilitando nuestro trabajo y ayudándote a encontrar fácilmente tus consultas sobre cada tema en el futuro.
Un Saludo
Muchas gracias
Así lo haré
Saludos
Hola Marta,
Gracias a ti, es un placer para nosotros siempre poder ayudarte.
No dudes en escribirnos si tienes cualquier otra consulta.
Un Saludo 😊