A volte è necessario intervenire più drasticamente rispetto ai comuni plugin per adattare il nostro ecommerce wordpress alle nostre necessita.
Mi è capitato di recente di dover gestire i metodi di pagamento con particolari condizioni, disattivando alcune modalità secondo alcune specifiche.
Ed ecco che ci viene in aiuto il nostro ormai conosciuto functions.php dove andremo ad inserire la nostra condizione per disattivare le modalità di pagamento per esempio: in base alla categoria dei prodotti presenti nel carrello o in base al tipo di spedizione scelta.
add_filter( 'woocommerce_available_payment_gateways', 'payment_gateway_disable_role' ); function payment_gateway_disable_role( $available_gateways ) { global $woocommerce; //verifica se spedizione nazionale if ( <condizione>) { unset( <modalita di pagamento>); //disattiva paypal } return $available_gateways; }
Nell’esempio vi mostro come disattivare paypal se la spedizione è nazionale:
add_filter( 'woocommerce_available_payment_gateways', 'payment_gateway_disable_role' ); function payment_gateway_disable_role( $available_gateways ) { global $woocommerce; //trova la modalità di pagamento selezionata $chosen_methods = WC()->session->get( 'chosen_shipping_methods' ); $chosen_shipping = $chosen_methods[0]; //verifica se spedizione nazionale if ( $chosen_shipping=='local_delivery' ) { unset( $available_gateways['paypal'] ); //disattiva paypal } return $available_gateways; }
Qui di seguito vi mostro alcune delle modalità di pagamento che si possono disattivare
unset( $available_gateways['paypal'] ); // paypal unset( $available_gateways['bacs'] ); //bonifico bancario unset( $available_gateways['cod'] ); //in contanti – contrassegno unset( $available_gateways['cheque'] ); //assegno
Sperando che i nostri articoli vi siano stati di aiuto vi invito a lasciare un commento in caso di chiarimenti o per approfondire eventualmente il tema trattato.
25 commenti