wp-user-avatar
Last commit date
assets
2 weeks ago
deprecated
1 year ago
languages
1 day ago
src
1 day ago
third-party
1 day ago
autoloader.php
1 year ago
changelog.txt
1 day ago
index.php
5 years ago
readme.txt
1 day ago
uninstall.php
2 years ago
wp-user-avatar.php
1 day ago
wpml-config.xml
9 months ago
uninstall.php
109 lines
| 1 | <?php |
| 2 | //if uninstall not called from WordPress exit |
| 3 | use ProfilePress\Core\Base; |
| 4 | |
| 5 | if ( ! defined('WP_UNINSTALL_PLUGIN')) { |
| 6 | exit(); |
| 7 | } |
| 8 | |
| 9 | // Load ProfilePress file |
| 10 | include_once(dirname(__FILE__) . '/wp-user-avatar.php'); |
| 11 | |
| 12 | function ppress_mo_uninstall_function() |
| 13 | { |
| 14 | if (ppress_get_setting('remove_plugin_data') == 'yes') { |
| 15 | |
| 16 | wp_clear_scheduled_hook('ppress_daily_recurring_job'); |
| 17 | |
| 18 | delete_option('ppress_cpf_select_multi_selectable'); |
| 19 | delete_option(PPRESS_SETTINGS_DB_OPTION_NAME); |
| 20 | delete_option(PPRESS_CONTACT_INFO_OPTION_NAME); |
| 21 | delete_option(PPRESS_FORMS_DB_OPTION_NAME); |
| 22 | delete_option(PPRESS_PAYMENT_METHODS_OPTION_NAME); |
| 23 | delete_option(PPRESS_TAXES_OPTION_NAME); |
| 24 | delete_option('ppress_checkout_fields'); |
| 25 | delete_option('ppress_login_redirect_rules'); |
| 26 | delete_option('ppress_extension_manager'); |
| 27 | delete_option('ppress_plugin_activated'); |
| 28 | delete_option('ppress_new_v4_install'); |
| 29 | delete_option('ppress_license_key'); |
| 30 | delete_option('ppress_license_status'); |
| 31 | delete_option('ppress_db_ver'); |
| 32 | delete_option('ppress_install_date'); |
| 33 | delete_option('ppress_dismiss_leave_review_forever'); |
| 34 | delete_site_option('pand-' . md5('ppress-create-plugin-pages-notice')); |
| 35 | delete_site_option('pand-' . md5('ppress-review-plugin-notice')); |
| 36 | delete_site_option('pand-' . md5('pp-registration-disabled-notice')); |
| 37 | delete_site_option('pand-' . md5('wp_user_avatar_now_ppress_notice')); |
| 38 | delete_site_option('pand-' . md5('ppress_dismissed_uploads_directory_is_unprotected')); |
| 39 | |
| 40 | // Admin dashboard access control |
| 41 | delete_option('ppress_abdc_options'); |
| 42 | |
| 43 | // wp user avatar |
| 44 | delete_option('avatar_default_wp_user_avatar'); |
| 45 | delete_option('wp_user_avatar_disable_gravatar'); |
| 46 | delete_option('wp_user_avatar_load_scripts'); |
| 47 | delete_option('wp_user_avatar_resize_crop'); |
| 48 | delete_option('wp_user_avatar_resize_h'); |
| 49 | delete_option('wp_user_avatar_resize_upload'); |
| 50 | delete_option('wp_user_avatar_resize_w'); |
| 51 | delete_option('wp_user_cover_upload_size_limit'); |
| 52 | delete_option('wp_user_avatar_upload_size_limit'); |
| 53 | delete_option('wp_user_avatar_default_avatar_updated'); |
| 54 | delete_option('wp_user_avatar_media_updated'); |
| 55 | delete_option('wp_user_avatar_users_updated'); |
| 56 | delete_option('wpua_has_gravatar'); |
| 57 | delete_option('ppress_is_from_wp_user_avatar'); |
| 58 | // Delete post meta |
| 59 | delete_post_meta_by_key('_wp_attachment_wp_user_avatar'); |
| 60 | // Reset all default avatars to Mystery Man |
| 61 | update_option('avatar_default', 'mystery'); |
| 62 | |
| 63 | global $wpdb; |
| 64 | |
| 65 | // Remove any transients we've left behind |
| 66 | $wpdb->query("DELETE FROM $wpdb->options WHERE option_name LIKE '\_transient\_pp%'"); |
| 67 | $wpdb->query("DELETE FROM $wpdb->options WHERE option_name LIKE '\_site\_transient\_pp%'"); |
| 68 | $wpdb->query("DELETE FROM $wpdb->options WHERE option_name LIKE '\_transient\_timeout\_pp%'"); |
| 69 | $wpdb->query("DELETE FROM $wpdb->options WHERE option_name LIKE '\_site\_transient\_timeout\_pp%'"); |
| 70 | |
| 71 | $drop_tables = []; |
| 72 | $drop_tables[] = Base::form_db_table(); |
| 73 | $drop_tables[] = Base::form_meta_db_table(); |
| 74 | $drop_tables[] = Base::meta_data_db_table(); |
| 75 | $drop_tables[] = Base::subscription_plans_db_table(); |
| 76 | $drop_tables[] = Base::customers_db_table(); |
| 77 | $drop_tables[] = Base::orders_db_table(); |
| 78 | $drop_tables[] = Base::order_meta_db_table(); |
| 79 | $drop_tables[] = Base::subscriptions_db_table(); |
| 80 | $drop_tables[] = Base::coupons_db_table(); |
| 81 | $drop_tables[] = $wpdb->prefix . 'ppress_sessions'; |
| 82 | |
| 83 | $drop_tables = apply_filters('ppress_drop_database_tables', $drop_tables); |
| 84 | |
| 85 | foreach ($drop_tables as $table) { |
| 86 | $wpdb->query("DROP TABLE IF EXISTS $table"); |
| 87 | } |
| 88 | |
| 89 | flush_rewrite_rules(); |
| 90 | |
| 91 | // Clear any cached data that has been removed. |
| 92 | wp_cache_flush(); |
| 93 | } |
| 94 | } |
| 95 | |
| 96 | if ( ! is_multisite()) { |
| 97 | ppress_mo_uninstall_function(); |
| 98 | } else { |
| 99 | |
| 100 | if ( ! wp_is_large_network()) { |
| 101 | $site_ids = get_sites(['fields' => 'ids', 'number' => 0]); |
| 102 | |
| 103 | foreach ($site_ids as $site_id) { |
| 104 | switch_to_blog($site_id); |
| 105 | ppress_mo_uninstall_function(); |
| 106 | restore_current_blog(); |
| 107 | } |
| 108 | } |
| 109 | } |