query( "DROP TABLE IF EXISTS {$wpdb->prefix}devisqr_quote_items" ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery, WordPress.DB.PreparedSQL.InterpolatedNotPrepared $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}devisqr_quotes" ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery, WordPress.DB.PreparedSQL.InterpolatedNotPrepared // Options. delete_option( 'devisqr_settings' ); delete_metadata( 'user', 0, 'devisqr_admin_language', '', true ); delete_option( 'devisqr_version' ); delete_option( 'devisqr_branding_stamp' ); delete_option( 'devisqr_license' ); delete_option( 'devisqr_license_auto' ); delete_site_transient( 'devisqr_update_info' ); delete_transient( 'devisqr_logo_warning' ); delete_transient( 'devisqr_logo_failed' ); delete_transient( 'devisqr_site_lang_name' ); // Rate-limit transients. $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '\_transient\_devisqr\_rate\_%' OR option_name LIKE '\_transient\_timeout\_devisqr\_rate\_%'" ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery, WordPress.DB.PreparedSQL.InterpolatedNotPrepared // Files (uploads/devisqr-quotes). $devisqr_upload = wp_upload_dir(); $devisqr_branding = trailingslashit( $devisqr_upload['basedir'] ) . 'devisqr-branding'; $devisqr_dir = trailingslashit( $devisqr_upload['basedir'] ) . 'devisqr-quotes'; if ( is_dir( $devisqr_dir ) || is_dir( $devisqr_branding ) ) { require_once ABSPATH . 'wp-admin/includes/file.php'; WP_Filesystem(); global $wp_filesystem; if ( $wp_filesystem ) { $wp_filesystem->delete( $devisqr_dir, true ); $wp_filesystem->delete( $devisqr_branding, true ); } }