Una lettrice del Blog ha richiesto se fosse possibile e come aggiungere il costo dell’Assicurazione al carrello WooCommerce. Di base purtroppo WooCommerce non consente questa possibilità, ma possiamo procedere in due modi:

  • nel primo caso possiamo aggiungere il costo direttamente a quello della spedizione, in questo caso però l’utente non potrà scegliere se vuole o meno sostenere questo costo, sarà una spedizione con Assicurazione obbligatoria.
  • se vogliamo invece offrire la scelta all’utente, dovremo procedere in questo modo:
    come prima cosa dovremo creare un nuovo prodotto chiamato “Spedizione Assicurata” attribuendo il costo dell’assicurazione, ad esempio, 3€.
    Annotate il codice ID del prodotto appena creato, ci servirà per lo step successivo.
    Aggiungiamo il seguente codice al file functions.php del nostro tema (usa un tema child possibilmente):
    add_action('woocommerce_cart_totals_after_shipping', 'wc_shipping_insurance_note_after_cart');
    function wc_shipping_insurance_note_after_cart() {
    global $woocommerce;
        $product_id = xxx;
    foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $values ) {
        $_product = $values['data'];
        if ( $_product->id == $product_id )
            $found = true;
        }
        // if product not found, add it
    if ( ! $found ):
    ?>
        <tr class="shipping">
            <th><?php _e( 'Spedizione Assicurata', 'woocommerce' ); ?></th>
            <td><a href="<?php echo do_shortcode('[add_to_cart_url id="xxx"]'); ?>"><?php _e( 'Aggiungi spedizione assicurata (+$3)' ); ?> </a></td>
        </tr>
    <?php else: ?>
        <tr class="shipping">
            <th><?php _e( 'Spedizione Assicurata', 'woocommerce' ); ?></th>
            <td>€3</td>
        </tr>
    <?php endif;
    }

Modifica la variabile $product_id inserendo al posto di xxx, il valore ID del prodotto che hai annotato in precedenza.

Tutto fatto, fai una prova e verifica il corretto funzionamento.

Alla prossima.