Skip to content
View as Markdown

CustomContactField

Source Filefluent-crm/app/Models/CustomContactField.php
Name SpaceFluentCrm\App\Models
ClassFluentCrm\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']
  • 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
  • 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
  • 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
  • Returns void

Usage

php
$customFieldManager->updateGroupName('Old Group', 'New Group');