Register can't handle a nested array of extended fields. It assumes that the extended field holds an simple array of keys and values.
In addition, this is not a valid value for the name attribute or an input:
name="[ORDER]order_fname"
The $_POST array will be empty on submission.
OTOH, this is valid, but I don't think it will work with the Register snippet:
This also returns a value, but if you have more than one order_fname[CONTACT] in the form, the $_POST array will be missing all but one of them.
name="order_fname[CONTACT]"
The resulting array looks like this (not what you want, I think):
array
'order_fname' =>
array
'CONTACT' => string 'hello' (length=5)
The only workable solution, if you're going to use the Register snippet, is to have a unique name (with no [] characters) for each extended field you want to store.
An alternative would be to handle the extended fields yourself in a preHook or postHook.
BTW, user extended fields are not a good place for frequently accessed data. They are slow and cumbersome. If you need to search or sort based on what's in an extended field, you should probably be looking at extending the modUser object:
http://bobsguides.com/blog.html/2014/05/27/why-extend-moduser/.