Here’s how to disable the payment gateway base on product id(s) or product category . For example if you have 2 products , 1 products will use paypal payment gateway and the other will pay via check.

[membership level=”1″]

function payment_gateway_disable_product_id( $available_gateways ) {
global $woocommerce;
$preneed = false;
if ( sizeof( $woocommerce->cart->get_cart() ) > 0 ) {
			foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $values ) {
				$_product = $values['data'];
				if( $product->product_type == 'grouped'){
				$checkpost_id=$_product->post->post_parent;
				}else{
				$checkpost_id=$_product->id;
				}

					if ( $_product->post->post_parent== $post_id ){
						$found = true;
					}

					if ( $_product->id== 1387  or  $_product->id== 1389 or  $_product->id== 1391){
						$preneed = true;
					}

			}
			// if product not found, add it

		} else {
			// if no products in cart, add it
			//$woocommerce->cart->add_to_cart( $product_id );
		}

if ( $preneed==true ) {
    unset(  $available_gateways['paypal_pro'] );
}else {
	  unset(  $available_gateways['cheque'] );
	}

return $available_gateways;

}

add_filter( 'woocommerce_available_payment_gateways', 'payment_gateway_disable_product_id' );

[/membership]