phpdrupaldrupal-7drupal-fieldsdrupal-field-api

How to add new fields to user profile in Drupal 7 programmatically


I want to develop a module that add fields to user profile in drupal 7, like phone number and CV ... and I don't know how to do that (using Database or using fields API) pls help me.
Any clear tutorials will be appreciated.


Solution

  • Try to follow the following code

        $myField_name = "NEW_FIELD_NAME";
        if(!field_info_field($myField_name)) // check if the field already exists.
        {
            $field = array(
                'field_name'    => $myField_name,
                'type'          => 'text',
            );
            field_create_field($field);
    
            $field_instance = array(
                'field_name'    => $myField_name,
                'entity_type'   => 'user', // change this to 'node' to add attach the field to a node
                'bundle'        => 'user', // if chosen 'node', type here the machine name of the content type. e.g. 'page'
                'label'         => t('Field Label'),
                'description'   => t(''),
                'widget'        => array(
                    'type'      => 'text_textfield',
                    'weight'    => 10,
                ),
                'formatter'     => array(
                    'label'     => t('field formatter label'),
                    'format'    => 'text_default'
                ),
                'settings'      => array(
                )
            );
            field_create_instance($field_instance);
    

    Hope this works... Muhammad.