PodcastsCoursesWordPress Semanal

WordPress Semanal

Gonzalo Navarro
WordPress Semanal
Latest episode

529 episodes

  • WordPress Semanal

    528 | Menús condicionales, cantidad mínima por productos en Woo, LearnDash y más (Q&A)

    13/05/2026 | 17 mins.
    Escúchalo en:

    En el episodio 528 de WordPress Semanal respondo a cinco preguntas de oyentes sobre menús condicionales en WordPress, cantidades mínimas de compra por producto en WooCommerce, configuración de LearnDash, ocultar elementos del menú según usuario y cómo controlar la imagen que aparece al compartir tu web en redes sociales..




    Tabla de contenidos





    1) Mostrar un menú diferente según el nivel de membresía, de Miriam2) Establecer una cantidad mínima de compra solo para ciertos productos en WooCommerce, de Antonio3) Problemas con LearnDash: asignación de cursos, emails y Active Campaign, de Andrés4) Ocultar un botón del menú para usuarios logueados, de Beto5) La imagen equivocada al compartir un enlace en redes sociales, de Kiko







    1) Mostrar un menú diferente según el nivel de membresía, de Miriam

    Respondida en minuto: 4:40

    Tengo una web con membresías gestionadas con Restrict Content Pro y necesito que cada nivel de suscripción vea un menú diferente. Usaba If Menu con la versión Pro, pero ahora me da errores. ¿Conoces otro plugin?

    Respuesta resumida:

    If Menu lleva tiempo sin actualizarse y hay reportes de que ya no funciona bien con las últimas versiones de WordPress. Es normal que te dé problemas.

    Para menús condicionales tienes varias opciones, pero ninguna es perfecta para tu caso porque Restrict Content Pro no usa roles de WordPress estándar para distinguir niveles de membresía. Veamos las alternativas:

    Nav Menu Roles (70.000+ instalaciones, 218 reseñas, actualizado en 2026): el más fiable. Permite mostrar u ocultar elementos del menú por rol de WordPress (logueado, no logueado, administrador, suscriptor…). Para que funcione con niveles de membresía de RCP necesitarías que cada nivel asigne un rol diferente de WordPress, o usar el filtro nav_menu_roles_item_visibility que el plugin proporciona para añadir tu propia lógica.

    Conditional Menus (actualizado en 2026): funciona diferente. En lugar de controlar elementos sueltos, intercambia menús enteros según la condición: un menú para logueados, otro para no logueados, otro para una página concreta. Podrías crear un menú por nivel de membresía y asignar cada uno con lógica condicional. Es más simple pero menos granular.

    Por código: si necesitas control total por nivel de membresía de RCP, la solución más limpia es un snippet que use las funciones de RCP (rcp_get_customer() y el nivel activo) para decidir qué menú cargar. Es más trabajo pero no dependes de que un plugin sea compatible con otro.

    Mi recomendación: si puedes asignar un rol de WordPress diferente a cada nivel de membresía en RCP, Nav Menu Roles es la opción más sólida y mantenida. Si no puedes, la solución por código es la más fiable a largo plazo.

    2) Establecer una cantidad mínima de compra solo para ciertos productos en WooCommerce, de Antonio

    Respondida en minuto 7:55

    Necesito que dos productos concretos de mi tienda solo se puedan pedir con un mínimo de dos unidades, pero que el resto de la tienda funcione normal. ¿Se puede hacer con código o necesito un plugin?

    Respuesta resumida:

    Se puede hacer de las dos formas.

    Con plugin: MinMax Quantity for WooCommerce es el que mejor rendimiento ofrece. Te permite definir cantidades mínimas y máximas por producto, por categoría o a nivel global.

    Con código: también se puede con un snippet que valide la cantidad en el carrito y muestre un aviso si el producto no cumple el mínimo. Tenemos uno listo en la Zona Código (#471).

    3) Problemas con LearnDash: asignación de cursos, emails y Active Campaign, de Andrés

    Respondida en minuto 8:51

    He montado una academia con LearnDash para un cliente y tengo varios problemas: cuando el alumno paga no se le asigna el curso automáticamente, los emails de registro no se pueden personalizar, el email de cambio de contraseña sale en inglés y quiero conectar los emails de los alumnos con Active Campaign.

    Respuesta resumida:

    1) El curso no se asigna automáticamente tras el pago. Depende de cómo gestionas la venta. Si usas WooCommerce, el problema suele ser que el pedido se queda en «Procesando» en lugar de completarse. LearnDash asigna el curso cuando el pedido pasa a «Completado». La solución: forzar que los pedidos de productos virtuales se completen automáticamente. Tenemos un snippet para eso en la Zona Código (#299).

    2) Personalizar los emails de registro. Puedes usar un plugin como Better Notifications for WP o similar que permita personalizar las notificaciones por email de WordPress. También se puede por código con los filtros de WordPress.

    3) El email de cambio de contraseña sale en inglés. Esos emails los envía LearnDash, no WordPress. Asegúrate de tener la última versión instalada. Si sigue en inglés, puedes traducir los textos que falten con el plugin Loco Translate. Tenemos un vídeo en los cursos donde explico cómo usarlo.

    4) Conectar los emails de alumnos con Active Campaign. Puedes usar Zapier o cualquier herramienta de automatización que conecte LearnDash con Active Campaign. Cuando un alumno se matricula, Zapier puede añadirlo automáticamente a una lista o etiquetarlo en AC.

    4) Ocultar un botón del menú para usuarios logueados, de Beto

    Respondida en minuto 12:16

    Tengo un botón de «Suscribirme» en la cabecera de mi web (Astra + Astra Pro) y quiero que desaparezca cuando el usuario ya está registrado. Lo he intentado con is_user_logged_in() pero no me funciona.

    Respuesta resumida:

    La forma más sencilla es por CSS. WordPress añade automáticamente la clase logged-in al <body> cuando un usuario está conectado. Puedes usar esa clase para ocultar el botón:

    .logged-in .tu-clase-del-boton {
    display: none;
    }

    Solo tienes que inspeccionar el botón con el navegador, copiar su clase CSS y usarla en el snippet. Lo explico paso a paso en la Zona Código (#340).

    Si prefieres usar un plugin, Nav Menu Roles te permite ocultar elementos del menú para usuarios logueados. Pero tendrías que convertir el botón en un elemento de menú y darle estilos para que se vea como botón. La opción CSS es más rápida y limpia.

    5) La imagen equivocada al compartir un enlace en redes sociales, de Kiko

    Respondida en minuto 14:39

    Cuando comparto un enlace de mi web en redes sociales o en WhatsApp, la miniatura que aparece no es la correcta. ¿Cómo lo controlo?

    Respuesta resumida:

    La imagen que aparece al compartir un enlace viene de las etiquetas Open Graph (og:image) de tu web. Para controlarla:

    1) Asegúrate de que cada contenido tiene su imagen destacada. Es lo primero que WordPress y los plugins de SEO usan para generar la etiqueta og:image.

    2) Usa un plugin de SEO para especificar la imagen por red social. Con Yoast, SEOPress o cualquier otro plugin de SEO puedes elegir exactamente qué imagen aparece al compartir en Facebook, Twitter/X, etc. Lo explico en el curso de Yoast SEO, apartado de Social. Si usas otro plugin de SEO, la opción equivalente está en la sección de redes sociales de cada entrada o página.

    3) Si ya compartiste el enlace antes con otra imagen, la red social tiene cacheada la versión antigua. Tienes que «limpiar» esa caché:

    Facebook: Facebook Debugger

    Twitter/X: usa el validador de Cards de Twitter

    LinkedIn y otras: busca en Google «[nombre de la plataforma] + debugger»

    Introduces la URL, la plataforma limpia la caché y la próxima vez que alguien comparta ese enlace aparecerá la imagen correcta.

    Plugin de la semana

    El plugin de la semana es Desktop Mode. Transforma el panel de administración de WordPress en un escritorio tipo sistema operativo: las pantallas del admin se abren como ventanas que puedes arrastrar, redimensionar y minimizar, con un dock lateral y una barra de tareas. Se activa por usuario (nadie más ve cambios) y al desactivarlo todo vuelve a la normalidad.

    Contenidos recomendados

    Vídeo de la Zona Código: Cerrar sesiones de usuarios desde el admin de WordPress (individual y masivo)

    Ocultar elementos por CSS para usuarios logueados

    Completar pedidos de WooCommerce automáticamente

    Cantidad mínima de compra por producto en WooCommerce

    Curso de Tutor LMS Pro

    Newsletter de WordPress Semanal

    La entrada 528 | Menús condicionales, cantidad mínima por productos en Woo, LearnDash y más (Q&A) es una artículo de Gonzalo Navarro.
  • WordPress Semanal

    527 | ¿Plugin de cursos o de membresía? Cómo elegir sin arrepentirte

    06/05/2026 | 17 mins.
    Escúchalo en:

    En el episodio 527 de WordPress Semanal te ayudo a decidir si tu web de cursos necesita un plugin LMS o si con un plugin de restricción de contenido tienes suficiente. La respuesta no depende de la herramienta. Depende de lo que tu alumno necesita.




    Tabla de contenidos





    1. La pregunta no es qué plugin. Es qué experiencia necesita tu alumno2. Qué hace un LMS3. Qué hace un plugin de restricción de contenido4. Cuándo un LMS tiene sentido5. Cuándo basta con restricción de contenido6. Lo que puedes añadir a la restricción sin montar un LMS7. La trampa del LMS: cuando complica más de lo que aporta8. La trampa de la restricción: cuando se queda corta9. Decide con estas preguntas10. Plugins concretos para cada casoPlugin de la semanaContenidos recomendados







    1. La pregunta no es qué plugin. Es qué experiencia necesita tu alumno

    Antes de buscar plugins, responde a esto: ¿qué tiene que poder hacer la persona que paga?

    ¿Necesita seguir un orden? ¿Tiene que demostrar que ha aprendido algo? ¿O simplemente necesita acceder a un contenido que ahora mismo no puede ver?

    Esa respuesta te dice qué camino tomar. Y los dos caminos son muy diferentes en complejidad, en mantenimiento y en lo que le exigen a tu web.

    2. Qué hace un LMS

    Un plugin LMS (Learning Management System) controla la experiencia de aprendizaje. No solo bloquea contenido: estructura cómo se consume.

    Te da:

    Estructura de curso: módulos, lecciones y temas organizados en un orden que tú defines.

    Progreso automático: el sistema sabe en qué lección está cada alumno y le muestra su avance.

    Cuestionarios y evaluaciones: preguntas que validan que el alumno ha entendido el contenido antes de avanzar.

    Certificados: un documento que se genera al completar el curso (normalmente solo en versiones premium).

    Prerrequisitos: el alumno no puede acceder a la lección 5 sin completar la 4.

    Panel del alumno: una zona donde ve sus cursos, su progreso y sus certificados.

    El LMS impone una estructura. Eso es su ventaja y su limitación. Tú defines el recorrido y el alumno lo sigue.

    3. Qué hace un plugin de restricción de contenido

    Un plugin de restricción bloquea páginas, entradas o secciones según quién sea el usuario. Si tiene la membresía correcta, ve el contenido. Si no, ve un mensaje invitándole a suscribirse.

    Te da:

    Control de acceso: decides qué contenido es público y qué es privado, por nivel de membresía o por rol de usuario.

    Libertad total de diseño: el contenido lo creas tú con el editor de WordPress, con Elementor, con bloques, como quieras. No hay plantillas impuestas.

    Niveles de membresía: puedes tener un plan básico que ve 10 páginas y un plan premium que ve 50.

    Gestión de pagos: la mayoría integran Stripe y PayPal para cobrar las suscripciones.

    No hay estructura de curso, ni progreso, ni cuestionarios. El usuario accede y consume lo que quiera en el orden que quiera.

    4. Cuándo un LMS tiene sentido

    Un LMS merece la pena cuando la experiencia de aprendizaje ES el producto. Es decir, cuando el valor no está solo en el contenido, sino en cómo se recorre.

    Situaciones claras:

    El orden importa. El alumno no debería ver el módulo 3 sin haber pasado por el 1 y el 2. Cada lección construye sobre la anterior.

    Necesitas evaluar. Quieres que el alumno demuestre que ha entendido algo antes de seguir. Un cuestionario al final de cada módulo, una tarea que tú corriges.

    Quieres emitir certificados. El alumno completa el curso y recibe un documento que puede presentar a su empresa o incluir en su currículum.

    Necesitas ver el progreso de cada alumno. Quieres saber quién ha completado qué, dónde se quedan atascados, quién no ha empezado.

    La formación es tu negocio principal. Eres una academia online, una escuela profesional, una empresa que vende formación como producto estrella.

    Si te ves reflejado en tres o más de estos puntos, necesitas un LMS.

    5. Cuándo basta con restricción de contenido

    La restricción de contenido es suficiente cuando el valor está en acceder al contenido, no en seguir un recorrido guiado.

    Situaciones claras:

    El orden no importa. El usuario elige qué consume y cuándo. No hay una secuencia obligatoria.

    Vendes acceso a una biblioteca. Tutoriales, guías, vídeos, plantillas, snippets, recursos. El usuario entra y busca lo que necesita.

    Tu membresía es contenido + comunidad. El usuario paga por acceso a un área privada con contenido actualizado, no por un curso con inicio y fin.

    No necesitas exámenes ni certificados. Nadie tiene que «aprobar» nada.

    Quieres control total del diseño. Un LMS te impone sus plantillas, sus taxonomías, su estructura de URLs. Con restricción, cada página es tuya.

    Si tu contenido se parece más a una biblioteca que a un aula, la restricción es tu camino.

    6. Lo que puedes añadir a la restricción sin montar un LMS

    El argumento más habitual para instalar un LMS es «necesito que el alumno vea su progreso». Pero hay plugins que resuelven eso sin la complejidad de un LMS completo.

    Marcar contenido como completado: WPComplete añade un botón de «Marcar como completado» a cualquier página o entrada. El alumno va marcando lo que termina, tú ves quién ha completado qué desde el panel de WordPress. Funciona con cualquier tema y cualquier plugin de membresía. Versión gratuita disponible, versión Pro con barras de progreso y gráficos.

    Guardar contenido como favorito: Favorites permite al usuario marcar contenidos que le interesan para volver a ellos. Útil cuando tienes una biblioteca grande y el usuario necesita organizar su propio recorrido. Gratuito, funciona con cualquier tipo de contenido (entradas, páginas, CPTs).

    Con estos dos complementos tienes progreso básico y organización personal. Sin tablas extra en la base de datos por cada curso, sin taxonomías propias, sin plantillas que choquen con tu tema.

    7. La trampa del LMS: cuando complica más de lo que aporta

    Un LMS añade peso a tu web. Tablas en la base de datos, menús de administración, taxonomías propias, plantillas que pueden entrar en conflicto con tu tema, endpoints nuevos en tu API REST.

    Si lo que vendes son 5 vídeos detrás de un muro de pago, no necesitas un LMS. Necesitas una página restringida con un botón de «Marcar como completado».

    He visto webs con un LMS instalado para gestionar un solo curso de 8 lecciones. El plugin pesaba más que todo el resto de la web junto. La experiencia del alumno no era mejor que con una simple restricción de contenido. Pero el mantenimiento, las actualizaciones y los posibles conflictos sí eran mayores.

    Instalar un LMS «por si acaso crezco» es añadir complejidad que luego cuesta quitar. Es más fácil empezar con restricción y migrar a LMS si lo necesitas que al revés.

    8. La trampa de la restricción: cuando se queda corta

    Si tus alumnos te escriben preguntando «¿por dónde voy?» o «¿qué lección me toca?», tu sistema se ha quedado corto.

    Si necesitas que el alumno no avance sin completar un paso previo (contenido secuencial con lógica de prerrequisitos), la restricción de contenido sola no resuelve eso. Puedes parchearlo con plugins de drip content, pero estás simulando lo que un LMS hace de serie.

    Si te ves encadenando tres o cuatro plugins para replicar funciones de un LMS (progreso, orden, evaluación, certificados), es el momento de plantearte el LMS. Cuatro plugins parcheando siempre dan más problemas que uno solo que lo integre todo.

    9. Decide con estas preguntas

    ¿El orden importa? → LMS

    ¿Necesitas exámenes o evaluaciones? → LMS

    ¿Necesitas certificados? → LMS

    ¿El alumno elige qué consume y cuándo? → Restricción

    ¿Quieres control total del diseño de cada página? → Restricción

    ¿Vendes acceso a una biblioteca de recursos? → Restricción

    ¿Tienes 3 plugins parcheando funciones que un LMS haría solo? → Plantéate el LMS

    Si la mayoría de tus respuestas caen en el lado del LMS, ve a por él. Si caen en restricción, no compliques tu web innecesariamente.

    10. Plugins concretos para cada caso

    Si necesitas un LMS:

    Tutor LMS (gratuito, cubrimos su configuración en el episodio 519): la mejor experiencia de creación de cursos en versión gratuita. Interfaz propia que no parece WordPress.

    LearnDash (premium, desde $199/año): el más extendido en el mercado anglosajón. Muy completo, muchas integraciones, comunidad grande.

    LifterLMS (gratuito con extensiones premium): buena opción intermedia. Versión gratuita más generosa que LearnDash pero menos pulida que Tutor LMS.

    Si te basta con restricción de contenido:

    Paid Memberships Pro (versión gratuita muy completa): la opción gratuita más capaz. Soporta Stripe y PayPal en la versión free, niveles de membresía ilimitados, restricción por página, entrada, categoría o bloque.

    Restrict Content Pro (desde $99/año): ligero, bien programado, preferido por desarrolladores. Sin versión gratuita funcional para producción.

    MemberPress (desde $179/año): el más completo. Incluye su propio módulo de cursos si lo necesitas más adelante. Buena opción si prevés que vas a crecer.

    Complementos para restricción:

    WPComplete: botón de «Marcar como completado» en cualquier página. Progreso básico sin LMS.

    Favorites: el usuario guarda contenidos para volver a ellos. Gratuito.

    Plugin de la semana

    El plugin de la semana es WP Hooks Finder. Muestra todos los hooks (acciones y filtros) que se ejecutan en cualquier página de tu web. Lo activas, abres la página que quieres inspeccionar y ves exactamente qué hooks hay disponibles para personalizar esa parte. Ideal para desarrolladores que necesitan saber dónde engancharse sin leer el código fuente. Gratuito, ligero y con 5 estrellas.

    Contenidos recomendados

    Vídeo de la Zona Código: Cambiar el color y tamaño de las estrellas de valoración en WooCommerce

    Curso de Tutor LMS

    Curso de Tutor LMS Pro

    Curso de LearnDash

    Curso de Restrict Content Pro

    Reseña de Tutor LMS (versión gratuita)

    Newsletter de WordPress Semanal

    La entrada 527 | ¿Plugin de cursos o de membresía? Cómo elegir sin arrepentirte es una artículo de Gonzalo Navarro.
  • WordPress Semanal

    526 | El checkout perfecto para WooCommerce

    29/04/2026 | 20 mins.
    Escúchalo en:

    En el episodio 526 de WordPress Semanal te cuento cómo debería ser tu checkout en función de lo que vendes. No es lo mismo vender camisetas que cursos, ni cobrar una membresía que una sesión de consultoría. Cada tipo de web necesita un checkout diferente. Y la mayoría usa el mismo para todo.




    Tabla de contenidos





    1. Antes de nada: usa el bloque de checkout2. Checkout para tienda de productos físicos3. Checkout para tienda de productos digitales4. Checkout para web de formación y cursos online5. Checkout para membresía y suscripción recurrente6. Checkout para servicios profesionales7. Checkout para reservas y citas8. Lo que aplica a todos los tipos de webPlugin de la semanaContenidos recomendados







    1. Antes de nada: usa el bloque de checkout

    Si tu página de checkout todavía tiene el shortcode [woocommerce_checkout], cámbialo por el bloque de checkout. Se hace en un minuto: editas la página, borras el shortcode, añades el bloque «Checkout» y guardas.

    El bloque es más rápido, funciona mejor en móvil (el resumen del pedido se colapsa en pantallas pequeñas para no ocupar espacio) y te permite ocultar campos como empresa, segunda línea de dirección o teléfono directamente desde el editor, sin código ni plugins.

    Vamos a ver cómo configurarlo en función del tipo de tienda online que tengas.

    2. Checkout para tienda de productos físicos

    Si vendes algo que hay que enviar, necesitas la dirección completa del cliente.

    Campos que necesitas: nombre, dirección de envío, código postal, ciudad, país, email. El teléfono también, porque el transportista lo necesita para avisar de la entrega.

    Campos que probablemente sobran: empresa (a no ser que vendas B2B), segunda línea de dirección (muy pocos la usan) y notas del pedido (casi nadie escribe nada útil). Los tres se pueden ocultar desde el bloque de checkout.

    Métodos de pago: tarjeta (Stripe), PayPal y contrareembolso si tu público lo pide. En España el contrareembolso sigue teniendo su hueco en ciertos nichos.

    Plugins extra: para una tienda básica, WooCommerce nativo es suficiente. No necesitas un plugin de checkout adicional.

    Consejo: muestra el coste de envío lo antes posible. Si el cliente llega al último paso y descubre 7€ de gastos de envío que no esperaba, abandona. Activa la estimación de envío en la página del carrito (viene con el bloque de carrito) para que no haya sorpresas.

    3. Checkout para tienda de productos digitales

    Vendes ebooks, plantillas, presets, recursos descargables. No hay nada que enviar.

    Campos que necesitas: nombre y email. Nada más.

    Cómo quitar los campos de dirección: ve a WooCommerce → Configuración → Envío y desactiva el envío por completo. WooCommerce elimina automáticamente todos los campos de dirección del checkout. Cero código.

    Métodos de pago: tarjeta y PayPal. Cuantos menos pasos, mejor. Si usas Stripe, activa Link: el cliente guarda su tarjeta una vez y en futuras compras paga con un solo clic. Se activa desde el panel de Stripe.

    Plugins extra: WooCommerce nativo. Los productos descargables se gestionan desde el propio producto (pestaña «Descargable»).

    Consejo: el email es tu campo más importante. Es la llave para entregar el producto y para el seguimiento. El bloque de checkout lo valida en tiempo real (avisa si el formato es incorrecto antes de enviar). Asegúrate de que el email de confirmación con el enlace de descarga llega bien. Si usas FluentSMTP o un servicio SMTP, compruébalo con un pedido de prueba.

    4. Checkout para web de formación y cursos online

    Vendes acceso a cursos. El producto es digital, pero el cliente necesita una cuenta para acceder al contenido.

    Campos que necesitas: nombre y email. Igual que en digital.

    La diferencia clave: el cliente necesita una cuenta de usuario en tu web para acceder al curso. Si le obligas a registrarse antes de comprar, puedes perder ventas. La solución: ve a WooCommerce → Configuración → Cuentas y privacidad y activa «Permitir a los clientes realizar pedidos sin una cuenta» y «Crear una cuenta automáticamente durante el pago». El cliente compra como invitado y recibe su cuenta creada con el email del pedido.

    Plugins para cursos: Tutor LMS (gratuito, cubrimos su configuración en el episodio 519) o LearnDash (premium, desde $199/año). Ambos se integran con WooCommerce para gestionar el pago. Si solo vendes cursos y nada más, tienen su propio checkout con PayPal y Stripe sin necesidad de WooCommerce.

    Consejo: WooCommerce solo autocompleta los pedidos de productos que son virtuales y descargables a la vez. Si vendes un curso (producto virtual sin descarga), el pedido se queda en «Procesando» y tienes que completarlo a mano. Para evitarlo, usa un snippet que marque todos los pedidos pagados como completados automáticamente. O el plugin Autocomplete WooCommerce Orders de QuadLayers.

    5. Checkout para membresía y suscripción recurrente

    Vendes acceso recurrente a contenido, comunidad o servicios. El checkout no es solo una venta: es el inicio de un cobro periódico.

    Campos que necesitas: nombre y email. Si la membresía incluye envío de productos físicos (cajas de suscripción), también dirección.

    Lo más importante del checkout: que el cliente sepa exactamente qué va a pasar. Antes del botón de pago, deja claro el precio, la frecuencia de cobro y las condiciones de cancelación. Un texto como «Se te cobrará 19€/mes. Puedes cancelar en cualquier momento desde tu cuenta» elimina la objeción más grande de las suscripciones.

    Plugins para suscripciones:

    WooCommerce Subscriptions (oficial, $239/año): la más completa. Compatible con más pasarelas de pago, reintentos automáticos de cobro, pruebas gratuitas, cobros de alta. La opción más segura si tu negocio depende de las suscripciones.

    YITH WooCommerce Subscription (versión gratuita funcional): buena para empezar y validar tu modelo de suscripción sin invertir. La versión gratuita funciona con PayPal y productos simples. Premium a $199/año si necesitas más.

    Subscriptions for WooCommerce de WP Swings (gratuita con upgrade a $99/año): alternativa intermedia con buena relación calidad-precio.

    Consejo: si usas Stripe Billing, tienes Smart Retries (reintentos automáticos de cobro con IA), emails de pago fallido y actualización automática de tarjetas caducadas trabajando para ti. Lo cubrimos en detalle en el episodio 524.

    6. Checkout para servicios profesionales

    Eres freelance, consultor o agencia. Vendes un presupuesto, un pack de horas o un proyecto a medida. No vendes un producto de catálogo.

    Campos que necesitas: nombre, email y pago. Poco más.

    ¿Necesitas WooCommerce? Solo si ya lo usas para otra cosa en esa misma web (por ejemplo, vendes cursos o productos además de servicios). Si lo único que necesitas es cobrar por un servicio, WooCommerce es demasiado para esto.

    Alternativas sin WooCommerce:

    WP Simple Pay (versión gratuita disponible): crea formularios de pago con Stripe directamente en tu web. Sin carrito, sin tienda, sin productos. El cliente ve el importe y paga.

    Enlace de pago de Stripe: desde el panel de Stripe puedes crear un Payment Link con el importe y enviárselo al cliente por email o WhatsApp. Sin instalar nada en WordPress.

    Taller: cómo vender online rápido y sin carrito

    Si usas WooCommerce: crea un producto «simple virtual» por cada servicio. Si el importe varía por proyecto, usa un producto con precio libre («paga lo que te indico en el presupuesto») o crea productos variables con diferentes packs (básico, estándar, premium).

    Consejo: para servicios, el checkout no es donde convences al cliente. Eso ya lo hiciste antes (en la reunión, en el presupuesto, en el email). El checkout solo tiene que ser rápido y no generar dudas. Cuanto más simple, mejor.

    7. Checkout para reservas y citas

    Ofreces consultas, sesiones, clases o servicios con hora. El cliente elige fecha y hora, y paga en el mismo flujo.

    Campos que necesitas: nombre, email y la fecha/hora seleccionada. Dirección no suele hacer falta.

    Lo que cambia aquí: el checkout está ligado a un calendario. No es un carrito normal. Necesitas un plugin que gestione la disponibilidad y el pago juntos.

    Plugins para reservas:

    Simply Schedule Appointments (gratuita, 70.000+ instalaciones, 5 estrellas): la más sencilla. Ideal para profesionales individuales (consultores, coaches, terapeutas). Configuración en cinco minutos, integración con Google Calendar y formularios que se adaptan a tu tema. Si necesitas cobrar al reservar, la versión premium ($99/año) añade Stripe y PayPal.

    Amelia (versión gratuita limitada, premium desde $49/año): la más completa si tienes varios profesionales, ubicaciones o servicios. Integración con WooCommerce, Zoom y Google Calendar. Buena opción para clínicas, salones o centros con equipo. Curso de Amelia.

    WooCommerce Bookings (oficial, de Automattic): si ya usas WooCommerce y quieres que las reservas pasen por el mismo checkout que el resto de productos. Premium, sin versión gratuita.

    Consejo: permite pagar una señal en lugar del importe completo. Reduce la barrera de entrada y disminuye las reservas fantasma. Simply Schedule Appointments y Amelia lo soportan en sus versiones premium.

    8. Lo que aplica a todos los tipos de web

    Da igual lo que vendas. Estas cosas funcionan siempre:

    Quita el campo de cupón si no lo usas. Un campo de cupón visible hace que el cliente sin código salga a buscar uno. Desde el bloque de checkout puedes eliminarlo directamente. Si solo usas cupones en campañas puntuales, aplícalos con una URL (?coupon=TUCODIGO) y deja el campo oculto el resto del tiempo.

    Revisa tu checkout en el móvil. Abre tu web en un teléfono real y haz una compra de prueba. Cronometra cuánto tardas. Si son más de 60 segundos, tu cliente también tardará eso. Ese número es tu métrica real.

    Añade un mensaje de confianza junto al botón de pago. «Pago seguro con encriptación SSL» o «Devolución en 14 días». No necesitas un plugin de badges. Un párrafo corto basta.

    Trabaja la página de gracias. Es la página con más atención del cliente. Personalízala con el siguiente paso claro: cómo acceder, qué esperar, cuándo llega. El mensaje por defecto de WooCommerce no hace nada de esto. Redireccionar a una página de gracias personalizada en WooCommerce

    Plugin de la semana

    El plugin de la semana es Flavor 2FA. Autenticación en dos pasos para WordPress que funciona en menos de dos minutos. Compatible con apps como Google Authenticator y también con códigos por email. Ligero, sin configuración compleja y gratuito.

    Contenidos recomendados

    Vídeo de la Zona Código: Mostrar las imágenes del carrusel de Elementor en orden aleatorio

    Curso de WooCommerce

    Curso de Stripe

    Snippets de código de WooCommerce

    Newsletter de WordPress Semanal

    La entrada 526 | El checkout perfecto para WooCommerce es una artículo de Gonzalo Navarro.
  • WordPress Semanal

    525 | Anatomía de una web WordPress que convierte

    22/04/2026 | 20 mins.
    Escúchalo en:

    En el episodio 525 de WordPress Semanal te cuento qué tiene una web que convierte y qué le falta a la mayoría. No hablo de plugins ni de diseño. Hablo de decir las cosas claras y quitar lo que sobra.




    Cómo crear webs WordPress que convierten





    1. Qué es convertir2. Tu prioridad debe ser los mensajes claros3. Cada página (incluida la home) tiene un solo trabajo4. Navegación simplificada5. Páginas de servicio que resuelven dudas6. El formulario es importantísimo7. Velocidad y móvil8. La manida prueba social9. El contenido importa más que el diseño10. Errores que veo constantementePlugin de la semanaContenidos recomendados







    1. Qué es convertir

    Convertir es que el visitante haga lo que tú necesitas. Que te escriba, que compre, que se apunte, que reserve.

    Cada web tiene su conversión. Si no la tienes definida, no puedes mejorar nada.

    Antes de tocar una página de tu web, responde a esto: ¿qué quiero que haga la persona que llega? Una sola cosa.

    2. Tu prioridad debe ser los mensajes claros

    Lo más importante de tu web no es el diseño. Es el mensaje.

    Cuando alguien llega tiene que entender tres cosas en cinco segundos:

    Qué ofreces

    Cómo le ayudas

    Qué tiene que hacer

    Si tu titular dice «Bienvenido a mi web» o «Soluciones integrales para tu negocio», no funciona. El visitante no sabe qué haces.

    Un buen mensaje sigue esta estructura:
    «Ayudamos a [este cliente] a resolver [este problema] para que pueda [este resultado]».

    Ejemplo: «Diseño webs para fisioterapeutas que quieren llenar su agenda sin depender de portales de terceros».

    Dice a quién va, qué problema resuelve y qué resultado ofrece.

    Compara con «Desarrollo web profesional y a medida». ¿A quién va? ¿Qué resuelve? No se sabe.

    Esta claridad aplica a todo:

    el titular de la home,

    los encabezados de servicios,

    los formularios…

    Tu prioridad debe ser la claridad. Sobre todo cuando no te conocen.

    3. Cada página (incluida la home) tiene un solo trabajo

    Llevar al visitante al siguiente paso. Nada más.

    La estructura de una buena landing (página):

    Un titular que diga qué haces y para quién.

    Un párrafo corto que refuerce el beneficio o el resultado.

    Un botón visible sin hacer scroll. «Pide presupuesto», «Empieza gratis», «Reserva tu cita».

    Prueba social cerca del principio: un testimonio, logos de clientes, un dato concreto.

    Lo que sobra: sliders que nadie pasa, la historia de la empresa desde 1998, tres botones compitiendo entre sí.

    Si un elemento no guía hacia la acción, está restando.

    4. Navegación simplificada

    Si tu menú tiene 12 opciones, el visitante tiene que pensar. Cuando piensa, no hace nada.

    Entre 5 y 7 elementos. Lo demás al footer.

    «Servicios» funciona mejor que «Lo que hacemos». «Contacto» funciona mejor que «Hablemos». No es momento de ser creativo. Es momento de ser claro.

    Si tu conversión es que te contacten, pon un botón de contacto en el menú. Visible en todas las páginas.

    Truco: usa menús condicionales. Tanto por páginas como por tipo de usuario (conectado o sin conectar).

    Hay excepciones: como las grandes tiendas de productos. La gente está acostumbrada a usar el mega menú para ir a categorías concretas.

    5. Páginas de servicio que resuelven dudas

    La mayoría describen lo que ofrecen. Y se quedan ahí. Pero el visitante tiene preguntas que no se va a molestar en hacerte:

    ¿Cuánto cuesta de verdad?

    ¿Cuánto tarda?

    ¿Qué pasa si no me gusta?

    ¿Por qué tú y no otro?

    Cada duda sin responder es una venta perdida. Si no hablas de precio, asume que es caro. Si no muestras casos, asume que no tienes experiencia.

    Usa lenguaje simple. Haz este ejercicio:

    Explica tu servicio

    Imagina que alguien te dice: «¿Qué quieres decir?»

    Responde a eso y tendrás la explicación que debes escribir en tu web.

    Estructura que funciona: problema → solución → proceso → precio → testimonios → botón.

    6. El formulario es importantísimo

    Suele ser la principal forma de contacto. Salvo que añadas número de teléfono o WhatsApp.

    Cada campo que añades reduce las respuestas. Nombre y email suelen bastar. Si pides teléfono, di por qué.

    Tres cosas que importan tanto como los campos:

    Dónde está: si solo está en la página de contacto, muchos no llegarán. Ponlo también al final de cada página de servicio.

    Qué dice: «Contacto» convierte menos que «Cuéntame tu proyecto y te respondo en 24 horas».

    Qué pasa después: lleva al usuario a una página que confirme el envío y le diga qué esperar.

    7. Velocidad y móvil

    Si tu web tarda más de tres segundos, pierdes visitas antes de que lean nada.

    Imágenes optimizadas, buen hosting y un plugin de caché resuelven el 80% de los problemas.

    En móvil: revisa tu web en un teléfono real. ¿Se ve el botón de contacto sin hacer scroll infinito? ¿Se lee el texto sin zoom? ¿Se puede rellenar el formulario con el pulgar?

    En muchos casos más de la mitad de tus visitas llegan desde el móvil (revísalo en tu analytics).

    8. La manida prueba social

    El visitante no te conoce. Necesita ver que otros confiaron en ti y les fue bien.

    No hacen falta 50 testimonios. Con tres o cuatro buenos basta. Lo importante es que sean concretos: «Me hizo la web en tres semanas y las consultas se triplicaron» funciona mejor que «Gran profesional».

    Otras cosas que generan confianza:

    Logos de clientes.

    Número de proyectos o años de experiencia.

    Casos breves: problema, solución, resultado.

    Tu cara. Una foto real genera más confianza que un logo, sobre todo si eres freelance.

    Coloca la prueba social cerca de los botones. Cuando el visitante decide si hace clic, necesita ver que otros ya lo hicieron.

    9. El contenido importa más que el diseño

    «Somos un equipo de profesionales apasionados por ofrecer soluciones integrales». Eso no dice nada.

    El contenido que convierte habla del problema del cliente con las palabras del cliente. Si un fisioterapeuta lee «quiero que me encuentren en Google sin depender de Doctoralia», siente que le hablas a él.

    Aplica esto en cada página:

    qué ofreces,

    cómo ayudas,

    qué tiene que hacer.

    Si respondes a eso con lenguaje directo, vas por delante de tu competencia.

    10. Errores que veo constantemente

    Sliders en la home: nadie los pasa. Un titular con un botón convierte más.

    Páginas sin botón: el usuario llega al final y no sabe qué hacer.

    Menús enormes: 20 opciones que abruman.

    Diseño bonito sin objetivo: animaciones que no ayudan a que nadie contacte.

    Hablarle a todo el mundo: si tu web va dirigida a todos, no le habla a nadie.

    Textos escritos para ti: la web es para quien busca una solución. Escribe para esa persona.

    La solución casi nunca es añadir. Es quitar lo que sobra.

    Plugin de la semana

    El plugin de la semana es Page Optimize. Desarrollado por Automattic, agrupa los archivos CSS y JavaScript de tu web para que cargue más rápido. Lo activas y funciona. Gratuito y con 5 estrellas.

    Contenidos recomendados

    Vídeo de la Zona Código: establecer mínimo de compra por producto en Woo

    Taller: crear la landing perfecta

    Taller: copywriting

    Curso de velocidad en WordPress

    Newsletter de WordPress Semanal

    La entrada 525 | Anatomía de una web WordPress que convierte es una artículo de Gonzalo Navarro.
  • WordPress Semanal

    524 | Pagos rechazados en Stripe: causas reales y cómo recuperarlos

    15/04/2026 | 17 mins.
    Escúchalo en:

    En el episodio 524 de WordPress Semanal te explico por qué fallan los pagos en Stripe, cómo funciona el sistema de reintentos automáticos, qué opciones tienes para recuperar esos cobros y qué puedes hacer para que ocurra menos. Si vendes cursos, membresías o productos desde WordPress, mejor estar preparado.




    Entender y recuperar pagos fallidos en Stripe





    1. Por qué fallan los pagos en Stripe2. Dónde ver los pagos fallidos en tu panel de Stripe3. Smart Retries: los reintentos automáticos de StripeCoste de Smart Retries

    4. Los emails automáticos de pago fallido5. Qué pasa si todos los reintentos fallan6. Lo que tú puedes hacer para reducir los pagos fallidosRecuerda que Stripe tiene comisionesPlugin de la semanaContenidos recomendados







    1. Por qué fallan los pagos en Stripe

    Los pagos no fallan por capricho. Cuando Stripe intenta cobrar a un cliente y el banco emisor rechaza la transacción, devuelve un código de rechazo. Los motivos más frecuentes son:

    Fondos insuficientes (insufficient_funds): el cliente no tiene saldo. Es el más común.

    Tarjeta caducada (expired_card): la tarjeta ha expirado y el cliente no ha actualizado sus datos.

    Rechazo genérico (generic_decline): el banco rechaza sin dar un motivo claro. Puede ser temporal.

    Autenticación fallida (authentication_required): el pago requería 3D Secure y el cliente no completó la verificación.

    Tarjeta reportada como perdida o robada: aquí no hay reintento posible.

    Límite de crédito superado: el cliente ha agotado su línea de crédito.

    Estos motivos se dividen en dos categorías que conviene distinguir:

    Rechazos blandos (soft declines): problemas temporales como fondos insuficientes o rechazo genérico. Se pueden reintentar con posibilidades de éxito.

    Rechazos duros (hard declines): problemas permanentes como tarjeta caducada, perdida o cuenta cerrada. No tiene sentido reintentar sin que el cliente actualice sus datos de pago.

    Fuente: Códigos de rechazo – Documentación de Stripe

    2. Dónde ver los pagos fallidos en tu panel de Stripe

    En el panel de Stripe, ve a Transactions → Payments y filtra por estado Failed. Cada pago fallido te muestra:

    El motivo del rechazo (el código que devolvió el banco).

    El consejo de Stripe sobre qué hacer a continuación.

    Si se va a reintentar automáticamente o no.

    Si vendes suscripciones, también puedes ver el estado de los reintentos desde Billing → Revenue recovery, donde Stripe muestra un resumen de la tasa de fallos, la tasa de recuperación y los pagos en proceso de reintento.

    Fuente: Revenue recovery – Documentación de Stripe

    3. Smart Retries: los reintentos automáticos de Stripe

    Smart Retries es el sistema de Stripe que usa inteligencia artificial para elegir el mejor momento para reintentar un pago fallido. En lugar de reintentar a intervalos fijos, analiza cientos de señales (historial del cliente, hora del día, día de la semana, comportamiento de la tarjeta…) para maximizar las posibilidades de éxito.

    Puedes configurarlos desde Billing → Revenue recovery → Retries:

    Número de reintentos: hasta 8.

    Periodo máximo: 1 semana, 2 semanas, 3 semanas, 1 mes o 2 meses.

    Configuración recomendada por Stripe: 8 reintentos en 2 semanas.

    Si el rechazo es duro (tarjeta caducada, perdida…), Stripe programa los reintentos pero solo los ejecuta si detecta que el cliente ha actualizado su método de pago.

    También puedes desactivar Smart Retries y crear tu propio calendario de reintentos manual (hasta 3 reintentos con un número de días entre cada uno), pero Stripe recomienda dejar los Smart Retries activos porque recuperan más.

    Coste de Smart Retries

    Smart Retries están incluidos dentro de Stripe Billing, que cobra un 0.7% sobre el volumen de facturación (modelo pay-as-you-go, sin cuota mensual fija). Este 0.7% incluye los reintentos, los emails automáticos de pago fallido, la actualización automática de tarjetas y el portal del cliente.

    Es importante saber que Stripe Billing se activa cuando usas suscripciones o facturas recurrentes a través de la API de Billing. Si vendes con WooCommerce + Stripe usando pagos puntuales (no suscripciones gestionadas desde Stripe Billing), los Smart Retries no aplican directamente. En ese caso, la gestión de reintentos la hace WooCommerce Subscriptions u otro plugin.

    Fuente: Automate payment retries – Documentación de Stripe

    4. Los emails automáticos de pago fallido

    Stripe puede enviar automáticamente un email al cliente cuando un pago falla. Este email incluye un enlace a una página alojada en Stripe donde el cliente puede actualizar su tarjeta directamente.

    Para activarlo: Settings → Billing → Subscriptions and emails → Manage failed payments y activa la opción «Send emails when card payments fail».

    Además de los emails de pago fallido, puedes activar:

    Aviso de tarjeta a punto de caducar: para que el cliente actualice sus datos antes de que falle.

    Aviso de renovación próxima: para que el cliente sepa que se le va a cobrar.

    Aviso de fin de periodo de prueba: si usas trials en tus suscripciones.

    Recuerda que si WooCommerce (u otro plugin) también envía sus propios emails para estos eventos, el cliente los recibe duplicados. Decide quién envía qué y desactiva los que sobren (como ya expliqué en el episodio 520).

    Para que estos emails generen confianza, tu branding tiene que estar configurado (logo, colores, información de contacto). Sin eso, parecen correos genéricos y el cliente desconfía.

    Estos emails automáticos están incluidos en Stripe Billing (dentro del 0.7%) sin coste adicional.

    Fuente: Automate customer emails – Documentación de Stripe

    5. Qué pasa si todos los reintentos fallan

    Si después de agotar todos los reintentos el pago sigue sin realizarse, Stripe ejecuta la acción que tú hayas configurado. Las opciones son:

    Cancelar la suscripción: es la opción por defecto. El cliente pierde el acceso.

    Pausar la suscripción: se detiene el cobro pero la suscripción no se elimina. Se puede reactivar cuando el cliente actualice su pago.

    Marcar la factura como incobrable: la suscripción sigue activa pero la factura queda abierta. Útil en contextos B2B donde prefieres gestionar el cobro por otra vía.

    Dejar la factura abierta sin hacer nada más: no se cancelan cobros futuros, pero el impago queda pendiente.

    Elige la opción según tu modelo de negocio. Si vendes formación o membresías, cancelar suele ser lo más limpio. Si vendes a empresas, marcar como incobrable te da margen para negociar.

    Esta configuración se encuentra en Settings → Billing → Subscriptions and emails → Manage failed payments.

    Fuente: How subscriptions work – Documentación de Stripe

    6. Lo que tú puedes hacer para reducir los pagos fallidos

    Además de los reintentos y los emails, hay varias cosas que puedes hacer de forma proactiva:

    Actualización automática de tarjetas: Stripe actualiza automáticamente los datos de tarjetas cuando el banco emite una nueva (por ejemplo, por renovación). No requiere acción por tu parte y viene activado por defecto.

    Descriptor del extracto claro: un cobro que el cliente no reconoce puede acabar en disputa. Si tu descriptor dice algo reconocible, el cliente no llama al banco. Lo cubrimos en el episodio 520.

    Ofrecer más de un método de pago: si la tarjeta falla, tener PayPal, domiciliación bancaria u otro método alternativo puede salvar la venta.

    Activar 3D Secure adaptativo con Radar: Stripe Radar puede pedir automáticamente verificación 3D Secure solo en pagos de riesgo, lo que reduce fraude y disputas sin friccionar todos los pagos. Radar básico viene incluido con Stripe sin coste adicional (la versión avanzada, Radar for Fraud Teams, cuesta 0.02€ extra por transacción).

    Recuerda que Stripe tiene comisiones

    Comisión base de Stripe: varía según país y tipo de tarjeta. En Europa, suele ser 1.5% + 0.25€ para tarjetas europeas.

    Stripe Billing (suscripciones, Smart Retries, emails automáticos, portal del cliente): 0.7% del volumen de facturación. Sin cuota mensual fija.

    Radar básico (protección contra fraude con IA): incluido con la tarifa estándar de Stripe.

    Radar for Fraud Teams (reglas personalizadas, listas de bloqueo): 0.02€ extra por transacción.

    Disputas: 15$ por cada disputa recibida, ganes o pierdas.

    Plugin de la semana

    El plugin de la semana es System Dashboard. Muestra en un solo panel toda la información técnica de tu instalación de WordPress: versión de PHP, base de datos, tamaño de directorios, tablas creadas por cada plugin, hooks activos, roles y capacidades, y más. No carga nada en el frontend y es ideal para diagnosticar problemas o auditar una web sin tener que buscar cada dato por separado.

    Contenidos recomendados

    Vídeo de la Zona Código: Cargar Elementor solo en las páginas que lo usan en WordPress

    Curso de Stripe

    Episodio 520: Lo que tienes que configurar en Stripe antes de conectarlo con WordPress

    Episodio 521: Recorrido práctico por el panel de Stripe

    Episodio 491: Stripe vs PayPal en WordPress

    Newsletter de WordPress Semanal

    La entrada 524 | Pagos rechazados en Stripe: causas reales y cómo recuperarlos es una artículo de Gonzalo Navarro.
More Courses podcasts
About WordPress Semanal
El podcast semanal para sacarle partido real a WordPress. Cada episodio cubre una herramienta, un proceso o una decisión concreta: lo que necesitas para crear mejores webs, en menos tiempo y con más criterio.
Podcast website

Listen to WordPress Semanal, Prof Jiang’s Predictive History and other lectures and many other podcasts from around the world with the radio.net app

Get the free radio.net app

  • Stations and podcasts to bookmark
  • Stream via Wi-Fi or Bluetooth
  • Supports Carplay & Android Auto
  • Many other app features