v1.20.6 - Shell por shortcode + rol primario + cargo en topbar
v1.20.6 — Shell robusto + rol primario + cargo en topbar
Fix 1 — Astra visible en /mis-leads/ y /mi-agenda/
El shell se aplicaba SOLO si el slug del post estaba en la opción guardada en BD. Si ya tenías una opción vieja sin los slugs nuevos, esas páginas conservaban el menú de Astra. Ahora crm_app_shell_is_crm_page() detecta también por presencia de shortcodes CRM en el contenido de la página (has_shortcode). Funciona en cualquier slug.
Shortcodes que activan el shell automáticamente:
crm_alta_cliente, crm_lista_altas, crm_editar_cliente, todas_las_altas, crm_admin_panel, crm_clientes_*, crm_rendimiento_comercial, crm_comerciales_estadisticas, crm_mi_agenda, crm_mi_gcal, asignacion_leads_mk, crm_guia_*.
Fix 2 — Menú admin visible a usuarios no-admin
Si un plugin externo (Members) añadía la capability crm_admin a un comercial, el menú le mostraba items que no le correspondían. Refactor: el menú filtra por rol primario (no por capability) usando crm_user_primary_role(). Sin bypass para admins.
Jerarquía estricta verificada:
| Item | administrator / crm_admin | comercial | visitador |
|---|---|---|---|
| Escritorio | ✓ | ✓ | ✓ |
| Alta | ✓ | ✓ | – |
| Mis altas | ✓ | ✓ | – |
| Todas las altas | ✓ | – | – |
| Resumen | ✓ | – | – |
| Leads MK (asignar) | ✓ | – | – |
| Mis leads | – | ✓ | ✓ |
| Mi agenda | ✓ | ✓ | ✓ |
| Panel | ✓ | – | – |
Mejora — Cargo bajo el nombre
En el topbar, debajo del nombre del usuario aparece su rol (Administrador, Admin CRM, Comercial, Visitador) en small caps condensed.
Cambios
includes/roles.php: nuevas funcionescrm_user_is_comercial(),crm_user_primary_role(),crm_user_role_label().includes/app-shell.php: detección por shortcode + filtrado por rol primario + cargo legible.assets/css/crm-design-v2.css: estilos.crm-topbar__user-metay.crm-topbar__user-role.
Post-actualización
- Recarga el frontend con usuario comercial → debes ver: Escritorio · Alta · Mis altas · Mis leads · Mi agenda.
- Recarga con visitador → debes ver: Escritorio · Mis leads · Mi agenda.
- Entra en cualquier página que contenga
[crm_mi_agenda]o[asignacion_leads_mk]→ Astra debe desaparecer y aparece el topbar CRM. - Si sigues viendo items de admin como comercial, comprueba en
WP Admin › Usuarios › Editarque el rol primario del usuario esComercialy no tiene asignadoAdmin CRMpor error.