CustomContactField
| Source File | fluent-crm/app/Models/CustomContactField.php |
|---|---|
| Name Space | FluentCrm\App\Models |
| Class | FluentCrm\App\Models\CustomContactField |
Not an Eloquent Model
This is a plain PHP utility class — it does not extend Model and has no database table. Custom field definitions are stored in WordPress options via fluentcrm_get_option('contact_custom_fields'). The actual field values for each contact are stored in the fc_subscriber_meta table (see SubscriberMeta).
Usage
php
$customFieldManager = new FluentCrm\App\Models\CustomContactField();Methods
getGlobalFields($with)
Get all registered custom field definitions
- Parameters
- $with
array— optional, include['field_types']and/or['field_groups']
- $with
- Returns
array
Usage
php
$customFields = $customFieldManager->getGlobalFields();
// With field type definitions included
$customFields = $customFieldManager->getGlobalFields(['field_types', 'field_groups']);getFieldTypes()
Get available custom field type definitions
- Parameters
- none
- Returns
array— field type definitions (text, textarea, number, select-one, select-multi, radio, checkbox, date, date_time)
Usage
php
$fieldTypes = $customFieldManager->getFieldTypes();saveGlobalFields($fields)
Save custom field definitions. Auto-generates slugs for new fields.
- Parameters
- $fields
array
- $fields
- Returns
array— formatted field definitions with generated slugs
Usage
php
$fields = $customFieldManager->saveGlobalFields([
['label' => 'Company Name', 'type' => 'text'],
['label' => 'Role', 'type' => 'select-one', 'options' => ['Developer', 'Designer']]
]);formatCustomFieldValues($values, $fields)
Coerce field values to correct types (e.g., comma-separated strings to arrays for multi-select/checkbox fields)
- Parameters
- $values
array— key-value map of field slugs to values - $fields
array— optional, field definitions
- $values
- Returns
array— formatted values
Usage
php
$formatted = $customFieldManager->formatCustomFieldValues($values);getFieldGroups()
Get custom field group definitions
- Parameters
- none
- Returns
array— group definitions, defaults to[{slug: 'default', title: 'Custom Profile Data'}]
Usage
php
$groups = $customFieldManager->getFieldGroups();updateGroupName($oldName, $newName)
Rename a custom field group across all field definitions
- Parameters
- $oldName
string - $newName
string
- $oldName
- Returns
void
Usage
php
$customFieldManager->updateGroupName('Old Group', 'New Group');