Se si ha necessità di nascondere dei pagamenti non desiderati, per esempio quando si seleziona il ritiro in sede, possiamo applicare questo piccolo snippet che, in fase di checkout, nella selezione del ritiro in sede nasconde i pagamenti che io non vorrei.
se hai altri gateway di pagamento personalizzati o plugin (per esempio Paypal Checkout), ispeziona da browser il valore che ti restiusce e, nel caso tu voglia nasconderlo, inseriscilo nello snippet.
Nel caso del plugin di Paypal Checkout il valore è ppec_paypal
/** * @snippet Nascondi pagamenti non desiderati quando si seleziona ritiro in sede*/ add_filter( 'woocommerce_available_payment_gateways', 'nascondi_gateways_pagamenti_ritiro_in_sede' ); function nascondi_gateways_pagamenti_ritiro_in_sede( $available_gateways ) { global $woocommerce; if ( !is_admin() ) { $chosen_methods = WC()->session->get( 'chosen_shipping_methods' ); $chosen_shipping = $chosen_methods[0]; if ( isset( $available_gateways ) && 0 === strpos( $chosen_shipping, 'local_pickup' ) ) { unset( $available_gateways['cod'] );//nascondi pagamento alla consegna unset( $available_gateways['bacs'] );//nascondi bonifico bancario unset( $available_gateways['cheque'] );//nascondi assegni //unset( $available_gateways['paypal'] );//nascondi paypal //unset( $available_gateways['ppec_paypal'] );//nascondi paypal checkout plugin } } return $available_gateways; }
Se invece vuoi nascondere altri pagamenti se si va a selezionare altri metodi di spedizione, ti basta sempre ispezionare ed inserire il valore.
Nell’esempio mostrato qui sotto, ho un metodo di spedizione creato con il plugin WBS WEIGHT BASED SHIPPING, dove mi restituisce il valore wbs:13;dunque alla
selezione di questo metodo di spedizione, imposto di nascondere Paypal e Paypal Checkout
if ( isset( $available_gateways ) && 0 === strpos( $chosen_shipping, 'wbs:13' ) ) { unset( $available_gateways['paypal'] );//nascondi paypal unset( $available_gateways['ppec_paypal'] );//nascondi paypal checkout plugin }
Lascia un commento