Cómo activar meses sin intereses (MSI) en LearnDash con Stripe
Si vendes cursos en línea en México, ya lo sabes: los meses sin intereses no son un lujo, son un requisito. Para muchos alumnos, la diferencia entre inscribirse hoy o “dejarlo para después” es poder diferir el pago a 3, 6 o 12 meses. El problema es que, si tu plataforma corre sobre WordPress con LearnDash, te habrás topado con un muro: los MSI funcionan perfecto en Stripe con un link de pago directo, pero desaparecen misteriosamente cuando el pago pasa por la integración nativa de LearnDash.
En Magma Strategy trabajamos con empresas y academias digitales mexicanas implementando y optimizando sus plataformas de e-learning y de pagos en línea. Este problema nos lo hemos encontrado en proyectos reales, y como no existe documentación pública que lo resuelva —ni en LearnDash, ni en los foros, ni en Stripe—, decidimos publicarlo. Aquí va la solución completa: el porqué del problema y el código exacto para arreglarlo, listo para copiar y pegar.
El problema
El escenario típico es este:
- Tienes una cuenta de Stripe México con los meses sin intereses activados en el Dashboard.
- Si creas un Payment Link directamente en Stripe, tus clientes ven la opción de MSI sin problema.
- Pero cuando el alumno compra un curso desde tu sitio con la integración Stripe Connect de LearnDash, la opción de meses sin intereses simplemente no aparece en el checkout.
No es tu configuración. No es la tarjeta del cliente. Es el plugin.
Por qué sucede
La clave está en cómo se crea la sesión de pago. El switch de MSI que activas en el Dashboard de Stripe aplica a las integraciones “no-code” (como los Payment Links). Pero cuando un plugin crea una Checkout Session a través de la API —que es exactamente lo que hace LearnDash—, los meses sin intereses solo aparecen si la sesión se crea explícitamente con este parámetro:
payment_method_options[card][installments][enabled] = true
LearnDash no envía ese parámetro. Su integración con Stripe Connect crea la sesión únicamente con card como método de pago, sin ninguna opción adicional. Resultado: Stripe nunca ofrece los planes de MSI, aunque tu cuenta y la tarjeta del cliente sean perfectamente elegibles.
Vale la pena decirlo: esto no es exclusivo de LearnDash. Ni siquiera la extensión oficial de Stripe para WooCommerce soporta MSI. Es una omisión generalizada en el ecosistema de WordPress que deja fuera una de las funciones de pago más importantes del mercado mexicano.
La solución: un snippet de 8 líneas
LearnDash expone un filtro llamado learndash_stripe_session_args que permite modificar los argumentos de la sesión de Checkout justo antes de enviarlos a Stripe. Confirmamos directamente con el equipo de desarrollo de LearnDash que el array filtrado se pasa a la API de Stripe sin ninguna capa de validación intermedia, por lo que este es un uso oficialmente soportado del hook.
El código:
/**
* Habilitar Meses Sin Intereses (MSI) en el checkout de Stripe de LearnDash.
* Solo aplica a pagos únicos (mode=payment); Stripe no soporta MSI en suscripciones.
*/
add_filter( 'learndash_stripe_session_args', function( $session_args ) {
if ( isset( $session_args['mode'] ) && 'payment' === $session_args['mode'] ) {
$session_args['payment_method_options']['card']['installments']['enabled'] = true;
}
return $session_args;
}, 99 );
Cómo instalarlo (paso a paso)
La forma más segura es con el plugin gratuito Code Snippets, porque el código sobrevive a las actualizaciones del tema y, si algo falla, el plugin lo desactiva automáticamente en lugar de tirar tu sitio:
- En tu WordPress, ve a Plugins → Añadir nuevo, busca “Code Snippets”, instálalo y actívalo.
- Ve a Snippets → Add New.
- Ponle un título descriptivo, por ejemplo: MSI en Stripe Checkout de LearnDash.
- Pega el código de arriba (sin la etiqueta
<?php). - Deja la opción de ejecución en “Run snippet everywhere” — el checkout ocurre en el frontend.
- Guarda y activa.
Si prefieres no instalar otro plugin, también puedes pegarlo al final del functions.php de tu child theme (nunca del tema padre, porque se pierde con cada actualización).
Cómo probarlo
Un detalle importante que confunde a mucha gente: en el checkout de Stripe, la opción de pagar a meses solo aparece después de teclear un número de tarjeta elegible. Para probar correctamente:
- Abre una ventana de incógnito y ve a la página de compra de tu curso.
- Llega al checkout de Stripe y escribe el número de una tarjeta de crédito mexicana elegible (las de débito nunca muestran MSI).
- Verás aparecer la opción “Pagar a meses sin intereses” con los planes disponibles.
Recuerda además los requisitos de Stripe para que un pago califique: cuenta de Stripe México, moneda en pesos (MXN), tarjeta de crédito de consumo emitida en México por un banco participante, y un monto mínimo que depende del plazo (los planes se muestran a partir de $300 MXN).
Limitaciones a tener en cuenta
- Solo pagos únicos. Stripe no soporta MSI en modo suscripción, así que si tu curso se vende como pago recurrente, este snippet no aplica (por diseño de Stripe, no del código).
- La comisión del MSI la absorbe el comercio. Como en cualquier venta con meses sin intereses, Stripe te deposita el monto completo menos la comisión del plan; considera eso en tu estrategia de precios.
- Los plazos ofrecidos se controlan desde Stripe. Si quieres limitar los planes (por ejemplo, solo 3 y 6 MSI), configúralo en los ajustes de installments de tu Dashboard de Stripe; el snippet solo activa la función.
¿Necesitas ayuda con tu plataforma de cursos?
En Magma Strategy ayudamos a academias y empresas en México a construir y optimizar sus plataformas de e-learning: desde la arquitectura en WordPress/LearnDash y las integraciones de pago con Stripe, hasta la automatización de marketing y CRM. Si tu plataforma tiene un problema que “nadie ha podido resolver”, probablemente ya lo hemos visto. Contáctanos y platicamos.