Izar74 Posted March 15 Share Posted March 15 Salve a tutti, sto testando una funzione che permetta, nella scheda degli articoli, di aggiornare il prezzo quando si modifica la quantità del prodotto. Questo a mio avviso semplifica e aiuta chi acquista. Avevo chiesto ad un amico se era possibile farlo semplicemente senza ricorrere a moduli etc. In 20 minuti mi scrisse il seguente codice che sul sito con Prestashop 1.7.7.8 va ancora alla grande. Visto che sto aggiornando il tutto alla versione 8.1.3 ho provato lo stesso codice che funziona ma con un problema, il prezzo si aggiorna ma dopo pochi secondi ritorna quello base (gli articoli hanno tutti 3 diverse opzioni, il risultato voluto è che il prezzo mostrato sia coerente con l'opzione scelta e il numero di articoli selezionati. ES: scelgo opzione1 €5,00 e seleziono 3 come quantità, il prezzo mostrato dovrebbe essere €15,00). Le condizioni di test sono le seguenti: PHP 8.1.27, Prestashop 8.1.3, Tema installato boom17 v1.1.4 - Sviluppato da ETS-Soft Modifica al file \themes\boom17\assets\js\custom.js aggiungendo la seguente funzione: $(function() { let current_product_price = parseFloat($('.product-price .current-price span').attr('content')); $( '#quantity_wanted' ).on('keyup', function() { if ($(this).val() && $(this).val() >= 0) { if (parseFloat($('.product-price .current-price span').attr('content')) != current_product_price) { current_product_price = parseFloat($('.product-price .current-price span').attr('content')) } let new_price = $(this).val() * current_product_price; let new_price_formatted = ($(this).val() * current_product_price).toFixed(2).replace('.', ',') + ' €'; $('.product-price .current-price span').text(new_price_formatted); } }); $('.product-quantity .bootstrap-touchspin-up, .product-quantity .bootstrap-touchspin-down').on('click', function() { let quantity = $('#quantity_wanted').val(); if (quantity && quantity >= 0) { if (parseFloat($('.product-price .current-price span').attr('content')) != current_product_price) { current_product_price = parseFloat($('.product-price .current-price span').attr('content')) } let new_price = quantity * current_product_price; let new_price_formatted = (quantity * current_product_price).toFixed(2).replace('.', ',') + ' €'; $('.product-price .current-price span').text(new_price_formatted); } }); }); se qualcuno avesse suggerimenti o indicazioni sarebbe di aiuto. Potete utilizzare liberamente il codice. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now