Respostas:
Você pode tentar o módulo de permissões de campo
Recursos
- Habilite permissões de campo em qualquer entidade, não apenas em nós.
- Permissões de campo baseadas em função que permitem diferentes visualizações padronizadas com base no acesso do usuário.
- As permissões de autor permitem a visualização e edição de campos com base em quem é o proprietário da entidade.
- As permissões para cada campo não são ativadas por padrão. Em vez disso, os administradores podem habilitar essas permissões explicitamente para os campos em que esse recurso é necessário.
Se você quiser fazê-lo no módulo personalizado
my_module_form_user_profile_form_alter(&$form, &$form_state) {
// Since it is on registration form, field might be reqruied.
$form['your_field']['#required'] = FALSE;
$form['your_field']['#access'] = FALSE;
}
my_module_form_user_register_form_alter
, não my_module_form_user_profile_form_alter
.
Torne a propriedade de visibilidade do campo apenas para usuários anônimos. Portanto, o valor será armazenado no momento do registro. Então ninguém pode acessar esse campo. Depois de instalar o módulo de permissão de campo, você encontrará essa opção para aplicar apenas a usuários anônimos.
coloque esse código em um módulo personalizado, o campo poderá entrar em novo conteúdo, mas será desativado para editá-lo.
if ($form_id == 'YOUR_FORM_ID') {
//dsm($form);
// for user form use '#user' instead of '#node' and uid instead of nid
if (isset($form['#node']) && isset($form['#node']->nid)){
// Prevent editing a field once the node has been created
// hiding the field entirely on the edit form.
$form['field_name']['#access'] = FALSE;
// disable update field on the edit form (gray color).
$form['field_name']['#disabled'] = TRUE;
}
}