Skip to content

[Recommendation] Set up a backup solution #771

Description

@tacoverdo

Recommendation title

Set up a backup solution

Recommendation description

Detect whether a known backup plugin is active (e.g. UpdraftPlus, Duplicator, Jetpack VaultPress Backup, BackWPup, WPvivid, Solid Backups) and, when none is found, recommend setting one up.

Context: this idea came out of the security-update task work (#769). That task advises "make a fresh backup first — but do not postpone the update if you have none." Backup readiness itself deserves to be its own calm, non-urgent recommendation before an emergency, rather than friction during one. Once this provider exists, the security-update task could sharpen its copy based on the same detection: "you appear to have a backup plugin — consider running a backup first" vs. pointing at this recommendation.

Suggested implementation sketch:

  • New provider classes/suggested-tasks/providers/class-backup-solution.php following the existing Tasks pattern; should_add_task() checks active plugins against a filterable list of known backup plugin slugs (is_plugin_active() / get_option( 'active_plugins' ), plus multisite network-activated plugins).
  • Hosting-level backups can't be detected, so the task must be dismissable ("my host does backups").
  • Optional integration: Security_Update::get_description() (and the alert email in Utils\Security_Update_Monitor) could branch on the same detection helper.

Required capability

manage_options

Onboarding recommendation

false

Points to award

1

Recommendation priority

medium

Dismissable

true

Snoozable

true

Additional Information

  • The detection list should be filterable (progress_planner_backup_plugins or similar) so partners/white-label setups can extend it.
  • False negatives are fine (host-level backups, custom scripts) — that's what dismiss is for. False positives are worse; only count actually active plugins.
  • Related: Add critical security-update task with UI lockdown and admin alerts #769 (security-update task whose backup advice prompted this).

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions