Ultimate Membership Pro (en adelante UMP) es un complemento para la gestión de membresías que instalé en la página de un cliente y antes probé en un entorno de pruebas. Finalmente decidí dejarlo aquí instalado para probarlo más a fondo.
UMP es muy completo, equilibrado, relativamente ligero y con un buen precio, 59 dólares. Es mucho más barato en comparación con los más conocidos para la gestión de suscripciones.
Alternativas
Aunque hay muchas alternativas, incluso alguna gratuita, la más parecida, y para algunos mejor en cuanto a opciones y precio, es ARMember, que sí dispone de versión gratuita y la posibilidad de recrear una prueba completa temporal (SandBox) online para hacerte una idea del aspecto, algo más cuidado, y su funcionamiento final.
Otra opción, aunque mucho menos "todo en uno", es tirar de Conditional Blocks y Advanced Custom Fields y solucionar el tema del pago por tu cuenta.
UMP no tiene renovaciones anuales, el pago único inicial incluye todas las actualizaciones futuras y seis meses de soporte, que puedes renovar si quieres.
Destaca por su gran cantidad de opciones y servicios integrados y flojea en diseño, usabilidad y por algunos bugs.
Las plantillas de los planes de suscripción, y otras, tienen un diseño muy limitado. Pueden editarse añadiendo CSS o editando el PHP, pero siempre se pueden crear otras propias con Elementor o GenerateBlocks, etc.
UMP permite crear planes de suscripción gratuitos y/o de pago basado en los roles de usuario de WordPres y restringir el contenido de pago dependiendo de cada plan. Incluye todo lo necesario para el registro y el pago, que se puede hacer mediante nueve sistemas, entre ellos PayPal, Authorize.net, Stripe, 2CheckOut, BrainTree, Mollie y también vender suscripciones a través de la plataforma WooCommerce.
La configuración puede resultar farragosa y no es algo que se haga rápido.
Lo ideal es empezar creando los distintos planes que tienes en mente partiendo de los tres de muestra que el plugin te presenta y seguir a partir de ahí creando el resto de páginas asociadas.
Plantillas Front-end
Puedes usar las páginas que genera el plugin o crearlas desde cero con el título que quieras añadiéndoles el correspondiente shortcode. El plugin ofrece más de 30 shortcodes.
Plantillas de área protegida
Se pueden restringir contenidos de distintas formas:
Todos los post, todos los post basados en categorías, archivos específicos, URL específica, todas las URLs (basadas en palabras clave).
Incluso se puede ir liberando contenido "por Goteo" (Drip Content) para usuarios registrados, crear cupones de descuento y periodos gratuitos de prueba.
Estas son las plantillas para las zonas restringidas a usuarios no registrados o sin el nivel de acceso necesario
42 AddOns incluidos
Sus AddOns "gratuitos" son más que suficientes aunque se pueden añadir otros de pago. Esto no tiene mucho sentido al tratarse de un plugin Premium, pero se entiende que al no tener una versión gratuita o de prueba deben entenderse como "extras".
Errores y soluciones
Este plugin presentó 4 problemas que aunque pude resolver como se describe a continuación, resultan demasiados como para replantearme recomendarlo.
1. incompatibilidad con Polylang
Este error es el más grave y es una jodienda si usas Polylang, como es mi caso. También es el que tiene peor solución.
Entiendo que no hay compatibilidad entre ambos plugins y cuando funcionan juntos se rompe el formulario de registro de UMP impidiendo algunas funciones y también que se muestre completo. Incluso provoca que no se grabe el nombre de usuario en el registro y aparezca en su lugar el correo electrónico.
Solución
Opté por excluir completamente Polylang de las páginas donde se usan formularios de UMP, para ello tuve que recurrir al siempre socorrido Script Manager de Perfmatters.
Esta solución es una chapucilla temporal ya que si queremos usar UMP en otros lugares tendremos que ir añadiendo más exclusiones y eso puede impedir que Polylang no muestre por ejemplo el selector de idiomas si lo añadiste al menú o en otro lugar de la página o post.
Y lo que es peor, esto puede impedir que puedas mostrar contenido en otro idioma usando este procedimiento.
Punto negativo para los creadores de UMP que deberían solucionarlo cuanto antes ya que Polylang es uno de los plugins más usados con más de 700.000 instalaciones activas.
2- Conflicto con Query Loop de Generate Bloks Pro
Con UMP activado la función de post relacionados usando Query Loop de GenerateBlocks Pro para excluir el post actual "exclude current post" del bucle deja de funcionar.
Sobre este error no he podido profundizar mucho ya que no resulta fácil y los logs de errores y el DEBUG de WordPress no ofrecen ninguna pista a seguir o no he sabido encontrarla.
Lo único seguro es que desactivando UMP, vuelve a funcionar.
Solución
De momento para esto no tengo solución más allá de no usar UPM en los post, algo que es absurdo porque impide poder restringir determinados contenidos en los post, que es de lo que se trata.
Este error queda pendiente de una posible solución que pasará por comunicárselo a los creadores de ambos plugins.
3- Bloqueo de archivos
Este fue el error que más tiempo tardé en descubrir y solucionar.
Aún no tengo muy claro si la solución aplicada es la mejor y podría complicar el funcionamiento de UMP en el futuro.
UMP añade esta regla al .htaccess que bloquea la visualización de estos tipos de archivo: mp3|mp4|avi|pdf|zip|rar|doc|gz|tar|docx|xls|xlsx|PDF.
No entiendo que se añada esta regla sin avisar al usuario, salvo que se trate de un error.
Solución
En mi caso, en lugar de eliminar la regla por completo (por si acaso) opté por quitar de esa lista: mp3, zip, pdf y PDF para que la visualización de este tipo de archivos añadidos en los post volviera a estar disponible. Si estás usando otro tipo de archivos bastará con quitarlos de la lista.
Así quedó la regla:
#BEGIN Ultimate Membership Pro Rules
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_URI} !^/(wp-content/themes|wp-content/plugins|wp-admin|wp-includes)
RewriteCond %{REQUEST_URI} \.(mp4|avi|rar|doc|gz|tar|docx|xls|xlsx)
RewriteRule . /index.php?ihc_action=check-file-permissions [L]
</IfModule>
#END Ultimate Membership Pro Rules
4. Necesita jQuery Migrate
UMP usa jQuery Migrate (deshabilitada desde WordPress 5.5) al menos para su sistema propio de subida de imágenes como el avatar.
Si tienes jQuery Migrate desactivado tocará volver a activarlo o los usuarios que se registren o los registrados no podrán subir su avatar u otras imágenes como el banner de su página individual.
Solución
Aquí otra vez encuentro la solución perfecta en Perfmatters, donde excluyo jQuery Migrate de TODO el sitio salvo de las páginas de Registro y Mi Cuenta.
Descargar traducción en español
UMP dispone del correspondiente .POT con el que traducirlo usando Poedit o similar. Si quieres ahorrarte el trabajo, puedes descargar y subir mi traducción.
La descarga es un .zip que incluye dos archivos (ihc-es_ES.mo y ihc-es_ES.po).
Para añadir la traducción debes subir ambos archivos a la siguiente ruta:
/wp-content/plugins/indeed-membership-pro/languages/
Se han traducido 2757 cadenas de 3004, faltan 247. Las que no se han traducido es porque Poedit no las ha encontrado o no necesitan traducción al tratarse de nombres de países u otros nombres propios y términos genéricos, símbolos o signos.
Revisa y corrige la traducción por tu cuenta probando acciones reales, puedo haber cometido algún error o haber interpretado mal el contexto en algún término.
*Conserva la traducción ya que tendrás que volver a subir los archivos tras cada actualización del plugin.
Lo bueno y lo malo
Después de probarlo funcionando durante cuatro meses lo desinstalé porque aparecieron más problemas de los que esperaba.
Confío en que sus creadores solucionen la compatibilidad 100% con Polylang y vayan puliendo otras compatibilidades con otros plugins y bugs menores. Quizá pruebe mientras tanto ARMember u otra alternativa.
También he recopilado mediciones de rendimiento durante este tiempo para comparar y la velocidad de carga ha sido otro factor a tener en cuenta para una valoración negativa.
Todo apunta a que el plugin, incluso con exclusiones, probablemente esté lastrando los resultados de Speed Index, que es el índice de velocidad que mide la rapidez con la que el contenido se muestra visualmente durante la carga de la página.
Recuerda que esta ha sido mi experiencia según la configuración de mi entorno y es probable que en la tuya funcione todo bien. La regla de oro es siempre, probar, probar y probar.
Solo lo recomendaría en el caso de una instalación de WP más o menos limpia y con pocos plugins ya que es bastante probable que existan conflictos con otros plugins y constructores. Al no existir la posibilidad de probarlo antes de comprarlo (salvo que pruebes una copia "nulled" asumiendo el riesgo) lo aconsejable es leer opiniones y comentarios a la búsqueda de quejas que hablen de errores puntuales.
No voy a pedir la devolución porque sabía a lo que me arriesgaba. Aunque aseguran que te devuelven el dinero sin preguntas, en las condiciones se matiza que solo será por malfuncionamiento y no porque no cumpla con tus expectativas o conflictos con otras cosas de tu entorno, en cuyo caso tendrás que lidiar con la siempre tediosa tarea de cruzar tickets para intentar demostrar que el error proviene de su parte.
En cualquier caso, existen plugins gratuitos, aunque mas básico, que tienen todas las opciones mínimas necesarias para montar un sistema de membresías completamente funcional, como Simple Membership y otros.
Pros
- Precio ajustado en un sólo pago con seis meses de soporte. Sin renovaciones anuales. Opcionalmente se pueden comprar periodos de soporte.
- Gran cantidad de opciones como cupones de descuento, entrega de contenido por goteo, suscripciones ilimitadas gratuitas o de pago y opciones de email marketing y restricción de contenido por archivo, categorías o url´s concretas.
- Integración de gran cantidad de servicios y métodos de pago.
Contras
- No es compatible con Polylang, se rompen los formularios.
- Conflicto con Query Loops de GenerateBlocks Pro.
- Necesita tener activado Jquery y Jquery Migrate para que funcione la subida de imágenes y otras opciones del formulario de registro.
- Plantillas mejorables.
- Documentación muy básica.
- Sólo alguna partes (pocas) se pueden traducir desde el área de administración del plugin.
- Soporte "relajado", se leen bastantes quejas.