Opciones compartidas entre plugins¶
Nueve opciones de wp_options las usa más de un plugin. Funcionan, están en producción y
no se renombran. Este documento existe porque eran un contrato no escrito: quien leía
get_option( 'convoca_members_settings' ) desde Enroll dependía de una decisión interna de
Members sin que nada lo dijera.
Regla a partir de ahora: lectura nueva, por filtro. La opción se queda donde está para no romper instalaciones, pero el plugin dueño publica un filtro (o un método estático de su API) y los demás lo consumen. No se añaden lecturas cruzadas nuevas.
Quién escribe y quién lee¶
Medido sobre el código el 1/11/2026 (no sobre la documentación).
| Opción | La escribe | La leen | Nota |
|---|---|---|---|
convoca_gateway_settings |
Core (asistente de configuración) y Gateway (diagnóstico) | Gateway, Members, Core, Health Check | La configuración de cobro la escribe también el asistente de Core: es el cruce más ancho del ecosistema |
convoca_members_settings |
Members | Members, Enroll, Core | Enroll lee ajustes de socios para decidir si una inscripción crea ficha |
convoca_members_plans |
Core (asistente de configuración) | Members, Core | Los planes se pueden crear desde el asistente |
convoca_pdf_templates |
— (no se ha localizado escritor directo) | Core, Enroll, Members | Pendiente de localizar el escritor real antes de tocarla |
convoca_document_theme |
Core y Members | Core, Members | Dos escritores para el mismo valor: candidato a unificar en Core |
convoca_shifts_hora_apertura |
Shifts (register_setting) y Core (asistente) |
Shifts, Core | El asistente escribe dos veces la misma opción que Shifts registra |
convoca_shifts_hora_cierre |
Shifts (register_setting) y Core (asistente) |
Shifts, Core | Igual que la anterior |
convoca_publisher_auto_publish |
Publisher | Publisher, Health Check | Health Check solo la lee para el diagnóstico |
convoca_uninstall_keep_data |
Cada plugin | 7 plugins | Convención compartida, no acoplamiento: cada uno decide si borra lo suyo al desinstalar |
Lo que esto dice de la arquitectura¶
- El asistente de configuración de Core escribe opciones de otros plugins. Es la excepción real a la regla «cada plugin manda en lo suyo», y no es un accidente: el asistente existe para dejar un sitio listo de una vez. Se documenta como contrato y no se amplía sin necesidad.
- Dos escritores en
convoca_document_theme,convoca_shifts_hora_aperturayconvoca_shifts_hora_cierre. Mismo valor, dos sitios que lo guardan. Si algún día divergen, el síntoma será «el ajuste no se queda». Unificarlo es un cambio de riesgo medio: requiere decidir quién manda y migrar el valor actual. convoca_uninstall_keep_datano es acoplamiento. Es una convención: cada plugin comprueba la misma opción para respetar la decisión del administrador de no borrar datos. Se queda como está.
Lo que no se hace en esta fase¶
- Renombrar ninguna de las nueve.
- Cambiar el formato de su valor (hay instalaciones con datos).
- Quitar el lector cruzado actual: se sustituye por filtro solo cuando se toque ese código por otro motivo, con su prueba de regresión.