Supplemento per pagamento alla consegna con il nuovo checkout di Gutenberg

Se anche voi volete usare il nuovo checkout di WooCommerce in WordPress e volete aggiungere un supplementoper il pagamento alla consegna, detto anche “Cash on Delivery” allor ail codice di oggi è il seguente.

Create un file functions.php nel vostro child-theme e isnerite questo codice.

add_action( 'woocommerce_cart_calculate_fees', 'aggiungi_o_rimuovi_supplemento_pagamento_alla_consegna', 20, 1 );
function aggiungi_o_rimuovi_supplemento_pagamento_alla_consegna( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) ) {
        return;
    }

    // Verifica che ci sia un metodo di pagamento selezionato
    if ( isset( WC()->session->chosen_payment_method ) ) {
        $metodo_di_pagamento = WC()->session->chosen_payment_method;

        // Se il metodo di pagamento è "cod" (Pagamento alla consegna), aggiungi il supplemento
        if ( $metodo_di_pagamento === 'cod' ) {
            $supplemento = 3.90; // Importo del supplemento
            $cart->add_fee( __( 'Supplemento pagamento alla consegna', 'text-domain' ), $supplemento );
        }
    }
}
// Carica lo script JavaScript per forzare il ricalcolo del carrello al cambio metodo di pagamento
function carica_js_ricalcolo_supplemento() {
    if ( is_checkout() ) {
        wp_enqueue_script( 'ricalcolo-supplemento', get_stylesheet_directory_uri() . '/assets/ricalcolo-supplemento.js', array( 'jquery' ), null, true );
    }
}
add_action( 'wp_enqueue_scripts', 'carica_js_ricalcolo_supplemento' );

Questo codice inserisce un supplemento di € 3.90 ma potete cambiarlo a vostro piacimento.

Qui invece il codice JS da inserire nel vostro child-theme.

jQuery( function( $ ) {
    // Ascolta il cambiamento del metodo di pagamento
    $( document.body ).on( 'change', 'input[name="payment_method"]', function() {
        // Forza il ricalcolo del carrello ogni volta che viene cambiato il metodo di pagamento
        $( document.body ).trigger( 'update_checkout' );
    });
});

Tutto qua!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *