
🚫 Limpiando el checkout de WooCommerce: eliminando métodos de pago innecesarios por país, importe y rol
Un cliente llena su carrito, llega al pago y ve cinco métodos de pago, de los cuales solo dos funcionan realmente. Usted probó el tercero hace un mes y olvidó desactivarlo, el cuarto no acepta pagos desde su país y el quinto es peso muerto que quedó tras desactivar un plugin antiguo. ¿Le suena familiar?
Cada pasarela de más en el pago es fricción. El cliente pierde segundos eligiendo y, si selecciona un método que no funciona, abandona el carrito. Según el Baymard Institute, el 22% de los usuarios abandona el pago específicamente por un proceso de pago complicado o confuso.
A continuación, tres formas de depurar los métodos de pago en WooCommerce: desde el panel integrado para una limpieza rápida hasta código línea por línea para cualquier condición. Cada una ha sido probada en una tienda en producción, con ejemplos concretos y escollos a evitar.
Qué saber antes de desactivar
💡 Resumen rápido:
- Método 1: WooCommerce → Ajustes → Pagos, dos clics, desactiva una pasarela para todos los clientes a la vez
- Método 2: filtro
woocommerce_available_payment_gatewaysenfunctions.php, condiciones por país, total del carrito, rol de usuario - Método 3: plugin gratuito Conditional Payments for WooCommerce, constructor visual, cero líneas de código
Antes de cualquier cambio, haga una copia de seguridad completa. El plugin gratuito UpdraftPlus se encarga de esto: un par de clics y una copia de su sitio está en la nube. Después de desactivar pasarelas, realice siempre un pedido de prueba desde el carrito hasta la página de agradecimiento para asegurarse de que los métodos restantes aceptan pagos sin errores.
Y lo más importante: nunca desactive TODAS las pasarelas a la vez. Deje al menos un método de pago operativo; de lo contrario, los clientes simplemente no podrán completar su pedido y usted se enterará por el silencio ensordecedor en su correo electrónico.
Método 1: panel de WooCommerce, dos clics, riesgo cero
La vía más simple y segura. Funciona cuando necesita eliminar una pasarela específica para TODOS los clientes sin condiciones.
Abra WooCommerce → Ajustes en la barra lateral del administrador y vaya a la pestaña Pagos. Verá una tabla con todos los métodos de pago registrados y una columna Activado. Las pasarelas activas se resaltan en morado, las desactivadas en gris.

Para desactivar un método, haga clic en el interruptor de la columna Activado, se volverá gris. Eso es todo. La pasarela desaparece instantáneamente del pago. Sin código, sin plugins.

Una ruta alternativa para el mismo resultado: haga clic en el nombre del método en la lista, desmarque Activar esta pasarela de pago y guarde.

Lo que este método NO puede hacer
Hay exactamente una limitación, pero es significativa: desactiva la pasarela de forma global. Si su tienda opera en varios países o necesita ocultar un método solo bajo ciertas condiciones (total del pedido por debajo de un umbral, un producto de la categoría "digital", un cliente de la UE), el panel no le servirá. Para lógica condicional, pase a los métodos 2 y 3.
Método 2: código, filtro woocommerce_available_payment_gateways
WooCommerce proporciona el hook woocommerce_available_payment_gateways. Se ejecuta justo antes de que se muestre la lista de métodos en el pago y le permite eliminar pasarelas basándose en una docena de condiciones diferentes: país, total del carrito, rol de usuario, categoría de producto en el pedido.
El código se añade al archivo functions.php del tema hijo o mediante el plugin Code Snippets. Si aún no tiene un tema hijo, cree uno antes de hacer cambios; de lo contrario, todo se romperá en la próxima actualización del tema padre.
2.1. Ocultar todos los métodos de pago a la vez
A veces necesita eliminar por completo el formulario de pago: por ejemplo, el sitio está en modo mantenimiento mientras prueba el carrito. Una línea en functions.php:

1 add_filter( 'woocommerce_cart_needs_payment', '__return_false' );
El filtro le dice a WooCommerce: «no se necesita pago». Todo el formulario de pago desaparece del checkout. Haga clic en Actualizar archivo y no olvide eliminar la línea después de las pruebas; de lo contrario, ningún pedido real se procesará.
2.2. Desactivar una pasarela para un país específico
Suponga que acepta pedidos de EE. UU. y Europa. Los clientes estadounidenses pagan con PayPal, mientras que los europeos no lo necesitan, ya que tienen pasarelas locales. El siguiente código elimina PayPal para una dirección de facturación de EE. UU.:
1 add_filter( 'woocommerce_available_payment_gateways', 'quadlayers_payment_gateway_disable_country' ); 2 function quadlayers_payment_gateway_disable_country( $available_gateways ) { 3 if ( is_admin() ) return $available_gateways; 4 if ( isset( $available_gateways['paypal'] ) && WC()->customer->get_billing_country() === 'US' ) { 5 unset( $available_gateways['paypal'] ); 6 } 7 return $available_gateways; 8 }
El punto clave es el ID de la pasarela. Cada pasarela tiene el suyo: paypal (PayPal), stripe (Stripe), bacs (transferencia bancaria directa) y cod (contra reembolso). Si no conoce el ID, vaya a WooCommerce → Ajustes → Pagos, haga clic derecho sobre el nombre del método y seleccione «Inspeccionar»; luego busque el atributo data-gateway_id en el código:

