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.
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 nouninstall.phpfile and noregister_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:
wp_wpai_request_logswpai_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_versionWhat is your proposed solution?
Add an
uninstall.phpfile to the plugin root that drops the custom table and removes allwpai_*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.