Muestra pasarelas de pago según productos del carrito en WooCommerce

Con este snippet conseguirás limitar las formas de pago según el producto que haya añadido al carro el cliente.

Es muy interesante si tienes productos con poco margen de beneficio y por ejemplo no quieres que pueda pagar con Paypal (Comisiones elevadas). Puedes obligar a que la compra sea con otra forma de pago con menor comisión.

Para configurar a qué productos quieres que se aplique y qué pasarelas mostrar en esos casos, solo tienes que:

  1.  En la línea de código 6 reemplazar los números que hay por los IDs de los productos que quieras.
  2.  En la línea de código 9 reemplazar los IDs de las pasarelas que he usado de ejemplo, por los que quieras mostrar.

 

Snippet para mostrar unas pasarelas de pago determinadas según los productos del carrito en WooCommerce

// Muestra pasarelas de pago específicas según los productos que haya en el carrito
add_filter( 'woocommerce_available_payment_gateways', 'enable_gateways_for_specific_products', 1, 1 );
function enable_gateways_for_specific_products( $methods ){

  	// Listado de productos 
	$list_of_products = array( '99', '96' );

	// Listado de pasarelas a mostrar
	$gateways_list = array( 'bacs', 'cod' );

	foreach ( WC()->cart->cart_contents as $key => $product ) {

		if ( in_array( $product[ 'product_id' ], $list_of_products ) && !empty( $gateways_list ) ) {

			foreach ( $gateways_list as $gateway ) {
				
				if ( isset( $methods[ $gateway ] ) ) {
					$new_methods[ $gateway ] = $methods[ $gateway ];
				}
			}

			$methods = array();
			$methods = $new_methods;

			break;
		}
	}

	return $methods;
}
Ver más tutoriales de: WooCommerce

Tutoriales relaccionados

¿Necesitas un desarrollo a medida?

Login para aceder

LOGIN
REGISTRO