Actualizar el precio dinámicamente al cambiar la cantidad
Llevo creando plantillas para WordPress y Woocommerce casi 10 años y una funcionalidad que me suelen pedir es que se actualice el precio dinámicamente al cambiar la cantidad en la vista del producto.
Es fácil, con un simple add_action en el functions.php de tu tema.
add_action( 'woocommerce_single_product_summary', 'woocommerce_actualizar_precio_dinamico', 31 );
function woocommerce_actualizar_precio_dinamico() {
global $woocommerce, $product;
echo sprintf('<div id="product_total_price" style="margin-bottom:20px;">%s %s</div>',__('Product Total:','woocommerce'),'<span class="price">'.$product->get_price().'</span>');
?>
<script>
jQuery(function($){
var price = <?php echo $product->get_price(); ?>,
currency = '<?php echo get_woocommerce_currency_symbol(); ?>';
$('[name=quantity]').change(function(){
if (!(this.value < 1)) {
var product_total = parseFloat(price * this.value);
$('#product_total_price .price').html( currency + product_total.toFixed(2));
}
});
});
</script>
<?php
}
No hay ninguna petición Ajax ni nada que se parezca. Sólo calcula ‘al vuelo’ el precio y lo pinta con JavaScript (jQuery)
Espero que te ayude.