WordPress

Actualizar el precio dinámicamente al cambiar la cantidad

24/10/2019 Blog

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.