Incrémenter le prix en fonction de la quantité d’un produit

Le code permet d’afficher un montant total qui affiche le prix par unité multiplié par la quantité que le client va sélectionner.
Cela fonctionne si c’est un produit variable ou un produit simple !

				
					/******************************************************/
/* Afficher le prix en fonction de la quantité produit */
/******************************************************/
function action_woocommerce_before_add_to_cart_button() {
    global $product;

    $currency = get_woocommerce_currency_symbol();

    // Initialisez le sous-total pour les produits simples
    $initialSubtotal = $product->is_type('simple') ? ('Total: ' . $product->get_price() . $currency) : '';
    
    echo '<div id="subtotal" style="'. ($product->is_type('simple') ? '' : 'display:none;') .'"><span>' . $initialSubtotal . '</span></div>';
    
    wc_enqueue_js( "      
        var currentPrice = " . ($product->is_type('simple') ? $product->get_price() : 0) . ";

        // Si c'est un produit variable
        if ( $('.variations_form').length ) {
            $(document).on('found_variation', '.variations_form', function(event, variation) {
                currentPrice = variation.display_price;
                updateSubtotal();
                $('#subtotal').show();
            });

            $(document).on('reset_data', '.variations_form', function() {
                $('#subtotal').hide();
            });
        }

        $( '[name=quantity]' ).on( 'input change', function() {
            updateSubtotal();
        }).change();

        function updateSubtotal() {
            var qty = $( '[name=quantity]' ).val();
            var price_string = ( currentPrice * qty ).toFixed(2);
            
            if ( qty >= 1 ) {
                $( '#subtotal > span').html( 'Total: ' + price_string + \"" . esc_js( $currency ) . "\" );
            } else {
                $( '#subtotal > span').html( '' );                
            }
        }
    " );
}
add_action( 'woocommerce_after_add_to_cart_form', 'action_woocommerce_before_add_to_cart_button', 10, 0 );
				
			
Envie de laisser un commentaire ?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Tu veux voir d'autres bouts de code ?

Bouton retour en haut pour Elementor

Bouton « Retour en haut » avec remplissage progressif en fonction du défilement. Utilise automatiquement la couleur principale d'Elementor.

Stock Status Widget pour Elementor

Widget Elementor affichant le statut de stock des produits WooCommerce. Conçu pour le Loop Builder (cards produit dans les archives/catégories).

Menu sticky intelligent (hide on scroll)

Ce snippet met en place un menu sticky fixé en haut de l’écran

Méthode d’expédition gratuite avec coupon WooCommerce

Offrir les frais de livraison… mais seulement pour la méthode d’expédition que tu choisis.

WooCommerce Product Buyers List

Ajoute un onglet dans WooCommerce pour afficher les acheteurs d'un produit spécifique avec filtre de date.

Emails additionnels par produits WooCommerce

Ajoute un onglet personnalisé dans les produits WooCommerce pour écrire un e-mail spécifique à chaque produit. Celui-ci sera envoyé dans un e-mail dédié.
ON DISCUTE ?

Une question sur WordPress ?
Un projet web à faire sous traiter par un freelance ?
Je suis votre homme !