Iteración del módulo de suscripción de membresía
Para la plataforma CMS que construí yo mismo, la parte de suscripción de membresía siempre ha sido "fácil de implementar". Este fin de semana reestructuré esta parte y desarrollé la parte central.
1. Método
En términos generales, la suscripción de membresía incluye principalmente tres partes: plan y compra de suscripción de membresía, control de permisos de miembros y administración de miembros.
1. Para compras y planes de suscripción de membresía
Simplemente prepárese para hacer algunas extensiones basadas en el sistema del centro comercial existente.
2. Para el control de permisos de los miembros,
Es necesario mencionar esto en particular: no planeamos hacerlo basándose en un sistema de permisos de roles, sino en un sistema independiente controlado por miembros.
Según el sistema de autoridad de roles, los miembros se convierten en una serie de roles y cada tipo de miembro se convierte en un rol en esta serie de roles. Suena razonable. Sin embargo, en este caso, es muy problemático de hacer o usar, especialmente cuando hay muchos negocios, las diversas lógicas serán muy complicadas y se causará todo tipo de confusión si no se tiene cuidado. Y no es lo suficientemente flexible.
Además, de hecho, la parte de suscripción de membresía de muchos sistemas excelentes no se basa en roles. En cambio, el control de permisos se implementa en base a "marcas" u órdenes. Muchos complementos de suscripción de membresía que se venden bien, incluido WordPress, se crean de esta manera.
Basado en "etiquetas de usuario":
En esencia, es el mismo principio que el sistema de caracteres. Es para definir algunas "marcas" de los miembros. Los usuarios que compren el plan de suscripción de membresía asociado con esta "marca" serán "marcados con esta marca", de modo que se pueda lograr el control de los permisos de los miembros.
Basado en orden:
Compre un plan de suscripción de membresía y realice un pedido. Después del pago, el tiempo de vencimiento se escribirá en el pedido. Por lo tanto, puede juzgar según el orden si el usuario es miembro, qué tipo de miembro es y si ha caducado. De esta manera puede controlar los permisos de los miembros.
He utilizado un método basado en pedidos antes y esta vez planeo usar "etiquetas de usuario".
No hay nada de malo en basarse en pedidos, pero el sistema de pedidos de la plataforma CMS que estoy construyendo ahora admite muchos tipos de pedidos, lo que hace que el modelo de pedidos sea relativamente "grande". Ya no planeo "agregarle peso". así que elegí Basado en "etiquetas de usuario".
3. Gestión de miembros
Basándonos en la extensión de administración de usuarios existente, no planeamos realizar la administración de miembros solos.
2. Escenarios aplicables
1. Escenario básico
Todo el producto tiene uno o varios planes de suscripción, que los usuarios compran y disfrutan de los servicios de membresía.
Defina etiquetas de membresía globalmente. Cada etiqueta de membresía contiene al menos tres campos: nombre, slug e identificación del plan de suscripción asociado.
Cuando un usuario compra un plan de suscripción con una marca de membresía, la marca de membresía y el tiempo de vencimiento se escribirán en los metadatos del usuario.
2. Escenario de plataforma/multiinquilino
Para plataformas y SAAS multiinquilino, existe un escenario muy importante: el plan de suscripción proporcionado por el propio proveedor.
Defina la etiqueta de membresía del proveedor en los metadatos del usuario del proveedor. La clave de la etiqueta de membresía del proveedor no puede ser la misma que la clave de la etiqueta de membresía global.
Cuando un usuario compra un plan de suscripción de este proveedor, la etiqueta de membresía correspondiente y la fecha de vencimiento se escribirán en los metadatos del usuario comprador.
Esta iteración solo implementa escenarios básicos, pero debe poder extenderse a escenarios de plataforma y multiinquilino.
3. Determine si la membresía ha caducado al iniciar sesión
Cuando el usuario inicia sesión, se juzga si ha caducado. Si ha caducado, actualice la marca de miembro en los metadatos a falso y la fecha de vencimiento a falso.