add_filter( 'woocommerce_available_payment_gateways', 'wbmz_cheque_alleen_bij_afhalen', 10, 1 );
function wbmz_cheque_alleen_bij_afhalen( $available_gateways ) {
    if( is_admin() ) return $available_gateways; // Alleen voor de frontend

    $local_found = false;

    // Loop door de verzendmethoden
    foreach ( WC()->session->get( 'chosen_shipping_methods' ) as $chosen_shipping_rate_id ) {
        if( strpos( $chosen_shipping_rate_id, 'local_pickup' ) !== false || strpos( $chosen_shipping_rate_id, 'local_delivery' ) !== false ) {
            $local_found = true; // Afhalen gevonden
            break; // Stop de loop als het is gevonden
        }
    }

    // Als afhalen is gevonden dan hoeft er niets te gebeuren
    if( $local_found ) {

    } else { // als afhalen NIET is gevonden dan moet pinnen/cheque worden verwijderd
			foreach ( $available_gateways as $payment_method_id => $payment_label ) {
					// Remove all payement methods except "cheque"
					if ( 'cheque' == $payment_method_id ) {
							unset( $available_gateways[$payment_method_id] );
					}
			}
		}

    return $available_gateways;
}
Geef een reactie 0