query( $wpdb->prepare( 'DROP TABLE IF EXISTS %i', $wpdb->prefix . 'cwseo_redirects' ) ); $wpdb->query( $wpdb->prepare( 'DROP TABLE IF EXISTS %i', $wpdb->prefix . 'cwseo_404' ) ); foreach ( array( 'cwseo_settings', 'cwseo_db_version', 'cwseo_sitemap_ver', 'cwseo_redirect_cache', 'cwseo_indexnow_log', 'cwseo_indexnow_queue', 'cwseo_force_takeover', 'cwseo_rm_imported', 'cwseo_static_status', 'cwseo_static_built', 'cwseo_sitemap_built' ) as $cwseo_opt ) { delete_option( $cwseo_opt ); } $wpdb->query( $wpdb->prepare( 'DELETE FROM %i WHERE meta_key LIKE %s', $wpdb->postmeta, $wpdb->esc_like( '_cwseo_' ) . '%' ) ); $wpdb->query( $wpdb->prepare( 'DELETE FROM %i WHERE meta_key LIKE %s', $wpdb->termmeta, $wpdb->esc_like( '_cwseo_' ) . '%' ) ); $wpdb->query( $wpdb->prepare( 'DELETE FROM %i WHERE option_name LIKE %s OR option_name LIKE %s', $wpdb->options, $wpdb->esc_like( '_transient_cwseo_' ) . '%', $wpdb->esc_like( '_transient_timeout_cwseo_' ) . '%' ) ); // phpcs:enable wp_clear_scheduled_hook( 'cwseo_indexnow_flush' ); wp_clear_scheduled_hook( 'cwseo_static_sitemap' ); // The optional static sitemap.xml — only if this plugin wrote it. require_once ABSPATH . 'wp-admin/includes/file.php'; require_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-base.php'; require_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-direct.php'; $cwseo_fs = new WP_Filesystem_Direct( null ); $cwseo_file = trailingslashit( get_home_path() ) . 'sitemap.xml'; if ( $cwseo_fs->exists( $cwseo_file ) && false !== strpos( (string) $cwseo_fs->get_contents( $cwseo_file ), '' ) ) { $cwseo_fs->delete( $cwseo_file ); }