$wpdb->insert_id
Sto utilizzando $wpdb->insert per inserire dati nella tabella del mio plugin. Come posso ottenere l'ID della nuova riga che ho appena inserito? Dato che ho molti utenti che aggiungono dati alla tabella, non posso utilizzare $wpdb->insert_id poiché non è necessariamente l'ultimo inserito.

Non c'è altro modo, ma non riesco a vedere perché avresti bisogno di un'alternativa diversa da questa. Credo che l'ID di inserimento a cui si accede tramite $wpdb sia l'ultimo ID di questa istanza di WPDB, altri inserimenti non dovrebbero influenzarlo, ma non ne sono sicuro.
<?php
$wpdb->insert("QUERY");
$this_insert = $wpdb->insert_id;
?>

@toscho ma una query di un altro utente influenza l'ID di inserimento che ottieni se inseriscono una query proprio tra il tuo inserimento e la lettura?

$wpdb->insert_id è globale all'interno della sessione del database. Poiché WordPress crea una nuova sessione per ogni sessione utente, questo non è un problema, anche quando si utilizza un connection pooling.
L'unica avvertenza è che questa variabile conterrà sempre l'ultimo ID auto-increment inserito, quindi devi verificarlo dopo ogni inserimento.
Se vuoi davvero catturare l'elenco dei nuovi record inseriti, puoi farlo all'interno di una stored procedure e catturarlo in una transazione, oppure all'interno di un trigger.
