Get custom_user meta value and add entry
You need to pass get_user_meta a third parameter to prevent it from returning an array. That is where the mistake is, not with the add/update functions. $invoice_meta = get_user_meta( $_GET[‘id’], ‘invoices’, true); You will need to clean up any data already in the database or the existing nested arrays will still cause trouble.