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 ?

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é.

Créer une galerie personnalisée avec Elementor

Avec ce code vous allez pouvoir créer une galerie personnalisée avec Elementor

Afficher le poids total des produits dans le panier et commande

Ce code va nous permettre d'afficher le poids total des produits dans la page panier et commande de WooCommerce

ID de CSS personnalisé pour Elementor nested tabs

Ce script nous permettra d'exécuter une URL directement vers un onglet Elementor

Statistiques des commandes WooCommerce par pays

Ce plugin vous permet d'afficher rapidement les volumes de vente en fonction des pays.

Créer un menu déroulant d’une liste de Custom Post Type

Ce code va nous permettre d'afficher un menu déroulant qui liste tous les CPT présents dans notre ACF
ON DISCUTE ?

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