Después de añadir el código, pruebe el checkout: con una dirección de facturación de EE. UU., PayPal desaparece; para otros países, se mantiene.

2.3. Desactivar una pasarela según el total del carrito
Algunos procesadores de pago cobran una tarifa plana que reduce su margen en pedidos pequeños. Por ejemplo, para totales inferiores a $200 quiere mantener solo la transferencia bancaria directa y habilitar PayPal para compras mayores:
1 add_filter( 'woocommerce_available_payment_gateways', 'quadlayers_disable_paypal_below_threshold' ); 2 function quadlayers_disable_paypal_below_threshold( $available_gateways ) { 3 $threshold = 200; 4 if ( WC()->cart->total < $threshold ) { 5 unset( $available_gateways['paypal'] ); 6 } 7 return $available_gateways; 8 }
La lógica es simple: si el total del carrito está por debajo de $threshold, PayPal se elimina de la lista. Sustituya el valor del umbral por el suyo propio.

Método 3: Plugin Conditional Payments, constructor visual
Si prefiere no modificar functions.php, el plugin Conditional Payments for WooCommerce resuelve el mismo problema. A julio de 2026: versión 1.16.5, instalaciones activas, compatible con las últimas versiones de WordPress y WooCommerce. Última actualización el 11 de julio de 2025.
La instalación es la habitual: Plugins → Añadir nuevo, escriba "Conditional Payments for WooCommerce" en el buscador, haga clic en Instalar ahora y luego en Activar.

Configuración de las condiciones
Tras la activación, aparece la opción Conditional Payment Methods en el menú de WooCommerce. Acceda allí, asegúrese de que la casilla "Enable conditions" está activa y haga clic en Add condition.

En la página que se abre, configure cuatro parámetros:
- Title, el nombre de la condición, por ejemplo "No PayPal for small orders".
- Action, seleccione Disable the payment method(s).
- Payment methods, marque las pasarelas que desea desactivar (puede seleccionar varias).
- Conditions, la lógica de activación. Por ejemplo: "Total del carrito < importe umbral" → se desactiva PayPal.

Haga clic en Publish y la condición surte efecto de inmediato. Pruebe el checkout con un importe por debajo y por encima del umbral.
La versión gratuita funciona con estas condiciones: total del carrito, subtotal y subtotal sin impuestos. Dispone de operadores AND/OR, de modo que puede construir una regla como "desactivar PayPal si el importe es mayor que X AND menor que Y".
La versión premium añade filtros por país, ciudad, rol de usuario, categoría de producto, divisa y una docena de parámetros más. En la práctica, no obstante, la funcionalidad gratuita es suficiente para la mayoría de las tiendas.

⁉️🤔 Preguntas frecuentes
¿Cómo desactivo un método de pago para todos los clientes a la vez?
Vaya a WooCommerce → Ajustes → Pagos y haga clic en el interruptor de la columna Activado. El interruptor se vuelve gris y el método desaparece de la caja para todos sin excepción. Diez segundos, cero riesgos.
¿Puedo ocultar una pasarela solo para una categoría de producto específica?
La versión gratuita de Conditional Payments no puede hacerlo. La versión premium filtra por categorías, productos y atributos. Una alternativa es código en el hook
woocommerce_available_payment_gatewayscon una verificación deWC()->cart->get_cart()para los artículos de la categoría deseada.
¿Desactivar una pasarela afectará a los pedidos ya realizados?
No. Los pedidos existentes no se ven afectados. El cambio aplica solo a futuras cajas; todas las transacciones anteriores permanecen en el historial sin cambios.
¿Qué hago si la pasarela desactivada sigue apareciendo en la caja?
Limpie la caché de su sitio y del navegador. Si tiene un plugin de caché (WP Rocket, W3 Total Cache), vacíe su caché. Luego desactive temporalmente otros plugins uno por uno y pruebe la caja; puede haber un conflicto.
¿Puedo reactivar un método desactivado?
Sí, en cualquier momento. Método 1: haga clic de nuevo en el interruptor en Pagos. Método 2: elimine o comente el código que añadió. Método 3: desactive la condición en Conditional Payment Methods.
¿Es obligatorio crear un tema hijo antes de editar functions.php?
Es muy recomendable. Sin un tema hijo, sus cambios se perderán cuando el tema padre se actualice. El plugin Code Snippets es una alternativa segura: almacena el código en la base de datos y no depende del tema.
Resumen: qué elegir para su tarea
Tres enfoques cubren tres escenarios diferentes. Elija el que se ajuste a su situación:
- Simplemente eliminar una pasarela innecesaria para todos → Método 1, panel de WooCommerce. Diez segundos, cero riesgos.
- Necesita lógica: por país, importe, rol → Método 2 (código) o Método 3 (plugin). El código es gratuito y no añade dependencias. El plugin le da una interfaz visual y protege contra errores tipográficos en
functions.php. - Está probando un sitio y necesita ocultar temporalmente el pago → una línea
add_filter( 'woocommerce_cart_needs_payment', '__return_false' )de la sección 2.1. No olvide eliminarla después de las pruebas.
En la práctica recomendamos comenzar con el panel de WooCommerce para una limpieza básica y, para lógica condicional, instalar Conditional Payments. La versión gratuita cubre la mayoría de los escenarios y el constructor visual elimina el error humano en el código. Cuando tenga más de cinco condiciones y la tienda esté creciendo activamente, cambie a código: escríbalo una vez en functions.php y olvídese de ello.


