The capability check inside wp_set_terms_for_user prevents you from using the function in a non-authenticated context, such as inside a cron event.
I think this function should actually be split into wp_bulk_set_terms_for_user which provides the specific bulk functionality, and wp_set_terms_for_user which is a simpler wrapper around wp_*_object_terms.
This would also make it easier to solve #19 and possibly #18 too.
The capability check inside
wp_set_terms_for_user
prevents you from using the function in a non-authenticated context, such as inside a cron event.I think this function should actually be split into
wp_bulk_set_terms_for_user
which provides the specific bulk functionality, andwp_set_terms_for_user
which is a simpler wrapper aroundwp_*_object_terms
.This would also make it easier to solve #19 and possibly #18 too.