| @@ -14,8 +14,17 @@ | ||
| 14 | 14 | /** |
| 15 | 15 | * Run all uninstall cleanup. Wrapped in a function so locals don't pollute global scope. |
| 16 | 16 | */ |
| 17 | 17 | function xspeed_uninstall_cleanup() { |
| 18 | + /* | |
| 19 | + * Everything here is ours to delete. `wpdeveloper_xspeed_offer` is NOT — it | |
| 20 | + * is the site's answer about whether it wants this plugin, written by | |
| 21 | + * whichever WPDeveloper plugin offered it. Removing xSpeed is itself an | |
| 22 | + * answer — the siblings read it as one, from that row plus the absent plugin | |
| 23 | + * files. Deleting it here would make every one of them offer xSpeed again to | |
| 24 | + * the user who just took it off. | |
| 25 | + * See docs/guides/installing-from-another-plugin.md. | |
| 26 | + */ | |
| 18 | 27 | delete_option( 'xspeed_options' ); |
| 19 | 28 | |
| 20 | 29 | /* |
| 21 | 30 | * Per-module rows, for the modules THIS plugin ships. The slugs are read |
| @@ -39,8 +48,11 @@ | ||
| 39 | 48 | delete_option( 'xspeed_data_version' ); |
| 40 | 49 | delete_option( 'xspeed_activity_log' ); |
| 41 | 50 | delete_option( 'xspeed_server_type' ); |
| 42 | 51 | delete_option( 'xspeed_oc_dropin_synced' ); |
| 52 | + delete_option( 'xspeed_oc_generation' ); | |
| 53 | + delete_option( 'xspeed_oc_sync_attempts' ); | |
| 54 | + delete_option( 'xspeed_overridden_constants' ); | |
| 43 | 55 | delete_option( 'xspeed_last_mobile_separate' ); |
| 44 | 56 | delete_option( 'xspeed_redirect_to_onboarding' ); |
| 45 | 57 | delete_option( 'xspeed_onboarding_complete' ); |
| 46 | 58 | // Provenance a host plugin wrote before it activated us, and the profile |