Blocks
2 years ago
Contracts
5 years ago
Database
2 years ago
Integrations
1 year ago
Libraries
5 years ago
Models
2 years ago
Seeds
4 years ago
Services
1 year ago
Support
2 years ago
config
2 years ago
Activator.php
5 years ago
Attachment.php
4 years ago
Controller.php
5 years ago
Core.php
5 years ago
Deactivator.php
2 years ago
Factory.php
2 years ago
Files.php
5 years ago
Playlist.php
2 years ago
Plugin.php
5 years ago
Requirements.php
4 years ago
support.php
2 years ago
Deactivator.php
80 lines
| 1 | <?php |
| 2 | |
| 3 | namespace PrestoPlayer; |
| 4 | |
| 5 | use PrestoPlayer\Database\Table; |
| 6 | use PrestoPlayer\Database\Visits; |
| 7 | use PrestoPlayer\Database\Presets; |
| 8 | use PrestoPlayer\Database\Videos; |
| 9 | use PrestoPlayer\Database\AudioPresets; |
| 10 | use PrestoPlayer\Database\Webhooks; |
| 11 | use PrestoPlayer\Models\ReusableVideo; |
| 12 | |
| 13 | class Deactivator |
| 14 | { |
| 15 | |
| 16 | public static function uninstall() |
| 17 | { |
| 18 | // get plugin settings |
| 19 | $uninstall_settings = get_option('presto_player_uninstall'); |
| 20 | |
| 21 | // uninstall all data on delete if selected |
| 22 | if (isset($uninstall_settings['uninstall_data']) && $uninstall_settings['uninstall_data']) { |
| 23 | self::delete_data_on_uninstall(); |
| 24 | } |
| 25 | } |
| 26 | |
| 27 | public static function delete_data_on_uninstall() |
| 28 | { |
| 29 | // license |
| 30 | delete_option('presto_player_license'); |
| 31 | delete_option('presto_player_license_data'); |
| 32 | |
| 33 | // settings |
| 34 | delete_option('presto_player_analytics'); |
| 35 | delete_option('presto_player_google_analytics'); |
| 36 | delete_option('presto_player_branding'); |
| 37 | delete_option('presto_player_bunny_keys'); |
| 38 | delete_option('presto_player_bunny_storage_zones'); |
| 39 | delete_option('presto_player_bunny_pull_zones'); |
| 40 | delete_option('presto_player_bunny_uid'); |
| 41 | delete_option('presto_player_instant_video_width'); |
| 42 | delete_option('presto_player_media_hub_sync_default'); |
| 43 | |
| 44 | // notices |
| 45 | delete_option('presto_player_dismissed_notice_nginx_rules'); |
| 46 | delete_option('presto_player_presto_player_bunny_uid'); |
| 47 | delete_option('presto_player_dismissed_notice_presto_player_reusable_notice'); |
| 48 | |
| 49 | // uninstall option |
| 50 | delete_option('presto_player_uninstall'); |
| 51 | |
| 52 | // tables |
| 53 | delete_option('presto_preset_seed_version'); |
| 54 | delete_option('presto_player_visits_database_version'); |
| 55 | delete_option('presto_player_videos_database_version'); |
| 56 | delete_option('presto_player_presets_database_version'); |
| 57 | delete_option('presto_zone_token'); |
| 58 | delete_option('presto_player_visits_upgrade_version'); |
| 59 | delete_option('presto_player_pro_update_performance'); |
| 60 | delete_option('presto_player_audio_presets_database_version'); |
| 61 | delete_option('presto_player_email_collection_database_version'); |
| 62 | delete_option('presto_audio_preset_seed_version'); |
| 63 | |
| 64 | // delete our tables |
| 65 | $table = new Table(); |
| 66 | (new Visits($table))->uninstall(); |
| 67 | (new Presets($table))->uninstall(); |
| 68 | (new AudioPresets($table))->uninstall(); |
| 69 | (new Videos($table))->uninstall(); |
| 70 | (new Webhooks($table))->uninstall(); |
| 71 | |
| 72 | // delete all reusable videos |
| 73 | $videos = new ReusableVideo(); |
| 74 | $all_videos = $videos->all(['fields' => 'ids']); |
| 75 | foreach ($all_videos as $video_id) { |
| 76 | wp_delete_post($video_id, true); |
| 77 | } |
| 78 | } |
| 79 | } |
| 80 |