Skip to content

Plugin does not clean up database table and options on uninstall #690

@itsgajendraSingh

Description

@itsgajendraSingh

What problem does this address?

When the plugin is deleted, it leaves behind a custom database table (wp_wpai_request_logs) and all of its WordPress options (wpai_*) permanently. There is no uninstall.php file and no register_uninstall_hook() call anywhere in the plugin.

The log table stores request and response previews of AI operations user-authored content and AI outputs. Leaving this data behind after uninstall raises data privacy concerns and violates WordPress plugin guidelines which require plugins to clean up their own data on deletion.

The full list of data left behind:

  • Custom table: wp_wpai_request_logs
  • Options: wpai_features_enabled, wpai_feature_{id}_enabled, wpai_feature_{id}_field_developer (one set per feature), wpai_version, wpai_failed_upgrade_message, wpai_connector_approvals, wpai_connector_approval_pending, wpai_request_logs_schema_version

What is your proposed solution?

Add an uninstall.php file to the plugin root that drops the custom table and removes all wpai_* options.

add a "Remove all data on uninstall" checkbox to the plugin settings (unchecked by default) so users can choose whether to keep or wipe their data.

Note: cleanup should happen on uninstall only, not on deactivation, since deactivation is reversible and users may reactivate the plugin later.

Metadata

Metadata

Assignees

Labels

Type

No type
No fields configured for issues without a type.

Projects

Status
Needs review

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions