Skip to content

v1.20.6 - Shell por shortcode + rol primario + cargo en topbar

Choose a tag to compare

@replantadev replantadev released this 25 Jun 13:12
· 42 commits to master since this release

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 funciones crm_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-meta y .crm-topbar__user-role.

Post-actualización

  1. Recarga el frontend con usuario comercial → debes ver: Escritorio · Alta · Mis altas · Mis leads · Mi agenda.
  2. Recarga con visitador → debes ver: Escritorio · Mis leads · Mi agenda.
  3. Entra en cualquier página que contenga [crm_mi_agenda] o [asignacion_leads_mk] → Astra debe desaparecer y aparece el topbar CRM.
  4. Si sigues viendo items de admin como comercial, comprueba en WP Admin › Usuarios › Editar que el rol primario del usuario es Comercial y no tiene asignado Admin CRM por error.