How to set a value on a field collection using entity metadata wrapper
I found the documentation for field collections confusing as well.

Field collections need their own entity metadata wrapper. So, the following code would work for your example:

$collection = entity_create('field_collection_item', array('field_name' =&gt; 'field_user_location'));
$collection-&gt;setHostEntity('user', $user);
$fc_wrapper = entity_metadata_wrapper('field_collection_item', $collection);
$fc_wrapper-&gt;field_land_phone-&gt;set($object['Phone Number']);


I hope that helps for anyone else banging their heads over this.