| 1 |
<?php |
| 2 |
if ( ! defined( 'ABSPATH' ) && ! defined( 'WP_UNINSTALL_PLUGIN' ) ) { |
| 3 |
exit(); |
| 4 |
} |
| 5 |
|
| 6 |
// check if the option to remove data on uninstall is enabled |
| 7 |
$options = get_option( 'isc_options' ); |
| 8 |
if ( ! empty( $options['remove_on_uninstall'] ) ) { |
| 9 |
global $wpdb; |
| 10 |
|
| 11 |
// delete post meta fields |
| 12 |
delete_post_meta_by_key( 'isc_post_images' ); |
| 13 |
delete_post_meta_by_key( 'isc_image_posts' ); |
| 14 |
delete_post_meta_by_key( 'isc_image_source' ); |
| 15 |
delete_post_meta_by_key( 'isc_image_source_own' ); |
| 16 |
delete_post_meta_by_key( 'isc_image_source_url' ); |
| 17 |
delete_post_meta_by_key( 'isc_ai_label' ); |
| 18 |
delete_post_meta_by_key( 'isc_possible_usages' ); |
| 19 |
delete_post_meta_by_key( 'isc_possible_usages_last_check' ); |
| 20 |
delete_post_meta_by_key( 'isc_post_images_before_update' ); |
| 21 |
delete_post_meta_by_key( 'isc_last_index' ); |
| 22 |
delete_post_meta_by_key( 'isc_ignored_unused_image' ); |
| 23 |
|
| 24 |
// delete main plugin options |
| 25 |
delete_option( 'isc_options' ); |
| 26 |
// delete storage |
| 27 |
delete_option( 'isc_storage' ); |
| 28 |
// delete the total number of unused images (Pro). Option no longer set since version 3.9 |
| 29 |
delete_option( 'isc_unused_images_total_items' ); |
| 30 |
// delete the last log created by the Scanner |
| 31 |
delete_option( 'isc_scanner_log' ); |
| 32 |
|
| 33 |
// delete user meta |
| 34 |
delete_metadata( 'user', null, 'isc_newsletter_subscribed', '', true ); |
| 35 |
|
| 36 |
// drop the index table |
| 37 |
$table_name = $wpdb->prefix . 'isc_index'; |
| 38 |
// phpcs:ignore |
| 39 |
$wpdb->query( "DROP TABLE IF EXISTS $table_name" ); |
| 40 |
|
| 41 |
// delete the log file if it exists |
| 42 |
$upload_dir = wp_upload_dir(); |
| 43 |
// Hash the AUTH_KEY to create the same filename that was used |
| 44 |
$log_file_name = 'image-source-control_' . hash( 'crc32', AUTH_KEY ) . '.log'; |
| 45 |
$log_file_path = $upload_dir['basedir'] . '/' . $log_file_name; |
| 46 |
if ( file_exists( $log_file_path ) ) { |
| 47 |
wp_delete_file( $log_file_path ); |
| 48 |
} |
| 49 |
} |
| 50 |
|