En muchas tiendas online, especialmente aquellas con márgenes ajustados, mostrar PayPal como método de pago en pedidos pequeños puede suponer una pérdida por las comisiones aplicadas. Para evitarlo, WooCommerce permite condicionar qué pasarelas aparecen en el checkout en función del importe del pedido.
Con un simple fragmento de código puedes ocultar PayPal cuando el total no alcanza los 150 €, mejorando la rentabilidad sin complicaciones técnicas. En este artículo —dentro de nuestra categoría sobre WooCommerce — te explicamos cómo hacerlo paso a paso, con variaciones útiles, mensajes informativos y consejos prácticos para evitar errores.
En Bubuku trabajamos a diario desarrollando tiendas online personalizadas. Si necesitas ayuda para aplicar este tipo de ajustes o buscas un desarrollo a medida, puedes consultar nuestro servicio de desarrollo web WordPress para empresas
¿Por qué quitar PayPal en pedidos bajos en WooCommerce?
PayPal es una de las pasarelas de pago más utilizadas en tiendas online por su comodidad y seguridad. Sin embargo, sus comisiones fijas por transacción pueden suponer un coste excesivo en pedidos pequeños, afectando directamente a la rentabilidad de la tienda.
Por eso, muchos negocios prefieren ocultar PayPal como opción de pago cuando el importe del carrito es inferior a cierto umbral, como 150 €, y así fomentar otros métodos más económicos (como transferencia bancaria o tarjeta). Esta estrategia es especialmente útil en sectores con productos de bajo precio o ventas recurrentes.
Además, WooCommerce permite personalizar los métodos de pago según reglas condicionales, aunque no lo haga de forma visual desde su panel de configuración. Por suerte, con un pequeño snippet de código puedes controlar este comportamiento fácilmente, sin plugins adicionales.
Snippet para ocultar PayPal si el pedido es inferior a 150 €
Con este fragmento de código puedes condicionar la pasarela de PayPal para que solo aparezca en el checkout cuando el subtotal del carrito (sin impuestos ni envío) alcanza los 150 € o más. Es una solución rápida si trabajas con PayPal estándar (paypal) y quieres controlar su visibilidad según el importe del pedido.
A continuación, tienes el código que oculta PayPal si el subtotal no alcanza los 150 €. Es sencillo, claro y funcional para la mayoría de tiendas WooCommerce.
// Quitar método de pago PayPal si el pedido es inferior a 150 €
add_filter( 'woocommerce_available_payment_gateways', 'prefix_filter_gateways', 10, 1 );
function prefix_filter_gateways( $gateways ){
if ( is_admin() || ! is_checkout() || ! WC()->cart ) return $gateways;
$total = WC()->cart->subtotal;
$umbral = 150;
if( $total < $umbral ){
unset( $gateways['paypal'] );
}
return $gateways;
}Este código puede colocarse en el archivo functions.php de tu tema hijo o gestionarse cómodamente mediante el plugin Code Snippets, sin necesidad de tocar archivos del tema.
Si prefieres trabajar sobre el importe final (con cupones, impuestos y envío), puedes usar WC()->cart->get_totals()[»total’] en lugar de subtotal.
Variaciones del código: otras pasarelas, subtotal y lógica invertida
El snippet base puede adaptarse fácilmente a otras situaciones. Aquí tienes algunas variaciones útiles según tus necesidades:
Ocultar varias pasarelas a la vez
Si además de PayPal quieres ocultar otras pasarelas de pago como contrarreembolso (cod) o transferencia (bacs), solo tienes que añadir sus IDs al array:
add_filter( 'woocommerce_available_payment_gateways', 'prefix_ocultar_varios_metodos', 10, 1 );
function prefix_ocultar_varios_metodos( $gateways ){
if ( is_admin() || ! is_checkout() || ! WC()->cart ) return $gateways;
$total = WC()->cart->subtotal;
$umbral = 150;
$ids_a_ocultar = array( 'paypal', 'cod', 'bacs' );
if( $total < $umbral ){
foreach( $ids_a_ocultar as $id ){
unset( $gateways[ $id ] );
}
}
return $gateways;
}Mostrar solo PayPal si el pedido es igual o superior a 150 €
En este caso, en lugar de ocultar PayPal, eliminamos todos los métodos de pago excepto PayPal si el umbral se cumple:
add_filter( 'woocommerce_available_payment_gateways', 'prefix_mantener_solo_paypal', 10, 1 );
function prefix_mantener_solo_paypal( $gateways ){
if ( is_admin() || ! is_checkout() || ! WC()->cart ) return $gateways;
$total = WC()->cart->subtotal;
$umbral = 150;
if( $total < $umbral ){
foreach( $gateways as $id => $gateway ){
if( $id !== 'paypal' ){
unset( $gateways[ $id ] );
}
}
}
return $gateways;
}Esta lógica inversa puede ser útil si solo quieres ofrecer PayPal en pedidos grandes, y priorizar métodos más económicos en importes bajos.
Mostrar un aviso al cliente si PayPal no está disponible
Para evitar confusiones en el checkout, puedes mostrar un mensaje informativo cuando PayPal esté oculto por no alcanzar el mínimo de 150 €. Este aviso aparece automáticamente sobre el formulario de pago.
// Mostrar aviso cuando PayPal esté desactivado por importe mínimo
add_action( 'woocommerce_before_checkout_form', 'prefix_aviso_paypal', 5 );
function prefix_aviso_paypal() {
if ( is_admin() || ! WC()->cart ) return;
$total = WC()->cart->subtotal;
$umbral = 150;
if ( $total < $umbral ) {
$mensaje = sprintf( 'PayPal solo está disponible para pedidos a partir de %s.', wc_price( $umbral ) );
if ( ! wc_has_notice( $mensaje, 'notice' ) ) {
wc_add_notice( $mensaje, 'notice' );
}
}
}También puedes añadir este aviso en el carrito con add_action( ‘woocommerce_before_cart’, ‘prefix_aviso_paypal’, 5 ); si lo consideras útil para avisar antes de llegar al checkout.
Errores comunes y pruebas necesarias
Antes de aplicar estos cambios en una tienda activa, conviene tener en cuenta algunos errores frecuentes que pueden dar lugar a confusiones o fallos inesperados. Aquí te dejo un repaso rápido para que lo tengas bajo control:
- IDs incorrectos: Dependiendo del plugin que uses, el ID del método PayPal puede variar. Los más habituales son:
«PayPal»: para PayPal Standard (el clásico) y «ppcp-gateway»: para PayPal Payments, el nuevo sistema oficial.
Puedes comprobar qué ID tiene tu pasarela activa desde WooCommerce > Ajustes > Pagos, o activando el modo de depuración. - Caché en el checkout: Asegúrate de desactivar la caché en páginas como el carrito y el checkout, tanto desde tu plugin de caché como en el servidor. De lo contrario, los cambios en los métodos de pago pueden no aplicarse correctamente al recargar.
- Pruebas con cupones, impuestos y envío: Si usas get_totals()[‘total’], el total real puede cambiar en tiempo real al aplicar cupones, seleccionar envío o modificar cantidades. Prueba varios casos antes de darlo por válido.
- PayPal en modo sandbox: Para evitar cobros reales durante las pruebas, activa el modo sandbox de PayPal en los ajustes de la pasarela. Así puedes comprobar que todo funciona sin afectar pedidos reales.
Consejo práctico: para asegurarte de que el filtro está funcionando, añade un error_log() dentro de la función para ver si se ejecuta correctamente en el momento esperado.
Cómo evitar errores al ocultar métodos de pago en WooCommerce
Ocultar pasarelas como PayPal según el importe es una práctica habitual, pero hay ciertos detalles técnicos que conviene revisar para evitar errores. Aquí van algunas buenas prácticas finales:
- Usa Code Snippets si no tienes control sobre el tema hijo.
- Comenta tu código para facilitar futuras revisiones.
- Haz pruebas con diferentes escenarios de carrito: con envío, cupones o descuentos.
- Revisa posibles conflictos con plugins que gestionen métodos de pago condicionales.
- Si usas el nuevo checkout por bloques de WooCommerce, comprueba su compatibilidad: algunos hooks como
woocommerce_available_payment_gatewaysno se aplican igual.
En tiendas con márgenes ajustados, ocultar PayPal en pedidos pequeños puede marcar la diferencia en costes. Asegúrate de que el filtro no impida otras formas de pago importantes para tus clientes.
Preguntas frecuentes sobre ocultar PayPal en WooCommerce por importe mínimo
Solo a los que indiques con unset(). El resto siguen activos como siempre.
Sí, puedes incluir ambos identificadores: «paypal» y «ppcp-gateway».
PayPal se mostrará automáticamente al recalcular el checkout, no necesita recargar la página.
Depende. El nuevo sistema de bloques gestiona pasarelas de forma distinta y algunos filtros no se aplican. Recomendamos probar en entorno de staging.
Sí. Puedes usar woocommerce_before_cart con el mismo código del aviso del checkout para avisar antes de llegar al pago.
Cómo controlar PayPal y otras pasarelas en WooCommerce según el importe del pedido
Personalizar los métodos de pago como PayPal en función del importe es una forma eficaz de ajustar la rentabilidad de cada pedido y mejorar la experiencia del cliente. Este tipo de ajustes, aunque parezcan pequeños, pueden tener un gran impacto en la operativa diaria de una tienda online.
En Bubuku aplicamos estrategias como esta en los desarrollos WooCommerce que realizamos para nuestros clientes, adaptando el proceso de pago a las necesidades reales de cada tienda.
¿Quieres aplicar esta solución o personalizar aún más tu proceso de pago? En Bubuku te ayudamos a crear tiendas WooCommerce a medida, con todo tipo de ajustes técnicos. Descubre cómo trabajamos en nuestro servicio de desarrollo de plugins para WooCommerce



