get_col( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_type = %s", 'srpp_display' ) ); foreach ( $srpp_ids as $srpp_id ) { wp_delete_post( (int) $srpp_id, true ); } // Cached recommendation lists and per-post overrides. $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->postmeta} WHERE meta_key LIKE %s OR meta_key = %s", $wpdb->esc_like( '_srpp_rel_' ) . '%', '_srpp_override' ) ); // Statistics table. The name is built from $wpdb->prefix, never from input. $srpp_table = $wpdb->prefix . 'srpp_stats'; $wpdb->query( "DROP TABLE IF EXISTS {$srpp_table}" ); // phpcs:enable WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.DirectDatabaseQuery.SchemaChange, WordPress.DB.PreparedSQL.InterpolatedNotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter // Options and schedules. delete_option( 'srpp_settings' ); delete_option( 'srpp_db_version' ); delete_option( 'srpp_cache_version' ); delete_option( 'srpp_seeded' ); delete_option( 'srpp_stats_version' ); wp_clear_scheduled_hook( 'srpp_cleanup_event' ); wp_cache_flush();