Вам нужно проверить, установлено ли $ _ POST [$ field ['id']] перед его вызовом, иначе вы вызовете эту ошибку.Вы проверяете это в следующей строке, поэтому просто переместите его вверх.
foreach($meta_box['fields'] as $field){
if(isset($_POST[$field['id']])){
// POST field sent - update
$new = $_POST[$field['id']];
update_post_meta($post_id, $field['id'], $new);
} else {
// POST field not sent - delete
$old = get_post_meta($post_id, $field['id'], true);
delete_post_meta($post_id, $field['id'], $old);
}
}