Settings action link is missing from the Plugins screen
Los mantenedores suelen responder en 1 día
@Alexia-Soare ya está trabajando en esto.
Desde el 28/9/2026.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 72/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Área
- backend, testing-qa
Línea de trabajo
Start in includes/classes/wp-maintenance-mode-admin.php, tracing __construct(), load_default_settings(), and add_settings_link(); check the bootstrap in wp-maintenance-mode.php and compare v2.6.15 with v2.6.16. Run the relevant admin tests, including single-site and network-admin contexts; done means the Settings action appears on both Plugins screens and coverage verifies registration timing.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
The LightStart row on the WordPress Plugins screen does not expose its expected Settings action in the inspected release path. The plugin is expected to provide a direct configuration link alongside its plugin-row actions, but version 2.6.23 registers that action ineffectively. This makes the settings page harder to discover, although administrators can still access it from the separate LightStart sidebar menu.
Customer context
- Product / area: LightStart / Plugins screen action links
- Version: 2.6.23
- Environment: WordPress administration; role, WordPress version, PHP version, and multisite status not provided
- Integration / third party: Not provided
- Reported error / symptom: No settings button was available for configuration
- Impact: The reporter could not find a direct route to configure the plugin and deactivated it after nine minutes.
Reproduction notes
- Install and activate LightStart 2.6.23.
- Open the WordPress
Pluginsscreen as an administrator. - Inspect the action links under the LightStart plugin row.
- Expected: a
Settingsaction opens the LightStart configuration page. - Source-confirmed result: registration uses the plugin basename before that property is initialized, so the plugin-specific callback is not attached. Runtime reproduction was not performed during triage.
Diagnosis
Conclusion
The plugin-row Settings action is registered before the dynamic hook's plugin basename has been initialized. At construction time, the resulting filter name lacks the basename used by the Plugins screen, while no later registration occurs after initialization. Git history shows that initialization moved from the constructor to init in commit c4b35add6226e0bb36c7e96eea6bdac3c0fbc7ca; the commit first appears in v2.6.16, while v2.6.15 retains constructor-time initialization. The defect remains in the reported v2.6.23 source.
Where this likely occurs
wp-maintenance-mode.php— plugin bootstrap approx. lines 68–74 registersWP_Maintenance_Mode_Admin::get_instance()onplugins_loadedfor admin requests.includes/classes/wp-maintenance-mode-admin.php—WP_Maintenance_Mode_Admin::__construct()lines 25–46 defers property initialization toinitbut immediately constructs theplugin_action_links_{$plugin_basename}or network equivalent filter name.includes/classes/wp-maintenance-mode-admin.php—WP_Maintenance_Mode_Admin::load_default_settings()lines 100–107 assignsplugin_basenameonly wheninitlater runs.includes/classes/wp-maintenance-mode-admin.php—WP_Maintenance_Mode_Admin::add_settings_link()lines 1085–1099 defines the expectedSettingslink callback, but the inspected registration path does not attach it to the plugin-specific hook.- Commit
c4b35add6226e0bb36c7e96eea6bdac3c0fbc7camoved basename initialization out of the constructor. Tags containing the change begin atv2.6.16;v2.6.23still contains it.
Engineering notes
The same ordering affects both the ordinary and network-admin plugin-row filter selection because the network-activation condition also receives the not-yet-initialized basename. The callback itself builds its URL after init, so the inspected failure is in registration timing rather than URL generation. The separate top-level LightStart admin menu is registered later and is outside this defect's scope.
Test coverage status
No relevant coverage was found during inspection for plugin-row action-link registration on either single-site or network-admin Plugins screens. Existing tests/e2e specs navigate directly to the settings URL and do not assert the plugin-row action. tests/helpers-test.php covers settings capabilities but not dynamic plugin action hooks.
What to verify or explore next
- Reproduce on
v2.6.23by activating LightStart and inspecting its row on the single-site Plugins screen. - Repeat with network activation and inspect the Network Admin Plugins screen.
- Compare the registered dynamic action-link hooks on
v2.6.15andv2.6.16. - Exercise the relevant admin test suites under administrator and network-administrator contexts.
Unknowns / follow-up
- The feedback does not identify whether the site was single-site or multisite.
- Local browser-based reproduction was not performed; confirmation is based on the reachable initialization and hook-registration sequence in tagged source.
- No matching open GitHub issue was found after reading the repository's open issue inventory.
Confidence
Confidence: 96/100
Version 2.6.23 source confirms that the plugin-row action link is attached using an uninitialized dynamic hook name, and git history identifies a v2.6.16 regression boundary. The sidebar report is not confirmed because the inspected code registers a top-level LightStart menu for users with the required capability, while the feedback omits role and runtime details.
Source: automated uninstall feedback — wp-maintenance-mode, 2026-09-26
Generated by bug-report-triage (ID: bug-report-triage_6ab8a3106d6f99.06487082)
- Lenguaje dominante
- PHP
- Estrellas
- 163
- Forks
- 82
- Merge medio
- 5 d 21 h
- PR fusionados (30 d)
- 13
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Codeinwp/wp-maintenance-mode
-
feature-request-triage
Dificultad 4/5 3-5 días Aptitud para principiantes 50/100
Codeinwp/wp-maintenance-mode#550 ·
Los mantenedores suelen responder en 1 día
-
feature-request-triage
Dificultad 5/5 Más de una semana Aptitud para principiantes 45/100
Codeinwp/wp-maintenance-mode#549 ·
Los mantenedores suelen responder en 1 día
-
Ability to switch between Design Modes (template or create my own) after onboarding completedAbiertonew feature
Dificultad 3/5 1-2 días Aptitud para principiantes 58/100
Codeinwp/wp-maintenance-mode#517 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
Codeinwp/wp-maintenance-mode#451 ·
Los mantenedores suelen responder en 1 día
-
Redirect from external URLsAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
Codeinwp/wp-maintenance-mode#434 ·
Los mantenedores suelen responder en 1 día
Todos los issues de Codeinwp/wp-maintenance-mode
Issues similares
-
Daemon delete dialog: "Remove all ExApps" checkbox and `removeExApps` parameter have no effectAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Los mantenedores suelen responder en 3 días
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
Los mantenedores suelen responder en 1 día
-
[Sync EN] Fix session read handler docs: false reports a failure, not a missing session (#5902)Abiertosync-en
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
[Sync EN] Fix session read handler docs: false reports a failure, not a missing session (#5902)Abiertosync-en
Dificultad 2/5 1-2 días Aptitud para principiantes 84/100
Los mantenedores suelen responder en 2 días
-
feature-request needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
aws/aws-sdk-php#3365 ·
Los mantenedores suelen responder en 1 día