Desactivar medios de pago para determinados productos Woocommerce

//Desactivar medios de pago para determinados productos Woocommerce

Si tienes diferentes medios de pago en tu tienda online woocommerce y deseas que algunos de ellos solo esten disponibles para determinados productos, puedes hacerlo utilizando el siguiente filtro, añadiéndolo al archivo functions.php de tu tema wordpress.

De este modo los IDs de los productos aquí mencionados quedaran DESACTIVADOS para el medio de pago que se menciona en el código.


/*
* Desactivar paypal en checkout si determinados productos
* están presentes en la cesta de compra
*
* Add this to your theme's functions.php file
*/
add_filter( 'woocommerce_available_payment_gateways', 'filter_gateways', 1);
function filter_gateways( $gateways ){
global $woocommerce;
foreach ($woocommerce->cart->cart_contents as $key => $values ) {
// ID de productos que quieres desactivar para este medio de pago.
$nonPPproducts = array(1111,2222,3333);
if ( in_array( $values['product_id'], $nonPPproducts ) ) {
unset($gateways['paypal']);
// Puedes indicar cualquier medio de pago configurado en ajustes > finalizar compra ID e.g. "cod", "bacs", "stripe"
break;
}
}
return $gateways;
}

De esta manera solo tendrás determinados medios de pago para los productos que desees.