Oggi diamo uno sguardo alla pagina di pagamento di WooCommerce e nello specifico a come disabilitare un gateway di pagamento (ad esempio PayPal) quando viene selezionato un metodo di spedizione specifico (ad esempio “local_pickup”).
In particolare, imparerai come “ottenere” il metodo di spedizione selezionato in movimento (grazie a “sessioni”) e anche come “disimpostare” un gateway di pagamento.
Divertiti!
WooCommerce – disabilitare il gateway di pagamento
Snippet PHP: disabilita il gateway di pagamento per un metodo di spedizione specifico – WooCommerce
In questo esempio, disabiliterò il gateway di pagamento “COD” per tutte le tariffe di spedizione “ritiro in negozio” in qualsiasi zona di spedizione. Puoi anche scegliere come target una tariffa di spedizione specifica (in una singola zona).
add_filter( 'woocommerce_available_payment_gateways', 'bbloomer_gateway_disable_for_shipping_rate' );
function bbloomer_gateway_disable_for_shipping_rate( $available_gateways ) {
if ( ! is_admin() ) {
$chosen_methods = WC()->session->get( 'chosen_shipping_methods' );
$chosen_shipping = $chosen_methods[0];
if ( isset( $available_gateways['cod'] ) && 0 === strpos( $chosen_shipping, 'local_pickup' ) ) {
unset( $available_gateways['cod'] );
}
}
return $available_gateways;
}