L'errore era dovuto al text.Replace(), andava a cercare sempre $id, al primo tentativo lo trovo, mentre dopo non lo trova più.

Ho inserito il mio metodo nel beforeAnimation() ed effettuato le due modifiche:
- associato un ID al button:
HTML:
codice:
<button class="btn_rate" id="">ID: $id</button>

JS:
codice:
//GET del custom field
var custom_field = api.getField('id');


$("button.btn_rate").attr('id',custom_field);

Grazie!