Aggiungere una commissione ad un metodo di pagamento

Abbiamo, ad esempio, bisogno di aggiungere un commissione di 2 € per Paypal e una di 3 per il pagamento in contrassegno

function woocommerce_custom_fee( ) {
global $woocommerce;
if ( ( is_admin() && ! defined( 'DOING_AJAX' ) ) || ! is_checkout() )
return;
$chosen_gateway = $woocommerce->session->chosen_payment_method;
$feepaypal = 2;
$feecod = 3;
if ( $chosen_gateway == 'paypal' ) { 
$woocommerce->cart->add_fee( 'Commissione Paypal', $feepaypal, false, '' );
}
if ( $chosen_gateway == 'cod' ) { 
$woocommerce->cart->add_fee( 'Commissione Contrassegno', $feecod, false, '' );
}
}

add_action( 'woocommerce_cart_calculate_fees','woocommerce_custom_fee' );

Un javascript che aggiorna gli importi nel checkout quando si sceglie un metodo di pagamento diverso

function cart_update_script() {
if (is_checkout()) :
?> 
<script> 
jQuery( function( $ ) { 
if ( typeof woocommerce_params === 'undefined' ) { 
return false; 
} 
$checkout_form = $( 'form.checkout' ); 
$checkout_form.on( 'change', 'input[name="payment_method"]', function() { 
$checkout_form.trigger( 'update' ); }); }); 
</script> 
<?php endif; 
} 

add_action( 'wp_footer', 'cart_update_script', 999 );

9 commenti su “Aggiungere una commissione ad un metodo di pagamento

  1. se io volessi aggiungere una commissione al pagamento con carta di credito (mod. xpay carta sì) come faccio a recuperare l’indirizzo o il nome del gateway?

  2. Salve, grazie del suggerimento, però, essendo io non esattamente esperto, chiedo, dove va inserito il codice?
    E poi, è possibile inserire una percentuale anzichè una cifra fissa?
    Grazie

    1. Salve, il codice va inserito nel file functions.php del tema attivo. Se vogliamo aggiungere una percentuale, ad esempio del 5% per paypal, il codice potrebbe cambiare così:
      $feepaypal = ( $woocommerce->cart->cart_contents_total + $woocommerce->cart->shipping_total ) * 0.05;
      if ( $chosen_gateway == 'paypal' ) { $woocommerce->cart->add_fee( 'Commissione Paypal', $feepaypal, false, '' );}

  3. Salve è possibile aggiungere una percentuale ma con un costo minimo? Mi spiego meglio il corriere mi da come supplendo per il contrassegno il 4% ma quest ultimo deve partire almeno da 3 euro? si puo’ fare?

    1. Se ho capito bene farei così:
      $feecod = ( $woocommerce->cart->cart_contents_total + $woocommerce->cart->shipping_total ) * 0.04;
      if ($feecod < 3) { $feecod=3;} if ( $chosen_gateway == 'cod' ) { $woocommerce->cart->add_fee( 'Commissione Contrassegno', $feecod, false, '' );}

Commenta

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.